Вопрос о журнале транзакций базы данных

Я читаю следующий оператор:

SQL Server не записывает данные на диск немедленно. Он хранится в буферный кеш, пока этот кеш не заполнится или пока SQL Server не выдаст чекпоинт, а потом данные выписываются. Если сбой питания происходит, пока кеш все еще заполняется, то данные теряются. Однако как только питание вернется, SQL Server начнет работу со своего состояние последней контрольной точки и любые обновления после последней контрольной точки, были зарегистрированы, поскольку успешные транзакции будут выполняться с журнал транзакций.

И возникает пара вопросов:

  1. Что делать, если сбой питания произойдет после SQL Server выдает сообщение контрольная точка и перед буферный кеш фактически записывается в диск? Разве содержимое в буферном кеше не пропадает постоянно?

  2. Журнал транзакций также сохраняется как дисковый файл, который не отличается от фактического файла базы данных. Итак, как мы можем гарантировать целостность файла журнала?

Итак, правда ли, что реальной транзакции никогда не существует? Это всего лишь вопрос вероятности .

6
задан smwikipedia 2 August 2011 в 15:37
поделиться