Início > Administração de Banco de Dados > Espelhamento de Backup (MIRROR TO)

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

Anúncios
  1. Aecio
    10/05/2010 às 16:25

    Olá amigo Vitor,Se utilizarmos Jobs, como seria ?

  2. Vitor
    10/05/2010 às 17:10

    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.

  3. Fabrício
    10/05/2010 às 20:37

    Boa Vitor. Com a realização do mirror, o tempo de backup aumenta em quantos % ?

  4. Vitor
    11/05/2010 às 15:54

    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.

  5. Aecio
    14/05/2010 às 22:02

    Fala Vitor, Blz. vou tentar utilizar aqui. Qualquer coisa te comunico.Abraço

  1. No trackbacks yet.

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

%d blogueiros gostam disto: