Como posso fazer backup de um banco de dados do SQL Server usando o Backup do Windows Server?

11

Aparentemente, o Backup do Windows Server tem algum suporte para backup dos bancos de dados do SQL Server:

Capacidade de recuperar aplicativos. O Backup do Windows Server usa a funcionalidade VSS incorporada em aplicativos como o Microsoft® SQL Server® para proteger os dados do aplicativo. [Fonte: TechNet ]

Além disso, as pessoas relatam que o Backup do Windows Server parece acionar algum tipo de operação de backup no SQL Server .

No entanto, não consigo encontrar a documentação (oficial) sobre como fazer backup dos bancos de dados do SQL Server exatamente usando o Backup do Windows Server.

  • Eu só preciso fazer backup do .mdf? O .mdfe o .ldf?
  • Online ou apenas offline?
  • Qual é o procedimento oficial para restaurar bancos de dados do SQL Server com backup dessa maneira?
  • Há algo especial a considerar ao fazer backups incrementais / diferenciais?
  • Onde tudo isso está documentado?

(Eu sei como fazer backups com planos de manutenção do SQL Server sqlmaint.exe, T-SQL BACKUP e SQL Server Agent. Só estou interessado na alternativa que o Windows Server Backup (aparentemente?) Oferece.)

Heinzi
fonte
Qual versão do Windows Server e qual versão do SQL Server?
pauska
@pauska: Pessoalmente, eu estaria interessado em Windows Server 2012 R2 e SQL Server 2012. (I manter deliberadamente a questão mais geral para torná-lo mais útil para os outros.)
Heinzi
1
Eu tenho um Windows Server 2008 que está fazendo um backup completo. Tanto quanto posso dizer, está puxando os bancos de dados do SQL Server Express como parte de seu backup completo, pois cada banco de dados diz que foi feito o último backup no momento em que esse backup é executado. Isso me confundiu, pois estou tentando descobrir como consegui fazer backup desses bancos de dados, pois não consigo encontrar um script que esteja fazendo isso em nenhum lugar. Acho que vou escrever um script para fazê-lo de qualquer maneira, para que eu saiba que está funcionando e saiba exatamente o que tenho.
Dave Cousineau

Respostas:

5

O Backup do Windows Server não se destina a ser uma ferramenta de backup para o SQL Server.

... No entanto, o design o torna especialmente adequado para organizações menores ou indivíduos que não são profissionais de TI ...

Citação da seção Guia passo a passo do Windows Server Backup para Windows Server 2008 : "Quem deve usar o Backup do Windows Server?"

A seção que você citou está basicamente dizendo que, quando o Backup do Windows Server é iniciado, ele aciona o recurso VSS no Windows. O SQL Server estará ciente de que uma cópia de sombra de volume está ocorrendo e, com a ajuda do serviço SQL Server Writer, garantirá que uma cópia dos arquivos do banco de dados (* .mdf, * .ndf, * .ldf) possa ser executada.

A finalidade do serviço SQL Server Writer é definida da seguinte maneira:

Ao executar, o Mecanismo de Banco de Dados bloqueia e tem acesso exclusivo aos arquivos de dados. Quando o SQL Writer Service não está em execução, os programas de backup em execução no Windows não têm acesso aos arquivos de dados e os backups devem ser executados usando o backup do SQL Server.

Use o SQL Writer Service para permitir que programas de backup do Windows copiem arquivos de dados do SQL Server enquanto o SQL Server estiver em execução.

Citação da seção Serviço SQL Writer : "Finalidade"

Então isso é basicamente tudo o que acontece com o Backup do Windows Server.

Os backups criados com o Backup do Windows Server enquanto o SQL Server está em execução devem ser consistentes, mas as transações ainda não gravadas no disco não estão na Cópia de Sombra do Volume. A captura instantânea do banco de dados foi obtida enquanto estava ONLINE.

No entanto, o artigo do MSDN Backups de instantâneo afirma:

Somente os seguintes tipos de backup podem ser backups de captura instantânea:

  • Backups completos
  • Backups parciais
  • Backups de arquivos
  • Backups diferenciais do banco de dados. Eles são suportados apenas quando o fornecedor usa a interface VSS.

e adicionalmente:

Exceto conforme observado anteriormente neste tópico, os backups de captura instantânea são funcionalmente equivalentes aos backups convencionais correspondentes. Você pode usar backups de captura instantânea em sequências de restauração com backups completos sem captura instantânea, backups diferenciais e backups de log. Como outros backups, os backups de captura instantânea são rastreados no banco de dados msdb, em que os backups de captura instantânea são identificados por backupset.is_snapshot = 1. Para obter mais informações sobre o msdb, consulte Banco de dados msdb.

O SQL Server não oferece suporte à restauração online de um backup de instantâneo. A restauração de um backup de captura instantânea coloca automaticamente o banco de dados offline. Uma restauração fragmentada pode incorporar backups de captura instantânea, mas todas as seqüências de restauração são restaurações offline. Para obter mais informações sobre restaurações fragmentadas, consulte Executando restaurações fragmentadas.

Para responder suas perguntas:

  • Eu só preciso fazer backup do arquivo .mdf? O .mdf e o .ldf?
  • Online ou apenas offline?
  • Qual é o procedimento oficial para restaurar bancos de dados do SQL Server com backup dessa maneira?
  • Há algo especial a considerar ao fazer backups incrementais / diferenciais?
  • Onde tudo isso está documentado?

Respostas:

  1. Sim, você pode fazer uma cópia do Windows Server Backup (VSS) dos arquivos .mdf e .ldf. O backup deve ser consistente, mas o banco de dados será OFFLINE após uma restauração.
  2. Se o SQL Server for parado / o banco de dados for desanexado / o banco de dados estiver OFFLINE, uma cópia do VSS dos arquivos .mdf e .ldf será 100% consistente.
  3. Não tenho certeza de como restaurar um banco de dados (para um momento específico) realizado com o Backup do Windows Server, porque o banco de dados é restaurado no estado OFFLINE. Um banco de dados no estado OFFLINE não pode mais ser restaurado / recuperado e colocar o banco de dados ONLINE resulta em um banco de dados considerado totalmente recuperado. Eu recomendaria backups completos, DIFF e TLOG do SQL Server separados para garantir que você possa executar uma restauração do banco de dados em um determinado momento.
  4. Os logs de transações não fazem parte dos instantâneos criados com o Backup do Windows Server e devem ser executados adicionalmente. Instantâneos diferenciais são suportados por fornecedores terceirizados como parte da sequência de backup, mas o Backup do Windows Server não parece capaz de executar backups diferenciais. Nesse caso, você também teria que executar backups diferenciais adicionais. (ver 3.)
  5. Referências diferentes

Explicado na implementação da vida real

Em nosso ambiente, temos uma situação semelhante em que a VMware está realizando um instantâneo e os DBAs estão realizando despejos do SQL Server com o Commvault. O histórico de backup é assim:

DBNAME  TYPE BACKUPSET_NAME            IS_SNAPSHOT BACKUP_START_DATE        
------- ---- ------------------------- ----------- -----------------------  
DB_NAME  Full  NULL                    1           2016-12-10 18:23:59.000  
DB_NAME  Full  CommVault Galaxy Backup 0           2016-12-10 20:07:41.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-11 06:00:40.000  
DB_NAME  Full  NULL                    1           2016-12-11 18:24:00.000  
DB_NAME  Diff  CommVault Galaxy Backup 0           2016-12-11 20:03:38.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 06:02:29.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 07:02:17.000  

O instantâneo VMware criará uma entrada nas tabelas de histórico do banco de dados MSDB com IS_SNAPSHOT = 1e FULLpara cada instantâneo VMware realizado (diariamente). Os backups nativos (bem do Commvault usando nativos) do SQL Server são realizados usando backups COMPLETOS, DIFF e TLOG. Esses backups não são marcados como IS_SNAPSHOT e existem como entradas adicionais CHEIO (uma vez por semana), DIFF (todos os dias) e LOG (a cada hora) nas tabelas de backup no banco de dados msdb.

Com essa configuração, podemos executar uma restauração para a data e hora do instantâneo e, em seguida, colocar o banco de dados ONLINE, ou podemos executar uma restauração individual para qualquer momento usando os backups "nativos" do SQL Server.

John aka hot2use
fonte
1

Você não pode. Ou pelo menos você provavelmente não deveria. No que diz respeito aos bancos de dados do SQL Server, os backups nativos são o método suportado.

Acho que você pode estar entendendo mal o que o artigo da TechNet está dizendo. O comentário que você citou não indica que você pode usar o backup do Windows Server para bancos de dados do SQL Server. Na verdade, é apenas destacar que o backup do Windows Server utiliza o mesmo Serviço de Cópia de Sombra de Volume usado pelo SQL Server. Mais informações: TechNet: SQL Writer Service

shiitake
fonte
Sei que não deveria - não confiaria meus dados em um recurso tão mal documentado. Ainda assim, estou curioso para saber se é possível, teoricamente: SQL Server faz proporcionar um escritor VSS, e Backup do Windows Server é um solicitador VSS, então eu vou deixar o aberto pergunta por agora. Talvez seja apenas uma questão de combinar os dois (há, por exemplo, instruções on-line sobre como fazer isso para o gravador do Hyper-V VSS ).
Heinzi
1
Aparentemente, Backup do Windows Server não desencadear algum tipo de backup do servidor SQL, consulte este quesiton .
Heinzi 13/12/16
1

O backup SQL não apenas copia dados, mas também trunca o log. Você pode encontrar centenas de opções na página de manual que o ajudarão, como compactar o arquivo de backup em tempo real.

Lembro-me de que o backup do vss foi usado para copiar uma Máquina Virtual congelada ou para capturar instantaneamente um lun em uma SAN para fazer backup de uma imagem estática, mas o backup será "consistente com falhas", como interrupção de energia e não muito consistente.

Relacionado

Massimiliano Piccinini
fonte
0

Eu acho que ele usa um tipo de backup especial chamado "Snapshot Backup".

Na documentação do SQL Server 2008:

O backup de instantâneo do SQL Server também é usado pelo VSS (Volume Shadow Copy Service) do Microsoft Windows Server 2003 e por todo o software de backup e armazenamento que usa essa estrutura. Para mais informações, consulte SQL Writer Service.

Tudo está muito claro para mim. Especialmente se isso truncar os logs de transações ou não.

StackzOfZtuff
fonte