Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zmienić model odzyskiwania bazy danych SQL Server za pomocą T-SQL

SQL Server ma trzy modele odzyskiwania; proste, pełne i zbiorcze rejestrowane. Każda baza danych korzysta z jednego z tych ustawień.

Operacje tworzenia kopii zapasowych i przywracania odbywają się w kontekście modelu odzyskiwania bazy danych

Możesz zmienić model odzyskiwania bazy danych za pomocą ALTER DATABASE oświadczenie wraz z SET RECOVERY opcja.

Dostępne opcje podczas korzystania z ALTER DATABASE aby ustawić model odzyskiwania to:

  • SIMPLE
  • FULL
  • BULK_LOGGED

Będziesz potrzebować ALTER uprawnienia do bazy danych w celu wprowadzenia takich zmian.

Przykład

Załóżmy, że mamy bazę danych o nazwie PetHotel .

Możemy sprawdzić, jaki jest obecny model odzyskiwania, odpytując sys.databases widok katalogu:

SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases
WHERE name = 'PetHotel';

Wynik:

+----------+-----------------------+
| name     | recovery_model_desc   |
|----------+-----------------------|
| PetHotel | SIMPLE                |
+----------+-----------------------+

PetHotel baza danych korzysta obecnie z prostego modelu odzyskiwania.

Zmieńmy to na model pełnego odzyskiwania:

USE master;  
ALTER DATABASE PetHotel 
SET RECOVERY FULL;

Gotowe.

Sprawdźmy teraz wynik:

SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases
WHERE name = 'PetHotel';

Wynik:

+----------+-----------------------+
| name     | recovery_model_desc   |
|----------+-----------------------|
| PetHotel | FULL                  |
+----------+-----------------------+

Model odzyskiwania został pomyślnie zmieniony zgodnie z opisem.

Ważne uwagi

Podczas przełączania z prostego trybu przywracania na jeden z pozostałych, zmiana zaczyna obowiązywać dopiero po wykonaniu pierwszej kopii zapasowej danych.

Dlatego zaraz po przełączeniu z trybu prostego odzyskiwania na model odzyskiwania pełnego lub zbiorczego, należy wykonać pełną lub różnicową kopię zapasową bazy danych, aby rozpocząć łańcuch dzienników.

Jeśli przełączysz na prosty model odzyskiwania, a następnie pamiętaj o wyłączeniu wszelkich zaplanowanych zadań do tworzenia kopii zapasowej dziennika transakcji (prosty model odzyskiwania nie korzysta z kopii zapasowych dziennika).

Ponadto model odzyskiwania zbiorczego jest przeznaczony specjalnie do operacji zbiorczych. Jeśli w tym celu przełączysz się z modelu pełnego odzyskiwania na model rejestrowania zbiorczego, po wykonaniu operacji zbiorczych należy przełączyć się z powrotem do trybu pełnego odzyskiwania.

Po przełączeniu z modelu odzyskiwania zbiorczego z powrotem na model odzyskiwania pełnego, należy wykonać kopię zapasową dziennika.

Zobacz Modele odzyskiwania w witrynie Microsoft, aby zapoznać się z omówieniem każdego modelu odzyskiwania.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwrócić liczbę wierszy w wyniku zapytania w SQL Server

  2. LEFT() vs SET TEXTSIZE w SQL Server:jaka jest różnica?

  3. Błąd SQL Server 4104:Nie można powiązać wieloczęściowego identyfikatora.

  4. JSON_VALUE() Przykłady w SQL Server (T-SQL)

  5. Użyj OBJECTPROPERTY(), aby dowiedzieć się, czy obiekt jest ograniczeniem CHECK w SQL Server