Se uma transação for confirmada com êxito, posso ter 100% de certeza de que ela foi gravada no banco de dados E nos arquivos de log? Posso ter certeza de que os dados estão salvos?
Hoje, nossos arquivos de log atingiram o limite da unidade e tivemos muitos erros. Além disso, alguns outros serviços falharam. Aumentamos o disco e reiniciou o servidor.
Durante a inicialização, o servidor fez uma "recuperação do banco de dados" - posso ter certeza de que está tudo bem novamente?
sql-server
sql-server-2008
sql-server-2008-r2
Polícia SQL
fonte
fonte
Respostas:
Se um aplicativo cliente emitiu um COMMIT e recebeu um código de sucesso, a transação garante que a transação seja durável. É garantido que todas as alterações feitas em uma transação sejam visíveis, mesmo após uma falha. Além disso, a recuperação também garante que qualquer transação não confirmada será revertida em caso de falha.
Para mais detalhes, recomendo a leitura do artigo ARIES .
O registro e a recuperação write-ahead não podem garantir se o hardware de armazenamento subjacente apresentar falhas (corrupção). E qualquer produto de engenharia pode conter defeitos.
Seu aplicativo, como todos os outros aplicativos, precisa ser cuidadosamente escrito para se comportar corretamente na presença de falhas (erros). Não há mágica.
fonte