Numer ID artykułu: 873235 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

WPROWADZENIE

W tym artykule opisano czynności, które należy wykonać, gdy dzienniki transakcji osiągną zbyt duży rozmiar. Zapełnienie dzienników transakcji może uniemożliwić korzystanie z bazy danych programu Microsoft SQL Server. W tym artykule opisano sposób skracania i zmniejszania rozmiaru dzienników transakcji oraz zapobiegania nieoczekiwanemu zwiększeniu rozmiaru tych dzienników.

Więcej informacji

Skrócenie dziennika transakcji

Aby rozwiązać problem dotyczący zapełnionych dzienników transakcji, należy skrócić te dzienniki. W tym celu należy usunąć nieaktywne transakcje z dziennika i zmniejszyć rozmiar pliku dziennika transakcji.

Uwaga Dzienniki transakcji stanowią bardzo istotny czynnik dla zachowania integralności transakcyjnej bazy danych. Z tego względu nie wolno usuwać plików dzienników transakcji nawet po utworzeniu kopii zapasowych bazy danych i dzienników transakcji.


Więcej informacji o zmniejszaniu rozmiaru dziennika transakcji można znaleźć w następującej witrynie firmy Microsoft w sieci Web:
Zmniejszanie dziennika transakcji w programie SQL Server 2000
Zmniejszanie dziennika transakcji w programie SQL Server 2005

Usuwanie nieaktywnych transakcji z dziennika transakcji

W przypadku zapełnienia dzienników transakcji należy niezwłocznie utworzyć kopię zapasową pliku dziennika transakcji. Podczas tworzenia kopii zapasowej plików dziennika transakcji program SQL Server automatycznie usuwa nieaktywną część dziennika transakcji. W nieaktywnej części pliku dziennika transakcji zawarte są informacje o zakończonych transakcjach. Z tego względu program SQL Server nie korzysta z tego pliku dziennika podczas procesu odzyskiwania. Miejsce zajmowane przez informacje o nieaktywnych transakcjach jest ponownie wykorzystywane przez programu SQL Server, dzięki czemu dziennik transakcji pozostaje w użyciu bez zużywania dodatkowego miejsca.

Więcej istotnych informacji dotyczących tworzenia i przywracania kopii zapasowych dzienników transakcji zawarto w następujących tematach w dokumentacji SQL Server Books Online:
  • Kopie zapasowe dziennika transakcji
  • Tworzenie i przywracanie kopii zapasowej dziennika transakcji
Nieaktywne transakcje można też usunąć z pliku dziennika transakcji przy użyciu metody Obetnij. Więcej informacji o obcinaniu dzienników transakcji zawarto w temacie „Obcinanie dziennika transakcji” w dokumentacji SQL Server Books Online.

Ważne W przypadku przeprowadzenia ręcznego obcinania plików dziennika transakcji przed utworzeniem kopii zapasowej dziennika transakcji należy utworzyć pełną kopię zapasową bazy danych.

Aby uzyskać więcej informacji o problemach, które mogą wystąpić w przypadku obcięcia plików dziennika transakcji, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
62866 Dlaczego dziennik transakcji SQL nie jest obcinany (strona może być w języku angielskim)

Zmniejszenie rozmiaru dziennika transakcji

Utworzenie kopii zapasowej i zastosowanie metody Obetnij nie powoduje ograniczenia rozmiaru pliku dziennika. W tym celu należy zmniejszyć rozmiar pliku dziennika transakcji. Aby ograniczyć rozmiar pliku dziennika transakcji do określonej wartości i usunąć nieużywane strony, należy użyć operacji DBCC SHRINKFILE. Przy użyciu instrukcji DBCC SHRINKFILE języka Transact-SQL można skrócić plik dziennika tylko o jego nieaktywną część.

Uwaga Zastosowanie samej instrukcji DBCC SHRINKFILE języka Transact-SQL nie pozwala obciąć dziennika ani zmniejszyć używanego miejsca w pliku dziennika.

Więcej informacji o zmniejszaniu rozmiaru plików dziennika transakcji można znaleźć w następujących tematach w dokumentacji SQL Server Books Online:
  • Zmniejszanie rozmiaru dziennika transakcji
  • DBCC SHRINKFILE
Aby uzyskać więcej informacji na temat zmniejszania rozmiaru plików dziennika transakcji w programie SQL Server 2000, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
272318 Zmniejszanie dziennika transakcji w programie SQL Server 2000 za pomocą instrukcji DBCC SHRINKFILE (strona może być w języku angielskim)
Aby uzyskać więcej informacji o problemach, które mogą wystąpić podczas zmniejszania plików dziennika transakcji, należy klikać następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
814574 PRB: Podczas zmniejszania pliku dziennika transakcji jest wyświetlany komunikat o błędzie „Nie można zmniejszyć pliku dziennika” (strona może być w języku angielskim)
324432 PRB: Polecenia DBCC SHRINKFILE i SHRINKDATABASE mogą nie działać, ponieważ kolumny text, ntext i image są zbyt rzadko zapełnione (strona może być w języku angielskim)

Zapobiegnięcie nieoczekiwanemu zwiększeniu rozmiaru plików dziennika transakcji

Aby zapobiec nieoczekiwanemu zwiększaniu się rozmiaru plików dziennika transakcji, należy użyć jednej z poniższych metod:
  • Określenie dużej wartości w ustawieniu rozmiaru plików dziennika transakcji w celu uniknięcia automatycznego rozszerzania plików dziennika transakcji.
  • Skonfigurowanie automatycznego rozszerzania plików dziennika transakcji przy użyciu jednostek pamięci zamiast wartości procentowych po szczegółowej ocenie optymalnego rozmiaru pamięci.

    Aby uzyskać więcej informacji o istotnych zagadnieniach dotyczących konfigurowania opcji autogrow, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    315512 Zagadnienia dotyczące konfigurowania opcji autogrow i autoshrink
  • Zmiana modelu odzyskiwania. W przypadku wystąpienia awarii lub uszkodzenia danych należy przeprowadzić odzyskiwanie bazy danych w sposób umożliwiający zachowanie spójności danych i integralności transakcyjnej w bazie danych. W zależności od tego, jak krytyczne dane są przechowywane w bazie danych, można użyć jednego z następujących modeli odzyskiwania w celu określenia sposobu tworzenia kopii zapasowej danych i zagrożenia związanego z utratą danych:
    • Model odzyskiwania prostego
    • Model odzyskiwania pełnego
    • Model odzyskiwania z niepełnym dziennikiem
    Przy użyciu modelu odzyskiwania prostego można przywrócić najnowszą kopię zapasową bazy danych. Modele odzyskiwania pełnego i z niepełnym dziennikiem umożliwiają przywrócenie bazy danych do punktu, w którym wystąpił błąd. W tym celu używane są kopie zapasowe pliku dziennika transakcji.

    Domyślnie w programach SQL Server 2000 i SQL Server 2005 dla bazy danych programu SQL Server jest ustawiony model odzyskiwania pełnego. Dla tego modelu regularnie są tworzone kopie zapasowe dziennika transakcji, aby zapobiec nadmiernemu rozrastaniu się pliku dziennika transakcji w stosunku do wielkości bazy danych. Jeśli jednak kopie zapasowe dziennika transakcji nie są regularnie tworzone, rozmiar pliku tego dziennika zwiększa się aż do zapełnienia dysku, co z kolei może uniemożliwić wykonywanie jakichkolwiek operacji modyfikowania danych w bazie danych programu SQL Server.

    Jeśli pliki dziennika transakcji nie będą używane podczas operacji odzyskiwania awaryjnego, można zmienić model odzyskiwania na prosty.
  • Regularne tworzenie kopii zapasowych plików dziennika transakcji i usuwanie nieaktywnych transakcji z dziennika transakcji.
  • Zaprojektowanie transakcji o małych rozmiarach.
  • Upewnienie się, że niewykonane transakcje nie kontynuują działania w nieskończoność.
  • Zaplanowanie codziennego wykonywania aktualizacji statystyki.
  • Defragmentowanie indeksów w celu zwiększenia wydajności obsługi obciążeń w środowisku produkcyjnym przy użyciu instrukcji DBCC INDEXDEFRAG języka Transact-SQL, a nie instrukcji DBCC DBREINDEX. Uruchomienie instrukcji DBCC DBREINDEX może spowodować znaczne zwiększenie rozmiaru dziennika transakcji, jeśli w bazie danych programu SQL Server jest zastosowany tryb odzyskiwania pełnego. Ponadto instrukcja DBCC INDEXDEFRAG nie powoduje długotrwałego stosowania blokad, w odróżnieniu od instrukcji DBCC DBREINDEX.

    Więcej informacji na temat defragmentowania indeksów w programie SQL Server 2000 można znaleźć w następującej witrynie firmy Microsoft w sieci Web: Jeśli instrukcja DBCC DBREINDEX musi zostać uruchomiona jako zadanie w ramach planu konserwacji bazy danych, to należy podzielić to zadanie na kilka mniejszych. Dodatkowo konieczne jest częste tworzenie kopii zapasowych dzienników transakcji pomiędzy wykonywaniem poszczególnych zadań.

Więcej informacji o plikach dziennika transakcji

W programach SQL Server 2000 i SQL Server 2005 każda baza danych zawiera co najmniej jeden plik danych i jeden plik dziennika transakcji. Program SQL Server przechowuje dane w fizycznej postaci w pliku danych. W pliku dziennika transakcji zapisywane są szczegółowe informacje o wszystkich modyfikacjach wprowadzanych w bazie danych programu SQL Server i transakcjach wykonywanych w ramach każdej modyfikacji. Integralność transakcyjna stanowi podstawową charakterystykę wewnętrzną programu SQL Server, dlatego nie można wyłączyć rejestrowania informacji dotyczących transakcji.

Plik dziennika transakcji jest podzielony w sposób logiczny na mniejsze segmenty nazywane wirtualnymi plikami dziennika. W programie SQL Server 2000 można skonfigurować rozszerzanie pliku dziennika transakcji odpowiednio do potrzeb. Dziennik transakcji może być rozszerzany do limitu określonego przez użytkownika lub do zużycia całego dostępnego miejsca na dysku. Wszystkie modyfikacje wprowadzane przez program SQL Server, które mają wpływ na rozmiar pliku dziennika transakcji, na przykład obcięcie lub zwiększenie plików dziennika transakcji, są wykonywane w jednostkach wirtualnych plików dziennika.

Jeśli plik dziennika transakcji skojarzony z bazą danych programu SQL Server zostanie zapełniony i ustawiono opcję automatycznego zwiększania plików dziennika transakcji, to plik dziennika transakcji zostanie zwiększony o kolejne jednostki wirtualnych plików dziennika. Rozmiar pliku dziennika transakcji może osiągnąć bardzo dużą wartość, co powoduje wyczerpanie miejsca na dysku. Zapełnienie całego wolnego miejsca na dysku przez nadmiernie zwiększony plik dziennika transakcji uniemożliwia wykonywanie jakichkolwiek operacji modyfikowania danych w bazie danych. Dodatkowo z powodu braku miejsca na rozszerzenie dziennika transakcji baza danych może zostać oznaczona w programie SQL Server jako podejrzana.

Aby uzyskać więcej informacji o scenariuszach, w których plik dziennika transakcji może zostać nieoczekiwanie zwiększony, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
317375 Nieoczekiwane zwiększenie rozmiaru lub zapełnienie dziennika transakcji w programie SQL Server

Materiały referencyjne

Więcej informacji o rozwiązywaniu problemów dotyczących wymagania dodatkowego miejsca na dysku podczas procesu odzyskiwania można znaleźć w temacie „Niewystarczająca ilość miejsca” w dokumentacji SQL Server Books Online. Dodatkowe informacje o architekturze dziennika transakcji można znaleźć w następujących tematach w dokumentacji SQL Server Books Online:
  • Architektura dziennika transakcji
  • Architektura logiczna dziennika transakcji
  • Architektura fizyczna dziennika transakcji
Więcej informacji o modelach odzyskiwania w programie SQL Server 2000 zawarto w następujących tematach w dokumentacji SQL Server Books Online:
  • Wybieranie modelu odzyskiwania
  • Odzyskiwanie proste
  • Odzyskiwanie pełne
  • Odzyskiwanie z niepełnym dziennikiem
  • Przełączanie modeli odzyskiwania

Uwaga: Niniejszy artykuł, przeznaczony do „SZYBKIEJ PUBLIKACJI”, został utworzony bezpośrednio przez organizację pomocy technicznej firmy Microsoft. Zawarte w nim informacje są udostępniane „w stanie takim, w jakim są” w odpowiedzi na pojawiające się problemy. W wyniku przyspieszonego trybu udostępniania materiały mogą zawierać błędy typograficzne i mogą zostać poprawione w dowolnym momencie bez uprzedzenia. Więcej informacji można znaleźć w Warunkach użytkowania.

Właściwości

Numer ID artykułu: 873235 - Ostatnia weryfikacja: 29 lutego 2012 - Weryfikacja: 1.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Słowa kluczowe: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com