Udostępnij za pośrednictwem


Fizycznej architektury dziennika transakcji

Dziennik transakcji jest używana do zagwarantowania integralność danych bazy danych i odzyskiwanie danych.Tematy w tej sekcji zawierają informacje o fizycznej architektury dziennika transakcji.Opis architektury fizycznej można zwiększyć efektywność zarządzania dzienników transakcji.

Dziennik transakcji w bazie danych map jednego lub większej ilości plików.Plik dziennika jest koncepcyjnie, ciąg rekordów dziennika.Fizycznie, sekwencja rekordów dziennika jest przechowywany wydajnie w zestaw z plików fizycznych, które implementują dziennika transakcji.

Aparat baz danych programu SQL Server Dzieli każdego fizycznego pliku dziennika wewnętrznie na pewną liczbę plików dziennika wirtualnych.Pliki dziennika wirtualne mają stały rozmiar nie i nie ma stałą liczbę plików dziennika wirtualnych dla fizycznego pliku dziennika. Aparat baz danych Wybiera rozmiar wirtualnych plików dziennika dynamicznie podczas tworzenia lub rozszerzania plików dziennika. Aparat baz danych Usiłuje utrzymać niewielką liczbę plików wirtualnych.Rozmiar wirtualnego plików po pliku dziennika został rozszerzony jest suma rozmiar istniejących dzienników i rozmiar przyrostu nowego pliku.Nie można skonfigurować rozmiaru lub liczby plików dziennika wirtualnego lub zestaw przez administratorów.

Jedynym czas wydajność systemu wpływają na pliki dziennika wirtualnego jest, jeśli pliki dziennika są definiowane przez małe size i growth_increment wartości.Te pliki dziennika wzrastał do dużego rozmiaru z powodu wielu niewielką odległość, mają wiele plików dziennika wirtualnych.Może to spowolnić proces uruchamiania bazy danych, a także kopia zapasowa dziennika i operacji przywracanie.Firma Microsoft zaleca, aby przypisać pliki dziennika size wartość zbliżona do ostatecznego rozmiaru wymagane, a także mieć stosunkowo dużą growth_increment wartości

Dziennik transakcji jest otoczone pliku.Rozważmy na przykład bazy danych z jednym fizycznym pliku dziennika podzielony na cztery wirtualnych plików dziennika.Po utworzeniu bazy danych pliku dziennika logiczne rozpoczyna się na początku pliku dziennika fizycznego.Nowe rekordy dziennika są dodawane na końcu dziennika logicznych i rozwiń do końca dziennika fizycznego.Wszelkie wirtualnego dzienniki których wszystkie rekordy są wyświetlane z przodu minimalne odzyskiwanie zwalnia obcinania dziennika numer sekwencyjny dziennika (MinLSN).MinLSN to numer sekwencyjny dziennika najstarszego rekordu dziennika, który jest wymagany do pomyślnego wycofywania całej bazy danych.Dziennik transakcji w bazie danych przykład wyglądał podobny do przedstawionego na poniższej ilustracji.

Plik dziennika podzielony na cztery wirtualne pliki dziennika

Gdy koniec logiczne dziennika osiągnie końca fizycznego pliku dziennika, nowe rekordy dziennika otacza początek fizycznego pliku dziennika.

Rekordy dziennika zawinięte wokół początku pliku dziennika

Ten cykl powtarza ciągłego, jak koniec logiczne dziennika nigdy nie osiąga początek dziennika logicznych.Jeżeli stare rekordy dziennika są obcinane wystarczająco często do zawsze urlopu miejsce wystarczające dla wszystkich nowych rekordów dziennika utworzonych za pomocą następnego punkt kontrolny, dziennik nigdy nie wypełni.Jednakże koniec logiczne dziennika osiągnie uruchomienie dziennika logiczne, jedną z dwóch czynności występuje:

  • Jeśli ustawienie FILEGROWTH jest włączone dla dziennika jest dostępnego miejsca na dysku, plik jest przedłużony kwoty określonej w growth_increment do rozszerzenia są dodawane nowe rekordy dziennika.Aby uzyskać więcej informacji na temat ustawienia FILEGROWTH, zobacz ALTER DATABASE (Transact-SQL).

  • Jeśli nie włączono ustawienie FILEGROWTH lub dysku, pełniący pliku dziennika jest mniej wolnego miejsca niż kwota określona w growth_increment, generowany jest błąd 9002.

Jeśli dziennik zawiera wiele plików dziennika fizycznego, logiczne dziennika będzie przechodzić wszystkich fizycznych plików dziennika przed zawija się powrót do początku pierwszego fizycznego pliku dziennika.