Резервное копирование журнала транзакций

Я готовлюсь к экзамену 70-432 (SQL Server 2008), и меня немного смущает, как работает журнал транзакций.

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

Когда происходит катастрофа, и вы пытаетесь сделать резервную копию "хвоста" журнала. Это хранится в файле, или вы пытаетесь сбросить из памяти? Я знаю, что это не всегда возможно сделать, но очень желательно попробовать это сделать.

Прав ли я в этом понимании?

2 ответа

Решение

Насколько я понимаю, (поправьте меня, если я ошибаюсь...) журнал активно сохраняется в памяти и копируется в файл на диске как можно чаще.

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

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

Другие вопросы по тегам