Udostępnij za pośrednictwem


Architektura fizyczny dziennik transakcji

Dziennik transakcji służy do zapewnienia integralność danych w bazie danych, w odniesieniu do odzyskiwanie danych.Tematy w tej sekcji zawierają informacje o fizycznej architektury dziennik transakcji.Opis architektury fizycznej może poprawić skuteczność zarządzanie dzienników transakcji.

Dziennik transakcji w bazie danych jest mapowany przez jeden lub więcej fizycznych plików.Koncepcyjnie plik dziennika jest ciągiem rekordów dziennika.Fizycznie kolejność rekordów dziennika jest przechowywany wydajnie zestaw fizyczne pliki zawierające dziennik transakcji.

The SQL Server Database Engine divides each physical log file internally into a number of virtual log files.Pliki dziennika wirtualne mają stały rozmiar nie i nie ma stałą liczbę plików dziennika wirtualnej dla pliku dziennika fizycznego.The Database Engine chooses the size of the virtual log files dynamically while it is creating or extending log files.The Database Engine tries to maintain a small number of virtual files.Rozmiar wirtualny plików po plik dziennika został rozszerzony jest sumą rozmiaru istniejący dziennik i rozmiar nowego przyrost pliku.Rozmiaru lub liczby wirtualnych plików dziennika nie może być skonfigurowany lub ustawione przez administratorów.

Jedyny przypadek, pliki dziennika wirtualnego wpływa na wydajność systemu jest, jeśli pliki dziennika są definiowane przez małe size i growth_increment wartości. Jeśli te pliki dzienników rosnąć do dużego rozmiaru ze względu na wiele niewielką odległość, ma dużej ilości plików dziennika wirtualnych.Może to spowolnić uruchamianie bazy danych, a także kopia zapasowa dziennika lub operacji przywracanie.Firma Microsoft zaleca, aby przypisywać plików dziennika size wartość zbliżona do ostatecznego rozmiaru wymagane, a także mieć stosunkowo dużych growth_increment wartość

Dziennik transakcji jest plikiem otoczone.Na przykład należy wziąć pod uwagę bazy danych z jednego pliku dziennika fizycznego podzielony na cztery wirtualnych plików dziennika.Po utworzeniu bazy danych w pliku dziennika logiczne rozpoczyna się od początku fizycznego pliku dziennika.Nowe rekordy dziennika są dodawane na końcu dziennika logicznych i rozwinąć w stronę końca dziennika fizycznego.Obcinania dziennika powoduje zwolnienie wszystkich dzienników wirtualnego rekordy, których wszystkie są wyświetlane na początku minimalne odzyskiwanie dziennika numer kolejny (MinLSN).The MinLSN is the numer sekwencyjny dziennika of the oldest log record that is required for a successful database-wide rollback.Dziennik transakcji w bazie danych przykład powinien wyglądać podobny do przedstawionego na poniższej ilustracji.

Log file divided into four virtual log files

Gdy koniec dziennika logiczne osiągnięciu końca fizycznego pliku dziennika, nowe rekordy dziennika był zawijany wokół początek fizycznego pliku dziennika.

Log records wrap around to start of log file

Ten cykl powtarza się bez końca, tak długo, jak koniec dziennika logiczne nigdy nie osiąga początek dziennika logiczne.Jeżeli stare rekordy dziennika są obcinane wystarczająco często do zawsze urlop miejsca wystarczającej dla wszystkich nowych dzienników rekordów utworzonych za pomocą następnego punkt kontrolny, nigdy nie zostaną wypełnione w dzienniku.Jednak koniec dziennika logiczne uzyskać dostęp do początku dziennika logiczne, jedną z następujących operacji występuje:

  • Jeśli dla dziennika jest włączone ustawienie FILEGROWTH miejsca jest dostępna na dysku, plik jest rozszerzane o rozmiar określony w growth_increment i nowe rekordy dziennika są dodawane do rozszerzenia.Aby uzyskać więcej informacji na temat ustawienia FILEGROWTH zobacz ALTER DATABASE języka Transact-SQL).

  • Jeśli nie włączono ustawienie FILEGROWTH lub dysk, który posiada plik dziennika jest mniej wolnego miejsca niż kwota określona w growth_increment, błąd 9002 jest generowany.

Dziennik zawiera wiele plików dziennika fizycznego, logiczne dziennika zostaną przeniesione za pośrednictwem wszystkich fizycznych plików dziennika w przed zawija się powrót do początku pierwszego fizycznego pliku dziennika.