Udostępnij za pośrednictwem


Punkty kontrolne i aktywna część dziennika

Punkty kontrolne opróżnić stron zmienione dane z pamięci podręcznej buforu bieżącej bazy danych na dysku.Minimalizuje to aktywna część dziennika, które muszą zostać przetworzone podczas pełnego odzyskiwanie bazy danych.Podczas pełnego odzyskiwanie wykonywane są następujące typy działań:

  • Rekordów dziennika zmian nie opróżnione na dysk przed zatrzymania systemu są wycofać do przodu.

  • Wszystkie zmiany związane z nieukończone transakcje, takich jak transakcje, dla którego ma się zatwierdzanie lub ROLLBACK rejestrować rekordów, są przywracane.

Operacja punkt kontrolny

Punkt kontrolny wykonuje następujące procesy w bazie danych:

  • Zapisuje rekord w pliku dziennika znakowania początku punkt kontrolny.

  • Przechowuje informacje o zarejestrowanych dla punkt kontrolny w łańcuchu rekordów dziennika w punkcie kontrolnym.

    Jeden fragment informacje rejestrowane w punkt kontrolny jest numer kolejny dziennika (LSN) pierwszego rekordu dziennika, który musi być obecny dla pomyślnego przywrócenia całej bazy danych.LSN ten nosi nazwę LSN odzyskiwanie minimum (MinLSN).MinLSN jest minimum:

    • LSN początku punkt kontrolny.

    • LSN początek najstarsze aktywnej transakcji.

    • LSN początek najstarsze transakcji replikacja, która nie została jeszcze dostarczone do baza danych dystrybucji.

    Rekordy punkt kontrolny zawierają również listę wszystkich aktywnych transakcji, które zostały zmodyfikowane w bazie danych.

  • Jeśli baza danych używa proste model odzyskiwanie, znaki do ponownego użycia miejsca, który poprzedza MinLSN.

  • Zapisuje wszystkie zmienione strony danych i dziennika na dysku.

  • Zapisuje rekord oznakowanie koniec punkt kontrolny w pliku dziennika.

  • Zapisuje LSN rozpoczęcia tym łańcuchu strona uruchamiania bazy danych.

Czynności, które powodować punkt kontrolny

Punkty kontrolne są wykonywane w następujących sytuacjach:

  • Instrukcja punkt kontrolny jawnie jest wykonywany.Punkt kontrolny występuje w bieżącej bazie danych dla połączenia.

  • Minimalny zestaw zarejestrowane operacja jest wykonywana w bazie danych, na przykład operacja masowego kopiowania odbywa się w bazie danych, która korzysta z modelu Bulk-Logged odzyskiwanie.

  • Pliki bazy danych zostały dodane lub usunięte przy użyciu instrukcji ALTER DATABASE.

  • Wystąpienie SQL Server jest zatrzymany przez instrukcję zamknięcia lub zatrzymania SQL Server Usługa (MSSQLSERVER). Każda akcja powoduje, że punkt kontrolny w każdej bazie danych w wystąpienie z SQL Server.

  • Wystąpienie SQL Server okresowo generuje automatyczne punkty kontrolne w każdej bazy danych w celu skrócenia czas, jaki może zająć wystąpienie odzyskać bazy danych.

  • Tworzenie kopia zapasowa bazy danych jest pobierana.

  • Działania wymagają zamknięcia bazy danych jest wykonywane.Na przykład AUTO_CLOSE jest włączone i zamknięciu ostatniego połączenia użytkownika do bazy danych lub dokonywane są zmiany opcji bazy danych, który wymaga ponownego uruchomienia bazy danych.

Automatyczne kontrolnych

The SQL Server Database Engine generates automatic checkpoints.Interwał automatycznego punkt kontrolny jest oparta na ilość miejsca dziennika i czas, jaki upłynął od momentu ostatniego punkt kontrolny.Odstęp czas między Automatyczne punkty kontrolne mogą być bardzo zmiennej i długich, jeśli kilka się zmiany w bazie danych.Automatyczne punkty kontrolne może również wystąpić często w przypadku dużej ilości danych jest modyfikowany.

Użycie Interwał odzyskiwanie opcji konfiguracja serwera do obliczania interwał automatycznego punkty kontrolne dla wszystkich baz danych w wystąpieniu serwera.Ta opcja określa maksymalny czas Database Engine należy użyć, aby przywrócić bazę danych podczas ponownego uruchamiania systemu. The Database Engine estimates how many log records it can process in the interwał odzyskiwanie during a odzyskiwanie operation.

Interwał automatycznego punktów kontrolnych zależy również od model odzyskiwanie:

  • Jeśli baza danych używa modelu odzyskiwanie Pełny lub jest rejestrowane masowych, automatyczne punkt kontrolny jest generowany za każdym razem, gdy liczba rekordów dziennika osiągnie liczbę Database Engine może przetwarzać podczas szacowania czas określony w Interwał odzyskiwanie opcji.

  • Jeśli baza danych używa proste model odzyskiwanie, automatyczne punkt kontrolny jest generowany za każdym razem, gdy liczba rekordów dziennika osiągnie mniejszym z tych dwóch wartości:

    • W dzienniku staje się 70 procent.

    • Liczba rekordów dziennika osiągnie liczbę Database Engine może przetwarzać podczas szacowania czas określony w Interwał odzyskiwanie opcji.

Aby uzyskać informacje na temat ustawiania interwału odzyskiwanie Zobacz How to: Set the Recovery Interval (SQL Server Management Studio).

Automatyczne punkty kontrolne obcinania nieużywane części dziennik transakcji, jeśli baza danych używa proste model odzyskiwanie.Jednak jeśli w bazie danych jest przy użyciu modelu odzyskiwanie Pełny lub jest rejestrowane masowych, w dzienniku nie jest obcięty przez automatyczne punkty kontrolne.Aby uzyskać więcej informacji zobaczTransaction Log Truncation.

Opcjonalny zawiera instrukcja punkt kontrolny teraz checkpoint_duration argument określa żądany okres czas, w sekundach, dla punkt kontrolny zakończyć. Aby uzyskać więcej informacji zobaczpunkt kontrolny (języka Transact-SQL).

Aktywny dziennik

W sekcji pliku dziennika z MinLSN do rekordu dziennika zapisane w ostatniej nazywa się aktywna część dziennika, lub aktywnego dziennika.Jest to część dziennika, wymagana do wykonania pełnego odzyskiwanie bazy danych.Kiedykolwiek mogą być obcinane, żadna część aktywnego dziennika.Wszystkie rekordy dziennika musi być obcięta z części dziennika przed MinLSN.

Na poniższej ilustracji przedstawiono uproszczoną wersja dziennika koniec z transakcji z dwóch aktywnych transakcji.punkt kontrolny rekordy zostały już skompaktować do pojedynczego rekordu.

end-of-a-transaction log with active transactions

LSN 148 jest ostatni rekord dziennik transakcji.Na czas nagrane punkt kontrolny na LSN 147 został przetworzony, zostały przekazane transakcji 1 i 2 transakcji zostało tylko aktywnych transakcji.Który uaktywnia pierwszy rekord dziennika dla transakcji 2 najstarszego rekordu dziennika dla transakcji w momencie ostatniego punkt kontrolny.Dzięki temu LSN 142, rekord rozpoczęcie transakcji dla transakcji, 2, the MinLSN.

Transakcje długiej pracy

Aktywnego dziennika musi zawierać co część wszystkie niezakończone transakcje.Aplikacja, która uruchamia transakcji i nie przekazać go lub rolki go z powrotem zapobiega Database Engine z przejściem MinLSN. Może to spowodować problemy z dwóch typów:

  • Jeśli system zostanie zamknięty po transakcji ma wiele modyfikacji nieprzydzielonych, Faza odzyskiwanie późniejsze ponowne uruchomienie komputera może trwać znacznie dłużej niż przez czas określony w Interwał odzyskiwanie opcji.

  • Dziennik może powiększyć bardzo duża, ponieważ w dzienniku nie mogą być obcinane, poza MinLSN.Dzieje się tak nawet wtedy, gdy baza danych jest za pomocą modelu odzyskiwanie prostym, w którym dziennik transakcji na ogół jest obcinana w każdym punkcie kontrolnym automatyczne.

Transakcje replikacja

Agent odczytywania dziennika monitoruje dziennik transakcji o każdej bazy danych, skonfigurowane dla replikacja transakcyjnej, i kopiuje transakcje zaznaczone do replikacja z dziennika transakcji do baza danych dystrybucji.Aktywnego dziennika musi zawierać wszystkie transakcje, które są oznaczone do replikacja, ale nie zostały jeszcze dostarczone do baza danych dystrybucji.Jeśli transakcje te nie są replikowane w określonym czasie, mogą one uniemożliwić obcinania dziennika.Aby uzyskać więcej informacji zobaczW jaki sposób transakcyjne replikacja programu Works.