Udostępnij za pośrednictwem


Troubleshooting a Full Transaction Log (Error 9002)

W tym temacie omówiono możliwe odpowiedzi na pełne dziennik transakcji i sugeruje, jak uniknąć go w przyszłości.Kiedy transakcja dziennik się zapełni, SQL Server Database Engine wystawia błąd 9002. Dziennik można wypełnić, gdy baza danych jest w trybie online lub odzyskiwanie.Jeśli w dzienniku wypełnienia, gdy baza danych jest w trybie online, w bazie danych pozostaje w trybie online, ale mogą być odczytywane tylko, nie jest aktualizowany.Jeśli w dzienniku wprowadza podczas odzyskiwanie, Database Engine oznacza bazę danych jako zasób w stanie oczekiwania. W obu przypadkach aby udostępnić miejsce dziennika są wymagane akcja użytkownika.

Odpowiadanie na zapełnienie dziennik transakcji

Właściwe odpowiedzi do dziennik transakcji pełnego zależy częściowo co warunku lub warunków spowodował dziennika do wypełnienia.Aby odkryć, co uniemożliwia obcinania dziennika w danym przypadek, należy użyć log_reuse_wait and log_reuse_wait_desc kolumnsys.Database Służy do wyświetlania katalogu. Aby uzyskać więcej informacji zobaczsys.Databases (języka Transact-SQL).Aby uzyskać opis czynników, które można opóźnić obcinania dziennika zobacz temat Factors That Can Delay Log Truncation.

Important noteImportant Note:

Jeśli baza danych w podczas odzyskać wystąpił błąd 9002, po rozwiązaniu problemu, odzyskać bazy danych przy użyciu instrukcji ALTER DATABASE nazwa_bazy_danych zestaw ONLINE.

Rozwiązania alternatywne do odpowiadania na dzienniku pełne transakcji należą:

  • Tworzenie kopii zapasowej dziennika.

  • Zwalnianie miejsca na dysku, aby dziennik może automatycznie rosnąć.

  • Przenoszenie pliku dziennika na dysku z wystarczającą ilością miejsca.

  • Zwiększenie rozmiaru pliku dziennika.

  • Dodawanie pliku dziennika na innym dysku.

  • Kończenie pracy lub zabijania długo działającą transakcję.

W poniższych sekcjach omówiono te możliwości.Wybierz odpowiedź, która najlepiej pasuje do danej sytuacji.

Wykonywanie kopii zapasowych dziennika

W obszarze model pełnego odzyskiwanie lub modelu odzyskiwanie rejestrowane masowych dziennik transakcji nie wykonano jego kopii, kopia zapasowa może być to, co uniemożliwia obcinania dziennika.W dzienniku nigdy nie wykonaniu kopia zapasowa, należy utworzyć dwie kopie zapasowe dziennika pozwalające Database Engine do obcinania dziennika do momentu utworzenia ostatniej kopia zapasowa. Tworzy dziennik zwalnia miejsce dla nowych rekordów dziennika.Aby zachować w dzienniku wypełnieniu ponownie, często podjąć kopii zapasowych dziennika.

Do tworzenia kopia zapasowa dziennik transakcji

Important noteImportant Note:

Jeśli baza danych jest uszkodzony, zobacz Tail-Log Backups.

Zwalnianie miejsca na dysku

Może być wolne miejsca na dysku zawierającego plik dziennik transakcji dla bazy danych przez usunięcie lub przeniesienie innych plików.Miejsce na dysku zwolnionej systemowi odzyskiwanie automatycznie powiększenie pliku dziennika.

Przenoszenie pliku dziennika na innym dysku

Jeśli nie zwolni wystarczającej ilości miejsca na dysku, na którym aktualnie znajduje się plik dziennika, należy rozważyć, przenosząc go na innym dysku z wystarczającą ilością miejsca.

Important noteImportant Note:

Pliki dziennika nigdy nie powinny być umieszczone w systemach plików skompresowanych.

Aby przenieść plik dziennika

Zwiększenie rozmiaru pliku dziennika

Jeśli jest dostępna na dysku dziennika miejsca, można zwiększyć rozmiar pliku dziennika.Maksymalny rozmiar plików dziennika jest dwóch terabajtów (TB) dla pliku dziennika.

Aby zwiększyć rozmiar pliku

Po wyłączeniu autogrow bazy danych jest w trybie online i ilość miejsca jest dostępna na dysku, albo:

  • Ręcznie zwiększyć rozmiar pliku do wyprodukowania przyrost jednego rozmiaru.

  • Włącz autogrow przy użyciu instrukcja ALTER DATABASE ustawić przyrostu wzrostu zera dla opcji FILEGROWTH.

Uwaga

W obu przypadkach jeżeli osiągnięto limit rozmiaru bieżącego, zwiększ wartość MAXSIZE.

Dodawanie pliku dziennika na innym dysku

Dodać nowy plik dziennika do bazy danych na innym dysku, który ma wystarczająco dużo miejsca za pomocą instrukcji ALTER DATABASE <nazwa_bazy_danych> DODAWANIE PLIKU DZIENNIKA.

Aby dodać plik dziennika

Identyfikowanie i zarządzanie transakcji uruchamianie połączenia

Aby uzyskać więcej informacji zobaczManaging Long-Running Transactions.