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.
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.
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.
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.
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.