Compartilhar via


Como fazer backup de arquivos e de grupos de arquivos (Transact-SQL)

Quando o tamanho de banco de dados e exigências de desempenho tornarem um backup de banco de dados completo impraticável, então você poderá criar um backup de arquivo. Um backup de arquivo contém todos os dados em um ou mais arquivos (ou grupos de arquivos). Para obter mais informações sobre backups de arquivos, consulte Backups completos de arquivos e Backups diferenciais de arquivo.

Observação importanteImportante

No modelo de recuperação simples, todos os arquivos de leitura/gravação devem ter backups juntos. Isso assegura que o banco de dados possa ser restaurado até um point-in-time consistente. Em vez de especificar cada arquivo ou grupo de arquivos de leitura/gravação individualmente, use a opção READ_WRITE_FILEGROUPS. Esta opção efetua backup de todos os grupos de arquivos de leitura/gravação no banco de dados. Um backup que é criado especificando READ_WRITE_FILEGROUPS é conhecido como um backup parcial. Para obter mais informações, consulte Backups parciais.

Para efetuar backup de arquivos e grupos de arquivos

  1. Para criar um backup de arquivo ou grupo de arquivos, use uma instrução BACKUP DATABASE <file_or_filegroup>. Minimamente, essa instrução deve especificar o seguinte:

    • O nome do banco de dados.

    • Uma cláusula FILE ou FILEGROUP para cada arquivo ou grupo de arquivos, respectivamente.

    • O dispositivo de backup em que o backup completo será gravado.

    A sintaxe Transact-SQL básica para um backup de arquivo é:

    BACKUP DATABASE database

    { FILE **=**logical_file_name | FILEGROUP **=**logical_filegroup_name } [ ,...f ]

    TO backup_device [ ,...n ]

    [ WITH with_options [ ,...o ] ] ;

    Opção

    Descrição

    database

    É o banco de dados do qual o log de transações, banco de dados parcial ou banco de dados completo têm seu backup.

    FILE =logical_file_name

    Especifica o nome lógico de um arquivo a ser incluído no backup de arquivos.

    FILEGROUP =logical_filegroup_name

    Especifica o nome lógico de um grupo de arquivos que será incluído no backup de arquivos. No modelo de recuperação simples, um backup de grupo de arquivos é permitido apenas para grupos de arquivos somente leitura.

    [ ,...f ]

    É um espaço reservado que indica que vários arquivos e grupos de arquivos podem ser especificados. O número de arquivos ou grupos de arquivos é ilimitado.

    backup_device [ ,...n ]

    Especifica uma lista de 1 a 64 dispositivos de backup a serem usados para a operação de backup. Você pode especificar um dispositivo de backup físico ou pode especificar um dispositivo de backup lógico correspondente, se já definido. Para especificar um dispositivo de backup físico, use a opção DISK ou TAPE:

    { DISK | TAPE } =physical_backup_device_name

    Para obter mais informações, consulte Dispositivos de backup.

    WITH with_options [ ,...o ]

    Opcionalmente, especifica uma ou mais opções adicionais, como DIFFERENTIAL.

    ObservaçãoObservação
    Um backup de arquivo diferencial exige um backup de arquivo completo como base. Para obter mais informações, consulte Backups diferenciais de arquivo.
  2. No modelo de recuperação completa, você deverá também efetuar backup do log de transações. Para usar um conjunto inteiro de backups de arquivo completos para restaurar um banco de dados, você deverá também ter suficientes backups de log para abranger todos os backups de arquivo, desde o início do primeiro backup de arquivo. Para obter mais informações, consulte Como criar um backup de log de transações (Transact-SQL).

Exemplo

Os exemplos seguintes fazem backup de um ou mais arquivos dos grupos de arquivos secundários do banco de dados Sales. Esse banco de dados usa o modelo de recuperação completa e contém os seguintes grupos de arquivos secundários:

  • Um grupo de arquivo nomeado SalesGroup1 que tem os arquivos SGrp1Fi1 e SGrp1Fi2.

  • Um grupo de arquivo nomeado SalesGroup2 que tem os arquivos SGrp2Fi1 e SGrp2Fi2.

ObservaçãoObservação

No modelo de recuperação completa, backups de logs regulares são necessários para truncar o log e dar suporte à restauração do banco de dados até point-in-time específico.

A. Criando um backup de arquivo de dois arquivos

O exemplo a seguir cria um backup diferencial de arquivo só do arquivo SGrp1Fi2 do SalesGroup1 e o arquivo SGrp2Fi2 do grupo de arquivos SalesGroup2.

--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
   FILE = 'SGrp1Fi2', 
   FILE = 'SGrp2Fi2' 
   TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck'
GO

B. Criando um backup de arquivo completo dos grupos de arquivos secundários

O exemplo a seguir cria um backup de arquivo completo de todo arquivo em ambos os grupos de arquivos secundários.

--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO

C. Criando um backup de arquivo diferencial dos grupos de arquivos secundários

O exemplo a seguir cria um backup diferencial de arquivo de cada arquivo em ambos os grupos de arquivos secundários.

--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
   WITH 
      DIFFERENTIAL,
GO