Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да промените модела за възстановяване на база данни на SQL Server с помощта на T-SQL

SQL Server има три модела за възстановяване; прост, пълен и групово регистриран. Всяка база данни използва една от тези настройки.

Операциите по архивиране и възстановяване се извършват в контекста на модела за възстановяване на базата данни

Можете да промените модела за възстановяване на база данни, като използвате ALTER DATABASE оператор заедно с SET RECOVERY опция.

Наличните опции при използване на ALTER DATABASE за да зададете модела за възстановяване са:

  • SIMPLE
  • FULL
  • BULK_LOGGED

Ще ви трябва ALTER разрешения за базата данни, за да направите такива промени.

Пример

Да предположим, че имаме база данни, наречена PetHotel .

Можем да проверим текущия модел за възстановяване, като потърсим sys.databases изглед на каталог:

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

Резултат:

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

PetHotel база данни в момента използва прост модел за възстановяване.

Нека го променим на модела за пълно възстановяване:

USE master;  
ALTER DATABASE PetHotel 
SET RECOVERY FULL;

Готово.

Сега нека проверим резултата:

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

Резултат:

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

Моделът за възстановяване беше успешно променен, както е посочено.

Важни съображения

При превключване от обикновен режим на възстановяване към някой от другите, превключвателят влиза в сила само след първото архивиране на данни.

Следователно, веднага щом преминете от обикновен режим на възстановяване към модел за пълно или групово регистрирано възстановяване, трябва да направите пълно или диференциално архивиране на базата данни, за да стартирате веригата на регистрационните файлове.

Ако превключите на прост модел за възстановяване, след което не забравяйте да деактивирате всички планирани задания за архивиране на дневника на транзакциите (простият модел за възстановяване не използва архиви на регистрационни файлове).

Също така моделът за масово възстановяване е специално за групови операции. Ако преминете от модела за пълно възстановяване към модела за групово регистриране за тази цел, трябва да преминете обратно към режим на пълно възстановяване, след като извършите груповите операции.

След като превключите от модела за възстановяване с групово записване обратно към модела за пълно възстановяване, не забравяйте да архивирате регистрационния файл.

Вижте Модели за възстановяване на уебсайта на Microsoft за преглед на всеки модел за възстановяване.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL производителност при LEFT OUTER JOIN срещу NOT EXISTS

  2. Как да преименувате всички ограничения по подразбиране според стандартите за именуване или конвенцията за именуване в SQL Server - SQL Server / TSQL урок, част 93

  3. Как да направите RAND() детерминистичен в SQL Server

  4. Йерархичен списък на типовете тригерни събития в SQL Server 2017

  5. Въведение във временните таблици в SQL Server