Если транзакция «совершена», то она сохраняется точно?

Если транзакция зафиксирована успешно, могу ли я быть на 100% уверен, что она была записана в базу данных И в файлы журнала? Могу ли я быть уверенным, что данные SAVED?

Сегодня наши файлы журналов достигли предела диска, и у нас появилось много ошибок. Кроме того, некоторые другие службы разбились. Мы увеличили диск и перезапустили сервер.

Во время запуска сервер выполнил «восстановление базы данных» - могу ли я быть уверен, что все снова в порядке?

12 голосов | спросил SQLGeorge 1 +04002013-10-01T22:26:41+04:00312013bEurope/MoscowTue, 01 Oct 2013 22:26:41 +0400 2013, 22:26:41

1 ответ


16

Если клиентское приложение выпустило COMMIT и вернуло код успеха, транзакция гарантируется долговечностью движка. Гарантируется, что все изменения, сделанные в транзакции, будут заметны даже после сбоя. Кроме того, восстановление также гарантирует, что любая транзакция не будет отменена в случае сбоя.

Для более подробной информации я рекомендую прочитать документ ARIES .

Запись и восстановление с записью не могут гарантировать гарантии, если у базового оборудования для хранения есть ошибки (коррупция). И любой технический продукт может содержать дефекты.

Ваше приложение, как и все другие приложения, должно быть тщательно написано, чтобы правильно вести себя в случае сбоев (ошибок). Нет волшебства.

ответил Remus Rusanu 1 +04002013-10-01T23:13:18+04:00312013bEurope/MoscowTue, 01 Oct 2013 23:13:18 +0400 2013, 23:13:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132