Я готовлюсь к экзамену 70-432 (SQL Server 2008), и я немного не понимаю, как работает журнал транзакций.
Насколько я понимаю, (поправьте меня, если я не прав ...) журнал активно сохраняется в памяти и копируется в файл на диске как можно чаще. В каждой контрольной точке полные транзакции фиксируются в файле данных на жестком диске (то есть на самом деле они вообще не записываются на диск до контрольной точки. А в хвосте всегда хранятся транзакции, которые еще не были зафиксированы.
Когда случается беда, и вы пытаетесь сделать резервную копию «хвоста» журнала. Это хранится в файле, или вы пытаетесь сделать дамп из памяти? Я понимаю, что это не всегда возможно, но очень желательно попробовать это сделать.
Прав ли я в этом понимании?
Насколько я понимаю, (поправьте меня, если я не прав ...) журнал активно сохраняется в памяти и копируется в файл на диске как можно чаще.
Транзакции всегда закрепляются на диске в журнале транзакций, прежде чем они будут считаться зафиксированными в базе данных. Буферный кеш, с другой стороны, находится в памяти и отражает текущее состояние базы данных после того, как транзакции были зафиксированы и зафиксированы в журнале транзакций. Буферный кеш сбрасывается на диск во время контрольной точки.
Поскольку он находится в ОЗУ, сбой системы может привести к потере информации, которая хранилась в буферном кеше (и еще не сброшена на диск). Поскольку все, что было в буферном кеше, было сохранено в журнале транзакций, SQL может восстановить все транзакции, которые были зафиксированы, но еще не сброшены в файлы данных в момент сбоя.
Прочтите здесь: http://msdn.microsoft.com/en-us/library/ms345419(SQL.105).aspx