Backup e Restore de Databases

O gerenciamento de backup é uma das tarefas mais importantes de um DBA, pois a disponibilidade do ambiente dependerá da existência ou não desse valioso recurso. Para iniciar o assunto, primeiro vou falar sobre conceitos de backup. Independente da tecnologia empregada, existem 5 tipos de backups: full, incremental, diferential, copy e diary.

Backup Full

O backup full é um backup completo de dados. Durante o backup, os arquivos tem seu atributo de archive alterado, informando que os mesmos sofreram backup.

Backup Incremental

O backup incremental copia todo o conteúdo alterado ou criado desde o último backup full, alterando o atributo de archive dos dados.

Backup Diferential

O backup diferential copia todo o conteúdo alterado ou criado desde o último backup full, porém não altera o atributo de archive dos dados.

Backup do tipo Copy

O backup copy é um backup full, porém ele não altera o atributo de archive, permitindo que não haja interrupção na sequencia de backups.

Backup do tipo Diary

Backup do tipo diary copia todos os arquivos que foram modificados no dia da execução, e não altera o atributo de archive dos dados.

A diferença entre backup diferential e incremental é no momento de realizar o restore dos dados. Para combinação de backup full e diferential, precisaremos restaurar primeiro o backup full e depois o último backup diferential, já para uma operação de restore com um backup full e incremental, precisaremos restaurar primeiro o backup full e depois todos os backups incrementais, desde o último backup  full. Isso nos mostra que em um ambiente com backup full e diferential, teremos um processo de backup mais demorado, porém o processo de restore será mais rápido, ao contrário do backup full e incremental, onde o processo de backup dos dados é mais rápido (pois apenas os arquivos que foram alterados sofrem backup), porém o processo de restore é mais demorado, pois será necessário várias fitas para restauração completa dos dados, dependendo do volume a ser restaurado. O esquema de backup a ser utilizado vai depender da necessidade de cada empresa.

Para o SQL Server, não há backups incrementais ou diary, apenas full, copy, diferential e transaction log. As regras são as mesmas para backup full e diferential, porém para backups de transaction logs é necessário que o database esteja com o recovery model configurado para Full (falarei de recovery model em outro artigo).

Posto isso, vamos á parte prática.

Para realizar o backup full do database, a sintaxe é a seguinte:

BACKUP DATABASE [NOME_DATABASE] TO DISK = N’<caminho> {WITH COPY_ONLY | DIFERENTIAL, NAME = N’<nome_logico_backup>, COMPRESSION}

onde:

Nome_database = nome do banco de dados que sofrerá backup;

Caminho = diretório onde será gravado o arquivo de backup. Nesse opção, deve ser informado também o nome do arquivo de backup e a extensão (bak);

Todas as opções entre colchetes são opcionais, podendo ou não ser utilizadas. Para exemplificar:

BACKUP DATABASE ADVENTUREWORKS2008 TO DISK = N’E:\Backup\AdventureWorks2008_15052012.bak’ WITH COMPRESSION

O comando para realizar o backup de log é idêntico ao comando citado, apenas com algumas alterações:

BACKUP LOG ADVENTUREWORKS2008 TO DISK = N’E:\Backup\Adventureworks2008_14052012.trn’

Existem diversos parâmetros para realização de backup, porém considero os comandos citados como a base para uma boa rotina de backup.

ATENÇÃO: backups criados em uma versão do SQL Server não podem ser restaurados em versões anteriores.

ATENÇÃO 2: a compressão de dados em backups é suportada apenas no SQL Server 2008 e 2012.

Para o restore de databases e log, os comandos são os seguintes:

RESTORE DATABASE ADVENTUREWORKS2008 FROM DISK = N’E: \Backup\AdventureWorks2008_15052012.bak’ WITH REPLACE, RECOVERY

A opção REPLACE sobrescreve o database atual e RECOVERY informa ao SQL Server que após o processo de backup estiver finalizado, o database está pronto para uso.

Restore de transaction logs:

RESTORE LOG ADVENTUREWORKS2008 FROM DISK = N’E: \Backup\AdventureWorks2008_15052012.trn’ WITH NORECOVERY

A opção NORECOVERY informa ao SQL Server que ainda existem mais arquivos de log a serem restauradas, deixando o database indisponível para uso. Quando todos os arquivos de log forem restaurados, o parâmetro a ser utilizado no último arquivo a ser restaurado é RECOVERY.

Com isso encerro o artigo sobre realização de backups e restore no SQL Server.

Abraços e até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s