Espelhamento de Backup (MIRROR TO)

E ai pessoal, tudo bem?

Hoje eu tenho um desafio para vocês.

Como eu faço para realizar um backup de um banco de dados, deixando uma cópia do backup no servidor atual e já fazer uma cópia no servidor de backup?

Quero que o backup e a cópia sejam realizados ao mesmo tempo, sem a necessidade de intervir na cópia do arquivo de backup para o servidor de backups.

Realmente existe uma EXTENDED STORED PROCEDURE chamada XP_CMDSHELL que poderia nos ajudar a resolver esse problema.

Essa procedure permite que executemos comandos do sistema operacional, como por exemplo a cópia física de um arquivo, utilizando o SQL Server.

Mas a procedure XP_CMDSHELL gera uma grande abertura para possíveis “ataques” ao sistema operacional através do SQL Server, portanto ela está excluída da nossa solução.

A resposta para esse desafio é mais fácil do que você imagina, basta utilizarmos a cláusula MIRROR TO.

Vamos construir o seguinte cenário:

Atualmente o backup do meu banco de dados Ecommerce é realizado todas as noites e o arquivo gerado é gravado no disco D:Backup através do comando abaixo.

BACKUP DATABASE Ecommerce

TO DISK = ‘D:\BackupEcommerce.bak’

Por questões de segurança também será necessária a cópia do arquivo de backup para o caminho físico E:\Backup_Copia.

Para resolvermos esse problema, utilizamos a cláusula MIRROR TO, como exemplificado abaixo.

BACKUP DATABASE
Ecommerce TO DISK
= ‘D:\BackupEcommerce.bak’

MIRROR TO DISK
= ‘E:\Backup_CopiaEcommerce.bak’

WITH FORMAT

Com a utilização da cláusula MIRROR TO, o SQL Server passa a realizar o backup do banco de dados Ecommerce e gerar, ao mesmo tempo, dois arquivos de backup, sendo que um está sendo gravado no caminho físico D:Backup e outro sendo gravado no caminho físico E:\Backup_Copia.

Importante ressaltar que por ser um backup espelhado, caso qualquer um do arquivos de backup não possa ser finalizado, TODO o processo de backup é cancelado.

Essa funcionalidade só está disponível na edição ENTERPRISE e apenas a partir da versão SQL Server 2005.

Espero que tenham gostado e fiquem à vontade para enviar comentários, críticas e sugestões.

Abraço a todos.
Vitor Fava

5 ideias sobre “Espelhamento de Backup (MIRROR TO)

  1. Vitor

    Fala grande Aecio.Olha só, se você quiser adicionar um job, é bem tranquilo também, basta que você coloque o script de backup dentro de um step que seja de T-SQL.Se tiver mais alguma dúvida é só me procurar.Grande abraço.

    Resposta
  2. Vitor

    E ai Fabricio, tudo bem?Olha só, temos algumas variáveis interessantes para calcular essa % de aumento.Por exemplo, se o espelho do backup for enviado através da rede, temos de considerar a largura de banda e a concorrência pelo recurso.Mas vamos imaginar que temos um backup espelhado sendo gerado em dois discos fisicos diferentes e ambos com a mesma velocidade certo? Teoricamente o aumento seria de 0%, já que o SQL Server conseguiria escrever ao mesmo tempo em dois discos diferentes.Grande abraço.

    Resposta

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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.