Udostępnij za pośrednictwem


Dziennik transakcji zapisu z wyprzedzeniem

W tym temacie opisano roli dziennik transakcji zapisu z wyprzedzeniem w nagrywania modyfikacji danych na dysku.Aby informacje podstawowe dotyczące dzienników transakcji, zobacz Wprowadzenie do dzienników transakcji.

SQL Server używa dziennik zapisu z wyprzedzeniem (WAL), który gwarantuje że modyfikacji danych nie są zapisywane na dysku przed zapisaniem rekordu dziennika skojarzonego z dysku.Zachowuje właściwości ACID dla transakcji.Aby uzyskać więcej informacji dotyczących transakcji i właściwości ACID, zobacz Transakcje (aparat bazy danych).

To understand how the write-ahead log works, it is important for you to know how modified data is written to disk.SQL Server maintains a buffer cache into which it reads data pages when data must be retrieved.Modyfikacji danych nie są dokonywane bezpośrednio na dysku, ale do kopii strona w pamięci podręcznej buforu.Modyfikacja nie jest zapisywany na dysku aż do punkt kontrolny występuje w bazie danych lub modyfikacji muszą być zapisane na dysku, aby można było używać buforu do przechowywania nowej strona.Zapisywanie strona zmodyfikowanych danych z buforu pamięci podręcznej dysku jest nazywany opróżniania strona.Strona zmodyfikowany w pamięci podręcznej, ale nie zostały jeszcze zapisane dysku, jest nazywany zanieczyszczona strona.

W czas modyfikacja jest wprowadzone do strona w buforze, rekordu dziennika jest wbudowana w pamięci podręcznej dziennika, który rejestruje modyfikacji.Ten rekord dziennika muszą być zapisane na dysku przed skojarzona zanieczyszczona strona jest opróżniany z buforu pamięci podręcznej dysku.Jeśli zanieczyszczona strona jest opróżniany przed zapisaniem rekordu dziennika, zanieczyszczona strona tworzy modyfikacji na dysku, którego nie można obniżyć Wstecz, jeśli serwer nie powiedzie się, przed zapisaniem rekordu dziennika na dysku.SQL Serverma logiki, która zapobiega zanieczyszczona strona jest opróżniany przed zapisaniem rekordu dziennika skojarzonych.Rekordy dziennika są zapisywane na dysku, gdy transakcje są zatwierdzone.

Ostrzeżenie

SATA IDE niektóre dyski zapisuje dane w pamięci wewnętrznej, przed zapisaniem danych w pamięci podręcznej dysku.Zapobiega to dziennik zapisu z wyprzedzeniem z działa poprawnie.Jeśli komputer z systemem SQL Server używa jednego z tych typów dysków należy włączyć enable_force_flush opcji.