Criação e Restauração de Backup no SQL Server 2005 – Parte III

Aprenda alguns recursos e funcionalidades avançados que o SQL Server 2005 oferecer para a criação, manutenção e restauração de backups.

Herleson Paiva Pontes

 

Nos dois primeiros artigos da série apresentamos todos os conceitos e recursos oferecidos pelo SQL Server 2005 para a criação e restauração de diversos tipos de cópias de segurança dos dados. Mostramos também como gerenciar estas cópias através do Management Studio e da linguagem T-SQL.

Mas o SQL Server não se limita apenas aos fundamentos apresentados até agora. Existem algumas funcionalidades e recursos que auxiliam os processos de Backup e Restore, resultando em diversas vantagens, tais como: economia de tempo e trabalho do Administrador; minimização da perda de dados; eficiência na organização e manipulação das cópias; e redução do tempo em que a base de dados está indisponível para seus usuários.

Neste artigo, apresentaremos alguns recursos e funcionalidades avançadas que o SQL Server 2005 oferecer para a criação, manutenção e restauração de backups. Ao longo deste artigo mostraremos exemplos práticos destes recursos, além de exemplificar os seus cenários de aplicação. Este artigo é o terceiro de uma série de quatro, que mostra como criar e restaurar backups.

Para este artigo, utilizaremos o SQL Server 2005 Evaluation Edition, disponíveis para download no site da Microsoft: http://www.microsoft.com/sql/default.mspx.

Criando Dispositivos Lógicos de Backup (Backup Devices)

Durante o processo de criação de um Backup, um dos passos importantes é a definição do destino da cópia a ser criada. Por padrão, o SQL Server 2005 oferece duas opções: Disk (Disco) ou Tape (Fita). Estes destinos são chamados de dispositivos físicos de backup. No Management Studio, esta escolha é feita através da propriedade Destination da janela Back Up Database. Na Linguagem T-SQL, o destino é definido através da opção TO DISK/TAPE=’Caminho’ no comando RESTORE.

Entretanto, existem alguns casos onde o Administrador necessita organizar logicamente estes destinos.

O primeiro caso ocorre quando o Administrador se depara com a necessidade de trabalhar e gerenciar vários destinos para suas cópias de segurança. Estas cópias são dividas de acordo com regras estabelecidas pelo próprio Administrador, no intuito de organizá-las e assim garantir a segurança dos backups e agilizar o processo de restauração em caso de falha da base principal. O DBA pode, por exemplos, dividir os backups de acordo com o tipo (Completo, Diferencial e Log), armazenando cada um destes tipos em servidores diferentes; ou então dividir os backups de acordo com a sua realização: backups diários em um local, backups semanais em outro, e assim por diante. O problema neste caso é que, à medida que a quantidade de destinos cresce, a complexidade no gerenciamento aumenta significativamente, resultando no aumento da carga administrativa.

O segundo caso aparece quando o DBA precisa utilizar os comandos BACKUP e RESTORE em seus códigos T-SQL, informando-os o local de armazenamento do backup. Nestas situações, o problema fica por conta de alterações nos destinos: se o DBA possuir 10 (dez) scripts apontando para o servidor SQL1 e precisar alterar para o servidor SQL2, serão 10 (dez) códigos a serem abertos e alterados.

Em ambos os casos, gerenciar os backups utilizando como destino os dispositivos físicos pode se tornar uma atividade desgastante.

Para facilitar a organização dos backups, o SQL Server 2005 oferece ao Profissional o recurso de criação de dispositivos lógicos de backup (Logical Backup Devices). Ao criar um dispositivo lógico, o SQL Server associa o seu nome ao destino selecionado.

Desta forma, o Administrador pode nomear os dispositivos lógicos de acordo com as suas necessidades, criando um padrão que facilite a identificação e função. Além disso, nos casos onde o dispositivo lógico é usado em scripts T-SQL, o DBA ganha flexibilidade para realizar alterações nos destinos dos backups sem alterar o código. Nestes casos, o DBA só precisa remover o dispositivo lógico atual e criar um novo dispositivo com o mesmo nome do antigo, mas com o novo destino desejado. Uma vez feita a modificação, o SQL Server passa a utilizar o novo destino em todos os códigos automaticamente.

Para criar um novo dispositivo de backup, abra o Management Studio e expanda a pasta Server Objects. Ao expandi-la, clique com o botão direito na pasta Backup Devices e selecione a opção New Backup Device. Será exibida então a janela Backup Device, como mostra a Figura 1.

3-08-2007pic01.JPG
Figura 1
. Janela Backup Device.

A janela Backup Device possui duas propriedades: Device Name e Destination. Na primeira propriedade o Administrador informa ao SQL Server 2005 qual será o nome lógico do novo dispositivo. A segunda propriedade informa qual é o local físico (Disco ou Fita) onde serão armazenados os backups. Para finalizar, basta clicar em OK e o dispositivo estará criado.

Uma vez criado, o dispositivo passa a está disponível na janela Select Backup Device, durante a criação de um backup, como mostra a Figura 2.

3-08-2007pic02.JPG
Figura 2
. Janela Select Backup Destination, com a opção de escolha do Backup Device.

Além disso, o Backup Device oferece informações sobre as bases de dados copiadas, tipos de backups armazenados, entre outras. Ao clicar com o botão direito em cima do dispositivo e selecionar a opção Properties, o Management Studio exibe a janela de propriedades. Na página Media Contents, o SQL Server informa ao Administrador todo o conteúdo armazenado no dispositivo, como mostra a Figura 3. Este recurso funciona de forma semelhante ao botão Contents, da janela Specify Backup do processo de Restore.

3-08-2007pic03.JPG
Figura 3
. Listagem dos Backups armazenados no dispositivo.

Uma propriedade interessante deste recurso é o suporte a mapeamento de unidades e compartilhamentos de rede como locais para armazenamento dos backups. Nestes casos, quando o Administrador informa um local remoto e clica em OK, o Management Studio exibe uma mensagem, como mostra a Figura 4.

3-08-2007pic04.JPG
Figura 4
. Aviso do Management Studio sobre a verificação do local.

Esta mensagem está informando ao Administrador que o local físico não pode ser verificado e pergunta se deseja criar o dispositivo lógico assim mesmo. Ao clicar em Yes, o SQL Server cria o novo dispositivo e passa a utilizá-lo normalmente.

Uma observação importante: nos casos em que o SQL Server 2005 precisa acessar locais remotos, a conta de serviço do SQL Server precisa ter acesso ao recurso de rede. Este acesso depende do usuário que está associado ao serviço. Esta propriedade é definida através do SQL Server Configuration Manager, nas propriedades do serviço SQL Server.

Para criar um dispositivo lógico usando T-SQL, o SQL Server oferece um procedimento chamado sp_addumpdevice. A Listagem 1 possui um exemplo da utilização do procedimento.

Listagem 1. Sintaxe básica para a criação de um Backup Device.

--Setando o banco a ser utilizado

USE master;

--Criando um dispositivo lógico

sp_addumpdevice @devtype = 'disk', @logicalname = 'Nome_Dispositivo_Logico', @physicalname = '\\Servidor\Share\Backup.bak';

 

Para remover um dispositivo lógico usando T-SQL, utilize o procedimento sp_dropdevice. A Listagem 2 possui um exemplo da utilização do procedimento.

Listagem 2. Sintaxe básica para a remoção de um Backup Device.

--Setando o banco a ser utilizado

USE master;

--Removendo um dispositivo lógico

sp_dropdevice @logicalname = 'Nome_Dispositivo_Logico';

 

Por fim, este recurso está disponível em todas as edições do SQL Server 2005.

Espelhamento do Backup (Backup Mirrors)

Toda vez que o Administrador realiza o processo de criação de um Backup, o SQL Server 2005 cria uma única cópia da base de dados e a armazena em disco ou fita. Entretanto, em muitos casos, o cenário exige que o Administrador crie cópias adicionais de um backup e as armazene em locais diferentes do backup original, para se proteger contra problemas relacionados a falhas na mídia. Esta tarefa é de suma importância, visto que os backups são a última prevenção contra a perda de dados.

No SQL Server 2000, o processo de duplicação de um backup é completamente manual e desgastante: a partir do backup são criadas as cópias e estas movidas para outro local. Este processo consome muito tempo e recursos do Servidor, além de favorecer o surgimento de problemas na mídia do backup original, causado pela leitura intensa.

O SQL Server 2005 oferece uma nova funcionalidade ao comando BACKUP da Linguagem T-SQL: o Espelhamento (MIRROR). Através deste recurso, o Administrador pode criar cópias adicionais de um backup (chamadas de “Espelhos”) durante o processo de Backup. Desta forma, o backup original e as suas cópias são criadas em um único momento, minimizando o tempo gasto com o processo e salvando recursos do Servidor.

Durante a criação de um backup espelhado, o SQL Server realiza a leitura das páginas dos arquivos de dados apenas uma vez e cria múltiplas cópias. Estas cópias são, então, escritas em todos os destinos configurados no comando BACKUP simultaneamente. Assim, ao término do processo de backup, o SQL Server terá criado o backup e seus espelhos.

Entretanto, existem algumas restrições em relação ao backup espelhado. Este recurso suporta até 4 (quatro) destinos por comando: um destino normal e três espelhos. Além disso, todas as mídias envolvidas no espelhamento devem ser do mesmo tipo: Disco ou Fita (Exemplo: se o backup será feito em disco, todos os espelhos devem ser também disco). Esta restrição garante a redução do impacto no Servidor de Dados, quando este recurso for utilizado.

O recurso de espelhamento oferece suporte a dispositivos lógicos de backup e locais de rede, desde que estes estejam dentro das restrições acima colocadas.

Para que o SQL Server 2005 realize a criação de um espelho, deve-se usar a cláusula MIRROR TO no comando de criação do backup. A Listagem 3 possui um exemplo de criação de um Backup do banco de dados com espelhamento.

Listagem 3. Sintaxe básica para a criação de um backup com espelhamento.

--Setando o banco a ser utilizado

USE master;

--Criando um backup com Espelhamento

BACKUP DATABASE AdventureWorks TO DISK='C:\Backup\Original.bak' MIRROR TO DISK='C:\Backup\Mirror.bak' WITH FORMAT;

 

Por fim, observe no final do comando o parâmetro WITH FORMAT. A cláusula FORMAT é um parâmetro opcional para o comando BACKUP: este comando é utilizado para escrever um novo cabeçalho na mídia de backup, sobrescrevendo o cabeçalho anterior e invalidando os backups anteriores.

Entretanto, para garantir que as páginas de dados do espelhamento estejam escritas da mesma forma que no backup original, não é possível armazenar múltiplos backups em um arquivo ou fita espelhado. Portanto, a propriedade FORMAT é obrigatória para a criação de cópias espelhadas.

O recurso de espelhamento só está disponível na edição Enterprise e Developer.