AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 232125
Accepted
Learning_DBAdmin
Learning_DBAdmin
Asked: 2019-03-15 03:38:02 +0800 CST2019-03-15 03:38:02 +0800 CST 2019-03-15 03:38:02 +0800 CST

Restauração gradual, grupo de arquivos e extensão de arquivo

  • 772

De acordo com meu entendimento (até agora), qualquer banco de dados de usuário contém três tipos de arquivos - mdf, ndf e ldf.

MDF significa arquivo de metadados e armazena definição de dados, bem como dados (no caso de banco de dados pequeno e nenhum outro arquivo existe para dados).

NDF é basicamente para dados de tabelas e armazena dados, podemos ditar qual tabela pode ser alocada aqui com base em grupos de arquivos.

LDF significa arquivo de dados de log. Isso armazena VLFs (arquivos de log virtuais)

Fiquei com a impressão de que pode haver apenas um arquivo .mdf pertencente ao grupo de arquivos primário e n número de arquivos .ndf pertencentes ao grupo de arquivos primário ou definido pelo usuário.

Eu estava criando um banco de dados e criei vários grupos de arquivos e extensão esquerda .mdf (por engano) para todos eles e para minha surpresa, agora meu banco de dados possui três arquivos .mdf pertencentes a diferentes grupos de arquivos, conforme mostrado abaixo:

CREATE DATABASE [TEST_DBASE]
ON  PRIMARY 
( NAME = N'TEST_DBASE', FILENAME = N'E:\DB\TEST_DBASE.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB ), 
 FILEGROUP [ACCNTS_FILEGROUP] 
( NAME = N'ACCNTS_FILE', FILENAME = N'E:\DB\ACCNTS_FILE.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB ), 
 FILEGROUP [LOAN_FILEGROUP] 
( NAME = N'LOAN_FILE', FILENAME = N'E:\DB\LOAN_FILE.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB )

Nesse caso, como faremos a restauração gradual se precisarmos colocar apenas a tabela Contas online?

Anteriormente estávamos seguindo os passos abaixo:

RESTORE DATABASE [TEST_DBASE] 
FILEGROUP = 'PRIMARY' FROM DISK = 'E:\BACKUPS\FullBackup.BAK' with NORECOVERY, PARTIAL

RESTORE DATABASE [TEST_DBASE] 
FILEGROUP = 'ACCNTS_FILEGROUP' FROM DISK = 'E:\BACKUPS\FullBackup.BAK' with NORECOVERY

RESTORE LOG [TEST_DBASE] FROM DISK = 'E:\BACKUPS\LogBackup.trn' with RECOVERY

As etapas acima foram tornar a tabela Contas online e acessível.

Para colocar as tabelas de Empréstimos online posteriormente (tabela não crítica), costumávamos realizar as etapas abaixo:

BACKUP LOG [BANK_DATABASE] TO DISK = 'E:\BACKUPS\Backup_tail.trn' with FORMAT, NORECOVERY

RESTORE DATABASE [TEST_DBASE] 
FILEGROUP = 'LOAN_FILEGROUP' FROM DISK = 'E:\BACKUPS\FullBackup.BAK' with NORECOVERY

RESTORE LOG      [TEST_DBASE] FROM DISK = 'E:\BACKUPS\LogBackup.trn' with NORECOVERY
RESTORE LOG      [TEST_DBASE] FROM DISK = 'E:\BACKUPS\Backup_tail.trn' with RECOVERY

Minha preocupação no cenário acima é - haverá alguma alteração para a restauração gradual, considerando o fato de que o arquivo de metadados agora está espalhado em todos os grupos de arquivos e não pertence apenas ao grupo de arquivos primário.

Para qualquer restauração parcial, a restauração do grupo de arquivos primário era obrigatória, pois contém todos os metadados, mas se todos os arquivos agora forem .mdf, como isso funcionará?

sql-server restore
  • 1 1 respostas
  • 67 Views

1 respostas

  • Voted
  1. Best Answer
    Tony Hinkle
    2019-03-15T03:56:56+08:002019-03-15T03:56:56+08:00

    As extensões de arquivo não fazem sentido para o aplicativo. Por exemplo, crie um arquivo de texto e nomeie-o textfile.fooe abra-o no Bloco de Notas. O bloco de notas não se importa com o nome do arquivo - ele apenas o abre porque você disse para abri-lo.

    O SQL Server funciona da mesma maneira. Você pode nomear os arquivos com qualquer extensão que desejar e isso não altera a forma como o SQL Server os utiliza. O primeiro arquivo de dados, que normalmente é aquele com o arquivo .mdf, sempre conterá os metadados e nunca poderá ser removido. Os metadados não serão distribuídos para outros arquivos apenas porque você deu a eles uma extensão de arquivo .mdf.

    Extensões de arquivo são quase sempre para humanos - para que possamos acompanhar mais facilmente as coisas. Assim, usamos a extensão .mdf no primeiro arquivo de dados e .ndf em arquivos de dados adicionais para que os humanos possam dizer facilmente qual arquivo contém os metadados e nunca poderá ser removido do banco de dados.

    Tenho certeza de que existem alguns aplicativos por aí que exigem extensões de arquivo para atender a determinados requisitos, mas o SQL Server não é um deles, pelo menos não em relação à extensão de arquivo em arquivos de banco de dados.

    • 2

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve