Alguns dos meus colegas de trabalho ficaram surpresos quando eu lhes disse que posso fazer backup de um banco de dados do SQL Server enquanto ele ainda está em execução e me pergunto como isso é possível. Eu sei que o SQL Server é capaz de fazer backup de um banco de dados enquanto ele ainda está online, mas não sei como explicar por que isso é possível. Minha pergunta é que efeito isso tem no banco de dados?
Se os dados forem modificados (por uma inserção, atualização ou exclusão) enquanto o backup estiver em execução, o backup conterá essas alterações ou será adicionado ao banco de dados posteriormente?
Estou assumindo que o arquivo de log desempenha um papel importante aqui, mas não sei bem como.
editar: como observação, meu caso envolve o backup dos bancos de dados usando o SQL Server Agent e os efeitos das modificações no banco de dados durante esse processo.
fonte
Durante o backup, a captura instantânea será criada para o banco de dados e os dados serão lidos para backup a partir dessa captura instantânea. As operações reais do banco de dados ao vivo não afetarão a operação de backup.
fonte
Você não pode simplesmente copiá-lo, pois pode haver alterações no meio da cópia do banco de dados, conforme mencionado na pergunta.
Isso deve ser feito com agentes que estão cientes da funcionalidade do banco de dados e, em seguida, obtém um "instantâneo" via funções do SO ou pode usar um utilitário para despejar o banco de dados em um estado seguro (como o mysqldump, se estiver usando o mysql).
Caso contrário, você obterá um backup que pode estar corrompido e não o conhecerá até restaurá-lo. Acho que Joel e Jeff recentemente conversaram um pouco sobre isso em um podcast recente do StackOverflow.
E você está certo de que o arquivo de log é importante. Se o arquivo de diário / log estiver fora de sincronia com os dados reais, a restauração dos arquivos resultará em corrupção.
Ele se resume a um backup obtido usando um estado seguro do banco de dados, por meio de um agente que reconhece o banco de dados ou aplicativo de captura instantânea ou aplicativo que sabe como conectar corretamente o banco de dados a descarte de dados sem interferir nas atualizações durante o despejo de dados e o backup o arquivo resultante.
fonte
Existem muitas maneiras de fazer isso (de um modo geral, sem idéia de como o MSSQL normalmente faz isso), como simplesmente descarregar o banco de dados no arquivo e anexar quaisquer alterações em um arquivo de log que é confirmado após a conclusão do dump - utilizando o instantâneo específico do sistema de arquivos recursos como o VSS no Windows.
fonte
Você pode usar o que é conhecido como backup somente cópia. Não afetará o banco de dados enquanto estiver on-line
fonte