sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man ändrar återställningsmodellen för en SQL Server-databas med T-SQL

SQL Server har tre återställningsmodeller; enkel, fullständig och bulkloggad. Varje databas använder en av dessa inställningar.

Säkerhetskopiering och återställning sker inom ramen för databasens återställningsmodell

Du kan ändra återställningsmodellen för en databas genom att använda ALTER DATABASE uttalande tillsammans med SET RECOVERY alternativ.

De tillgängliga alternativen när du använder ALTER DATABASE för att ställa in återställningsmodellen är:

  • SIMPLE
  • FULL
  • BULK_LOGGED

Du behöver ALTER behörigheter på databasen för att göra sådana ändringar.

Exempel

Anta att vi har en databas som heter PetHotel .

Vi kan kontrollera dess nuvarande återställningsmodell genom att fråga sys.databases katalogvy:

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

Resultat:

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

PetHotel databasen använder för närvarande den enkla återställningsmodellen.

Låt oss ändra den till den fullständiga återställningsmodellen:

USE master;  
ALTER DATABASE PetHotel 
SET RECOVERY FULL;

Klart.

Låt oss nu kontrollera resultatet:

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

Resultat:

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

Återställningsmodellen har ändrats enligt specifikationen.

Viktigt att tänka på

När du byter från enkelt återställningsläge till ett av de andra, träder bytet i kraft först efter den första säkerhetskopieringen av data.

Så snart du byter från enkelt återställningsläge till antingen den fullständiga eller bulkloggade återställningsmodellen bör du därför ta en fullständig eller differentiell databassäkerhetskopiering för att starta loggkedjan.

Om du byter till den enkla återställningsmodellen, se till att inaktivera alla schemalagda jobb för säkerhetskopiering av transaktionsloggen (den enkla återställningsmodellen använder inte loggbackuper).

Bulkåtervinningsmodellen är också specifikt för bulkoperationer. Om du byter från modellen för fullständig återställning till bulkloggningsmodellen för detta ändamål, bör du byta tillbaka till fullständig återställningsläge när du har utfört massåtgärderna.

När du har bytt från den bulkloggade återställningsmodellen tillbaka till den fullständiga återställningsmodellen, se till att säkerhetskopiera loggen.

Se Återställningsmodeller på Microsofts webbplats för en översikt över varje återställningsmodell.


  1. MySQL välj med CONCAT-villkor

  2. SQL-fråga för att hitta saknade rader mellan två relaterade tabeller

  3. Automatiserad eller regelbunden säkerhetskopiering av mysql-data

  4. Väljer första raden per grupp