Veeam B&R – Como restaurar databases do MS SQL

 

Olá pessoal,
No meu primeiro post sobre backup do MS SQL criamos um backup de database e transaction logs: Veeam B&R – Criando job para proteger Microsoft SQL Server – IT PRO LAND
Agora nesse post vou cobrir os três casos mais comuns de restore de databases do MS SQL Server utilizando backups criados pelo VBR.
São eles:

 

  • Restore Database
    • Faz o restore do da database em qualquer ponto que o backup de transaction logs ocorreu com a possibilidade de restaurar até mesmo transações específicas.
  • Publish Database
    • Publica uma database rapidamente em um servidor para que seja efetuado modificações e depois exportá-las para o .BAK, possibilitando o restore em outros servidores.
  • Instant Recovery
    • Combina a tecnologia do Instant Recovery com o restore de databases, possibilitando que databases de TBs de dados estejam online novamente em minutos.
Com esses métodos é possível atender todas as necessidades que um DBA costuma ter quando precisa restaurar bases do MS SQL.

 

Pré-Requisitos

 

  • Assim como o backup, só é suportado o restore nessas versões do MS SQL Server abaixo:
    • Microsoft SQL Server 2022 (somente Windows)
    • Microsoft SQL Server 2019 (somente Windows)
    • Microsoft SQL Server 2017 (somente Windows)
    • Microsoft SQL Server 2016 SP2
    • Microsoft SQL Server 2014 SP3
    • Microsoft SQL Server 2012 SP4
    • Microsoft SQL Server 2008 R2 SP3
    • Microsoft SQL Server 2008 SP4
  • As databases precisam estar utilizando no modo Full ou Bulk-logged.
  • Por padrão a opção AUTO_CLOSE é setada como False nas databases.
  • Para restaurar databases que executam em um MS SQL Server com volumes ReFS, o Backup Server ou a console do VBR deve estar instalada em um servidor com Windows Server 2012 ou posterior.
  • Para restaurar databases que executam em um MS SQL Server com volumes ReFS 3.x, o Backup Server ou a console do VBR deve estar instalada em um servidor com Windows Server 2016 ou posterior.
  • Durante o restore, dependendo das opções escolhidas, teremos diversas comunicações entre os componentes (Backup Server, console, Mount Server, Staging Server etc). Verifique se todas as portas estão abertas no firewall caso os componentes estejam em diferentes redes. Nesse link temos todas as portas utilizadas durante o restore: Ports – Veeam Backup Explorers Guide
  • Para efetuar o restore a conta utilizada precisa ser sysadmin no MS SQL Server e ser membro do grupo de Administradores local. Nesse link temos as permissões necessárias e descrição de quando é utilizado: Permissions – Veeam Backup Explorers Guide

 

Staging Server

 

Ao executar o restore existe a possibilidade de utilizar um Staging Server. Esse servidor é utilizado para montar as databases durante o restore e precisa possuir o MS SQL Server instalado na mesma versão do servidor de origem ou superior. O Staging Server não é obrigatório, pois o VBR pode utilizar o próprio SQL Server que hospeda sua database para efetuar esse processo de montagem, mas dependendo de sua infraestrutura o Staging Server pode ser recomendado.
O Staging Server também possui alguns pré-requisitos:

  • Uma versão do MS SQL Server igual ou superior que o da origem dos dados precisa estar instalado.
  • É possível utilizar qualquer edição do MS SQL Server, incluindo o Express, mas verifique as limitações do Express antes de utilizá-lo (só suporta databases de no máximo 10GB).
  • Um MS SQL Server que faz parte de um failover cluster não pode ser utilizado como Staging.
  • O usuário utilizado para conectar ao Staging Server precisa ser sysadmin no MS SQL Server e ser parte do grupo de Administradores Local.

Nos meus exemplos não utilizarei o Staging Server para simplificar o processo, mas caso seja necessário configurá-lo siga os passos do User Guide nesse link: Configuring Staging SQL Server – Veeam Backup Explorers Guide.

 

Restore Database

 

Baseado no meu post anterior, nós já temos o backup do servidor SQL02 que possui apenas uma database (VeeamOne). Vamos simular o restore dessa database para o mesmo servidor e para um servidor diferente.

Em Backup -Disk, escolha a opção “Restore application items” e em seguida “Microsoft SQL Server databases“.

 

Vou escolher o último restore point e aguardar o início do Veeam Explorer for SQL Server.

 

Ao abrir o o Veeam Explorer for MS SQL Server, ao clicar na database teremos as informações do último backup, assim como o período do transaction log disponível para restore.

 

Faremos primeiro o restore da database para o servidor de origem, mas utilizando o Transaction Logs para voltar em um ponto específico.

 

No Restore Wizard, escolha a segunda opção e defina o tempo exato que deseja fazer o restore. Nós faremos o restore da database e então iremos aplicar o transaction log para voltar no ponto exato escolhido.
Ainda é possível marcar a opção “Perform restore to the specific transaction“. Com essa opção é possível escolher voltar em um momento antes de uma transação específica.

 

Ao clicar em Restore iniciaremos a montagem do backup. Uma mensagem informando que a database será restaurada para o dia e hora escolhido será mostrado. Também explicamos que caso a database exista na origem, ela será deletada.

 

Aguarde o processo de restore e também da aplicação do transaction logs.

 

Ao final do processo será mostrado se finalizou com sucesso.

 

Faremos o mesmo processo, mas agora restaurando a database VeeamOne para um outro servidor, simulando uma situação que o DBA precisa restaurar uma database para um ambiente de DEV, por exemplo.
Escolheremos a opção “Restore to another server” dessa vez.

 

Novamente escolheremos uma data e hora específica para fazer o restore da database.

 

Dessa vez devemos escolher o servidor de destino, o nome da database que será utilizado no destino e a conta que será utilizada. No meu exemplo minha conta administrator já é sysadmin no servidor de destino.

 

Na próxima tela podemos definir o nome dos arquivos MDF e LDF que serão criados.

 

Escolha o Recovery State da base após finalizar o restore. Por padrão utilizamos o RECOVERY.

 

Aguarde a montagem do backup e o ínicio do restore.

 

Ao final do processo teremos a database pronta para usa no servidor.

 

Novamente teremos o resultado do restore ao final do proces.

 

Publishing Database

 

O Publishing Database é uma opção de restore quando você tem uma janela limitada de restore e precisa que a database esteja disponível novamente de forma mais rápida ou então precisa apenas fazer algumas alterações na database e exportar a database modificada.
Nesse método montamos os discos onde estão os arquivos físicos (MDF e LDF) no servidor de destino e adicionamos a database ao SQL Server a partir desses arquivos.
Essa opção é mais rápida que o restore convencional e ao final das alterações necessárias é possível exportar a database para .BAK.

Vamos iniciar o o Publish indo até a opção “Publish to another server“.

 

Novamente escolhemos o restore de um ponto específico.

 

Escolha o servidor de destino e o nome da database.

 

Esse processo é mais rápido porque montamos os discos direto no destino e montamos a database através dos arquivos físicos.

 

Quando o processo finalizar, se verificarmos as propriedades da database, os arquivos estarão localizados em C:\VeeamFLR porque o volume foi montado no caminho padrão do File Level Restore.

 

No Veeam Explorer for MS SQL Server teremos uma nova opção “Published databases“.

 

Após fazer as alterações necessárias, podemos exportar o estado atual da database para um .BAK e utilizá-lo para restaurar em qualquer outro servidor.

 

Instant Recovery

 

O Instant Recovery combina o Restore de database convencional com o Publishing. Com essa opção conseguimos fazer publicar uma database de TBs de dados para o local original rapidamente e deixar o restore executar em paralelo.
Nesse exemplo irei remover a database original do servidor SQL02 e fazer o Instant Recovery.

Base deletada no servidor SQL02.

 

Vamos iniciar o Instant Recovery da database e aplicar o último backup de transaction logs.

 

Meu último backup da database é das 08h do dia 23/05, mas temos  transaction logs das 11h do dia 24/05, então vou selecionar esse ponto.
Nesse exmeplo também vou escolher a opção de restaurar antes de uma transação específica para demonstrar.

 

Vou escolher para restaurar antes dessa transação de Row deleted. A base estará nesse ponto específico, então dependendo da situação, essa opção pode ser utilizada para desfazer alguma operação incorreta na database.

 

Agora devemos escolher quando iniciaremos o Switchover da database, ou seja, quando iremos iniciar a cópia dos dados para o servidor de destino porque durante o Instant Recovery a base estará sendo executada direto do repositório do VBR.
Nesse exemplo deixarei a opção Manual para demonstrar, mas é possível deixar como automático ou agendar um dia e horário específico para isso.

 

O processo de montar os volumes será iniciado, podemos acompanhar na nova seção de Instant Recovery que será criada.

 

A database será montada no SQL Server e veremos que os arquivos estão em C:\VeeamFLR. Ficará nesse caminho até fazermos o Switchover.

 

No Veeam Explorer a database estará pronta para o Switchover.

 

Ao efetuar o Switchover, a database será desmontada, os arquivos copiados para o local configurado no MS SQL Server e então montaremos a database novamente e assim finalizaremos o restore.

 

 

A vantagem do Instant Recovery e ter a database disponível o mais rápido possível em um caso de desastre, mas lembre-se que em algum monento será necessário efetuar o Switchover para finalizar o restore.
Abaixo podemos ver que a database é desmontada, e então montadada novamente, agora com os arquivos no local correto.

 

Esses são os tipos mais avançados de restore para MS SQL Server que o VBR tem disponível. Ainda é possível exportar as databases para .BAK ou restaurar os arquivos físicos (MDF e LDF), mas nesses casos é necessário fazer o restore manual da database (.BAK) ou montar a database com os arquivos físicos (MDF e LDF).

 

Links Importantes

 

 

Compartilhe!