Se eu fizer backup regularmente de todo o meu servidor onde reside uma instância SQL e banco de dados e restaurá-lo em uma máquina diferente, posso usar os backups de banco de dados que ocorreram (no servidor original) após a geração do snapshot completo do servidor, para trazer o novo servidor restaurado atualizado?
Quais tipos de backups de banco de dados eu precisaria estar disponível para poder fazer isso? Suponho que se eu tiver um backup completo do banco de dados atual, isso seria suficiente, mas se meu último backup completo fosse tão antigo (ou até mais antigo) que o instantâneo do servidor, eu poderia usar esse backup completo + qualquer diferencial , log de transações, etc backups que vieram após esse backup completo para atualizar o instantâneo do servidor no servidor recém-restaurado?
Exemplo (para simplificar, vamos supor que cada um desses backups seja concluído instantaneamente):
O servidor 1 tem um instantâneo de ponto no tempo completo do servidor tirado às 17h30 todos os dias.
O banco de dados A no servidor 1 passa por backups completos todas as noites às 23h30 todos os dias.
O banco de dados A também tem backups diferenciais de rotina feitos a cada hora durante todo o dia.
O banco de dados A também tem backups de log de transações feitos a cada 15 minutos durante todo o dia.
Cenário 1:
O servidor 1 falha às 23h50.
O servidor 2 é restaurado a partir do backup de instantâneo de ponto no tempo completo do servidor 1 a partir das 17h30 do dia anterior.
Podemos usar o backup completo (do servidor 1) do banco de dados A das 23h30 (20 minutos antes da falha) para restaurar o banco de dados como estava às 23h30 e, em seguida, usar o backup do log de transações das 23h45 trazer o banco de dados para o mais recente possível (no Servidor 2)?
Cenário 2:
O servidor 1 falha às 23h20.
O servidor 2 é restaurado a partir do backup de instantâneo de ponto no tempo completo do servidor 1 a partir das 17h30 do dia anterior.
Podemos usar o backup completo do banco de dados A da noite anterior às 23h30 (já que não conseguimos fazer um hoje ainda antes da falha) e, em seguida, todos os backups diferenciais de hora em hora entre 23h30 da noite anterior até 23:00 da noite e, em seguida, o backup do log de transações das 11:15 para trazer o banco de dados o mais recente possível (no Servidor 2)?
Existe uma maneira mais eficiente de restaurar em qualquer cenário acima e/ou uma maneira melhor de processar os tipos e a frequência dos backups de banco de dados?
Não. Você não pode alternar manualmente um banco de dados ONLINE para RESTORING e aplicar backups de log, e não pode anexar um banco de dados e deixá-lo no estado RESTORING.
Este seria um recurso útil, e já foi solicitado antes. Veja, por exemplo , aqui .
Qualquer backup completo, opcionalmente um backup diferencial e, em seguida, os backups de log desse ponto em diante. Observe que não precisa ser o backup completo mais recente, desde que todos os backups de log voltem a esse completo. Backups completos e diferenciais nunca quebram a cadeia de logs.
Instantâneos não são backups. Para proteção contra falhas e para fins de restauração em caso de falha, você precisa de backups. A frequência dos backups depende do RPO, RTO, SLA-s.
O instantâneo do banco de dados não é uma cópia completa do banco de dados e reside na mesma instância do servidor que o banco de dados de origem. Você não pode restaurar a partir de um instantâneo se o banco de dados estiver corrompido ou perdido, nem em outro servidor.
Os instantâneos são um estado somente leitura do banco de dados e devem ser usados para relatórios, auditorias ou talvez para fins de desenvolvimento.
Dê uma olhada na documentação a seguir.
https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15