Udostępnij za pośrednictwem


Tworzenie kopii zapasowej dziennika transakcji, gdy baza danych jest uszkodzona (SQL Server)

Dotyczy:programu SQL Server

W tym temacie opisano sposób tworzenia kopii zapasowej dziennika transakcji, gdy baza danych jest uszkodzona w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL.

w tym temacie

Przed rozpoczęciem

Ograniczenia i ograniczenia

  • Instrukcja BACKUP nie jest dozwolona w jawnej lub niejawnej transakcji.

Zalecenia

  • W przypadku bazy danych, która używa pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania, zazwyczaj należy utworzyć kopię zapasową końca dziennika przed rozpoczęciem przywracania bazy danych. Należy również utworzyć kopię zapasową końca dziennika podstawowej bazy danych przed przełączeniem konfiguracji wysyłania dziennika na tryb awaryjny. Przywrócenie kopii zapasowej dziennika końcowego jako ostatniej kopii przed odzyskaniem bazy danych pozwala uniknąć utraty danych po awarii. Aby uzyskać więcej informacji na temat kopii zapasowych dziennika końcowego, zobacz Tail-Log Backups (SQL Server).

Bezpieczeństwo

Uprawnienia

Domyślne uprawnienia do tworzenia kopii zapasowych bazy danych i dziennika są przyznawane członkom stałej roli serwera sysadmin oraz stałych ról bazy danych: db_owner i db_backupoperator.

Problemy z własnością i uprawnieniami w pliku fizycznym urządzenia kopii zapasowej mogą zakłócać operację tworzenia kopii zapasowej. Program SQL Server musi mieć możliwość odczytu i zapisu na urządzeniu; konto, na którym działa usługa SQL Server, musi mieć uprawnienia do zapisu. Jednak sp_addumpdevice, który dodaje wpis dla urządzenia kopii zapasowej w tabelach systemowych, nie sprawdza uprawnień dostępu do plików. Takie problemy z plikiem fizycznym urządzenia kopii zapasowej mogą nie pojawić się, dopóki nie zostanie uzyskany dostęp do zasobu fizycznego podczas tworzenia kopii zapasowej lub przywracania.

Korzystanie z programu SQL Server Management Studio

Aby utworzyć kopię zapasową końca dziennika transakcji

  1. Po nawiązaniu połączenia z odpowiednim wystąpieniem aparatu bazy danych programu Microsoft SQL Server, kliknij w Eksploratorze obiektów nazwę serwera, aby rozwinąć drzewo serwerów.

  2. Rozwiń węzeł Bazy danych, a w zależności od bazy danych wybierz bazę danych użytkownika lub rozwiń Systemowe Bazy Danych i wybierz bazę danych systemową.

  3. Kliknij prawym przyciskiem myszy bazę danych, wskaż Tasks, a następnie kliknij Back Up. Pojawi się okno dialogowe Kopia zapasowa bazy danych.

  4. W polu listy Database sprawdź nazwę bazy danych. Opcjonalnie możesz wybrać inną bazę danych z listy.

  5. Sprawdź, czy model odzyskiwania to FULL lub BULK_LOGGED.

  6. W polu listy Backup wpisz ciąg wybierz pozycję Transaction Log.

  7. Pozostaw opcja Kopiuj tylko kopię zapasową jest zaznaczona.

  8. W obszarze zestawu kopii zapasowych zaakceptuj domyślną nazwę zestawu kopii zapasowych sugerowaną w polu tekstowym nazwa lub wprowadź inną nazwę zestawu kopii zapasowych.

  9. W polu tekstowym opis wprowadź opis kopii zapasowej dziennika końcowego.

  10. Określ, kiedy zestaw kopii zapasowych wygaśnie:

    • Aby zestaw kopii zapasowej wygasł po określonej liczbie dni, kliknij Po (domyślna opcja), a następnie wprowadź liczbę dni, po których od utworzenia zestawu ma on wygasnąć. Ta wartość może wynosić od 0 do 99999 dni; wartość 0 dni oznacza, że zestaw kopii zapasowych nigdy nie wygaśnie.

      Wartość domyślna jest ustawiana w Domyślne przechowywanie nośników kopii zapasowych (w dniach) opcji właściwości serwera okno dialogowe (Ustawienia bazy danych strony). Aby uzyskać dostęp do tego okna dialogowego, kliknij prawym przyciskiem myszy nazwę serwera w Eksploratorze obiektów i wybierz właściwości; następnie wybierz stronę Ustawienia bazy danych.

    • Aby zestaw kopii zapasowych wygasał w określonej dacie, kliknij przycisk W dniui wprowadź datę wygaśnięcia zestawu.

  11. Wybierz typ miejsca docelowego kopii zapasowej, klikając pozycję Dysk lub Taśma. Aby wybrać ścieżki maksymalnie 64 dysków twardych lub napędów taśmowych zawierających jeden zestaw nośników, kliknij przycisk Dodaj. Wybrane ścieżki są wyświetlane w polu listy Backup do.

    Aby usunąć miejsce docelowe kopii zapasowej, zaznacz ją i kliknij przycisk Usuń. Aby wyświetlić zawartość miejsca docelowego kopii zapasowej, zaznacz ją i kliknij pozycję Zawartość.

  12. Na stronie Opcje wybierz opcję Zastąp multimedia, klikając jedną z następujących opcji:

    • Utwórz kopię zapasową w istniejącym zestawie multimediów

      W przypadku tej opcji kliknij pozycję Dołącz do istniejącego zestawu kopii zapasowych lub Zastąp wszystkie istniejące zestawy kopii zapasowych.

      Opcjonalnie wybierz Sprawdź nazwę zestawu multimediów i wygaśnięcie zestawu kopii zapasowej, aby spowodować, że operacja tworzenia kopii zapasowej zweryfikuje datę i godzinę wygaśnięcia zestawu multimediów i zestawu kopii zapasowych.

      Opcjonalnie wprowadź nazwę w polu tekstowym Nazwa zestawu multimediów. Jeśli żadna nazwa nie zostanie określona, zostanie utworzony nośnik o pustej nazwie. Jeśli określisz nazwę zestawu multimediów, nośnik (taśma lub dysk) jest sprawdzany, czy rzeczywista nazwa jest zgodna z nazwą wprowadzoną tutaj.

      Jeśli pozostawisz nazwę nośnika pustą i zaznaczysz pole wyboru, aby porównać to z nośnikiem, sukcesem będzie, jeśli nazwa nośnika na nośniku również będzie pusta.

    • Utwórz kopię zapasową na nowym nośniku i wymaż wszystkie istniejące zestawy kopii zapasowych

      W przypadku tej opcji wprowadź nazwę w polu tekstowym Nazwa nowego zestawu multimediów, a opcjonalnie opisz zestaw multimediów w polu tekstowym Opis nowego zestawu multimediów.

    Aby uzyskać więcej informacji na temat opcji zestawu multimediów, zobacz zestawy multimediów, rodziny multimediów i zestawy kopii zapasowych (SQL Server).

  13. W sekcji niezawodność opcjonalnie sprawdź:

    • Sprawdź kopię zapasową po zakończeniu.

    • Wykonaj sumę kontrolną przed zapisaniem na nośniku.

    • Kontynuuj po błędzie sumy kontrolnej

    Aby uzyskać informacje na temat sum kontrolnych, zobacz Możliwe błędy nośnika podczas tworzenia kopii zapasowej i przywracania (SQL Server).

  14. W sekcji dziennika transakcji, zaznacz Utwórz kopię zapasową końca dziennika i pozostaw bazę danych w stanie przywracania.

    Jest to równoważne określeniu następującej instrukcji BACKUP:

    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY

    Ważny

    W czasie przywracania w oknie dialogowym Przywracanie bazy danych jest wyświetlany typ kopii zapasowej końcowego segmentu dziennika jako Dziennik transakcji (Kopiuj tylko).

  15. Jeśli tworzysz kopię zapasową na napędzie taśmowym (zgodnie z opisem w sekcji Destination strony Ogólne), opcja Rozładuj taśmę po wykonaniu kopii zapasowej jest aktywna. Kliknięcie tej opcji powoduje aktywację opcji Przewiń taśmę przed zwolnieniem.

  16. Program SQL Server 2008 (10.0.x) Enterprise lub nowszy obsługuje kompresję kopii zapasowych . Domyślnie, czy kopia zapasowa jest kompresowana, zależy od wartości opcji domyślnej konfiguracji serwera dotyczącej kompresji kopii zapasowej. Jednak niezależnie od bieżącego domyślnego poziomu serwera można skompresować kopię zapasową, zaznaczając pole Kompresuj kopię zapasową, oraz można zapobiec kompresji, zaznaczając pole Nie kompresuj kopii zapasowej.

    Aby wyświetlić domyślną wartość kompresji bieżącej kopii zapasowej

Korzystanie z Transact-SQL

Aby utworzyć kopię zapasową aktualnie aktywnego dziennika transakcji

  1. Wykonaj instrukcję BACKUP LOG, aby utworzyć kopię zapasową aktualnie aktywnego dziennika transakcji, określając:

    • Nazwa bazy danych, do której należy kopia zapasowa dziennika transakcji.

    • Urządzenie kopii zapasowej, na którym zostanie zapisana kopia zapasowa dziennika transakcji.

    • Klauzula NO_TRUNCATE.

      Ta klauzula umożliwia tworzenie kopii zapasowej aktywnej części dziennika transakcji, nawet jeśli baza danych jest niedostępna, pod warunkiem, że plik dziennika transakcji jest dostępny i nieuszkodzony.

Przykład (Transact-SQL)

Notatka

W tym przykładzie użyto AdventureWorks2022, który używa prostego modelu odzyskiwania. Aby zezwolić na tworzenie kopii zapasowych dzienników, przed utworzeniem pełnej kopii zapasowej bazy danych baza danych została ustawiona tak, aby korzystała z pełnego modelu odzyskiwania. Aby uzyskać więcej informacji, zobacz View or Change the Recovery Model of a Database (SQL Server) (Zmienianie modelu odzyskiwania bazy danych (SQL Server).

W tym przykładzie wykonuje się kopię zapasową obecnie aktywnego dziennika transakcji, gdy baza danych jest uszkodzona i niedostępna, pod warunkiem, że dziennik transakcji jest nieuszkodzony i dostępny.

BACKUP LOG AdventureWorks2022  
   TO MyAdvWorks_FullRM_log1  
   WITH NO_TRUNCATE;  
GO  

Zobacz też

przywracanie kopii zapasowej dziennika transakcji (SQL Server)
Przywracanie bazy danych programu SQL Server do punktu w czasie (pełny model odzyskiwania)
Tworzenie kopii zapasowej bazy danych (Strona opcji kopii zapasowej)
tworzenie kopii zapasowej bazy danych (strona ogólna)
stosowanie kopii zapasowych dziennika transakcji (SQL Server)
KOPIA ZAPASOWA (Transact-SQL)
Przywracanie Plików (Prosty Model Odzyskiwania)
Odtwarzanie plików (Model pełnego odzyskiwania)