sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan ændres gendannelsesmodellen for en SQL Server-database ved hjælp af T-SQL

SQL Server har tre gendannelsesmodeller; enkel, fuld og bulk logget. Hver database bruger en af ​​disse indstillinger.

Sikkerhedskopiering og gendannelse sker inden for konteksten af ​​databasens gendannelsesmodel

Du kan ændre gendannelsesmodellen for en database ved at bruge ALTER DATABASE sætning sammen med SET RECOVERY mulighed.

De tilgængelige muligheder ved brug af ALTER DATABASE for at indstille gendannelsesmodellen er:

  • SIMPLE
  • FULL
  • BULK_LOGGED

Du skal bruge ALTER tilladelser på databasen for at foretage sådanne ændringer.

Eksempel

Antag, at vi har en database kaldet PetHotel .

Vi kan kontrollere den aktuelle gendannelsesmodel ved at forespørge på sys.databases katalogvisning:

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

Resultat:

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

PetHotel databasen bruger i øjeblikket den simple gendannelsesmodel.

Lad os ændre det til den fulde gendannelsesmodel:

USE master;  
ALTER DATABASE PetHotel 
SET RECOVERY FULL;

Færdig.

Lad os nu tjekke resultatet:

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

Resultat:

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

Gendannelsesmodellen blev ændret som angivet.

Vigtige overvejelser

Når du skifter fra simpel gendannelsestilstand til en af ​​de andre, træder skiftet først i kraft efter den første sikkerhedskopiering af data.

Så snart du skifter fra simpel gendannelsestilstand til enten fuld- eller masselogget gendannelsesmodel, bør du derfor tage en komplet eller differentiel databasebackup for at starte logkæden.

Hvis du skifter til den simple gendannelsesmodel, så sørg for at deaktivere alle planlagte job til sikkerhedskopiering af transaktionsloggen (den simple gendannelsesmodel bruger ikke logbackups).

Massegenvindingsmodellen er også specifikt til bulkoperationer. Hvis du skifter fra fuld gendannelsesmodellen til masselogningsmodellen til dette formål, bør du skifte tilbage til fuld gendannelsestilstand, når du har udført massehandlingerne.

Når du har skiftet fra den masselogede gendannelsesmodel tilbage til den fulde gendannelsesmodel, skal du sørge for at sikkerhedskopiere loggen.

Se Gendannelsesmodeller på Microsofts websted for at få en oversigt over hver enkelt gendannelsesmodel.


  1. ALTER TABLE-sætningen var i konflikt med CHECK-begrænsningen i SQL Server - SQL Server / TSQL Selvstudium, del 89

  2. MySQL:Sådan tillader du fjernforbindelse til mysql

  3. Hvordan får jeg tekstindhold fra BLOB i Oracle SQL

  4. Database-omlægninger – hvorfor de betyder noget