Если транзакция зафиксирована успешно, могу ли я быть на 100% уверен, что она была записана в базу данных И в файлы журнала? Могу ли я быть уверен, что данные сохранены?
Сегодня наши файлы журнала достигли предела накопителя, и мы получили много ошибок. Кроме того, некоторые другие службы потерпели крах. Мы увеличили диск и перезапустили сервер.
Во время запуска сервер сделал «восстановление базы данных» - могу ли я быть уверен, что все снова в порядке?
sql-server
sql-server-2008
sql-server-2008-r2
Полиция SQL
источник
источник
Ответы:
Если клиентское приложение выдало COMMIT и вернуло код успеха, то механизм гарантирует, что транзакция будет надежной. Гарантируется, что все изменения, сделанные в транзакции, будут видны даже после сбоя. Кроме того, восстановление также гарантирует, что любая не совершенная транзакция будет откатана в случае сбоя.
Для более подробной информации я рекомендую прочитать статью ОВЕН .
Журналирование и восстановление с опережением записи не могут гарантировать, что в базовом оборудовании хранилища имеются сбои (повреждение). И любой инженерный продукт может содержать дефекты.
Ваше приложение, как и все другие приложения, должно быть тщательно написано, чтобы правильно вести себя при наличии сбоев (ошибок). Там нет магии.
источник