Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment changer le modèle de récupération d'une base de données SQL Server à l'aide de T-SQL

SQL Server a trois modèles de récupération; journalisé simple, complet et en masse. Chaque base de données utilise l'un de ces paramètres.

Les opérations de sauvegarde et de restauration se produisent dans le contexte du modèle de récupération de la base de données

Vous pouvez changer le modèle de récupération d'une base de données en utilisant le ALTER DATABASE déclaration avec le SET RECOVERY option.

Les options disponibles lors de l'utilisation de ALTER DATABASE pour définir le modèle de récupération sont :

  • SIMPLE
  • FULL
  • BULK_LOGGED

Vous aurez besoin de ALTER autorisations sur la base de données afin d'apporter de telles modifications.

Exemple

Supposons que nous ayons une base de données appelée PetHotel .

Nous pouvons vérifier son modèle de récupération actuel en interrogeant le sys.databases vue catalogue :

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

Résultat :

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

Le PetHotel base de données utilise actuellement le modèle de récupération simple.

Passons au modèle de récupération complète :

USE master;  
ALTER DATABASE PetHotel 
SET RECOVERY FULL;

Terminé.

Vérifions maintenant le résultat :

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

Résultat :

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

Le modèle de récupération a été modifié avec succès comme spécifié.

Considérations importantes

Lors du passage du mode de récupération simple à l'un des autres, le basculement ne prend effet qu'après la première sauvegarde des données.

Par conséquent, dès que vous passez du mode de récupération simple au modèle de récupération complète ou en bloc, vous devez effectuer une sauvegarde complète ou différentielle de la base de données pour démarrer la chaîne de journalisation.

Si vous passez à le modèle de récupération simple, assurez-vous de désactiver toutes les tâches planifiées pour la sauvegarde du journal des transactions (le modèle de récupération simple n'utilise pas les sauvegardes du journal).

En outre, le modèle de récupération en bloc est spécifiquement destiné aux opérations en bloc. Si vous passez du modèle de récupération complète au modèle de journalisation en bloc à cette fin, vous devez revenir au mode de récupération complète une fois que vous avez effectué les opérations en bloc.

Après être passé du modèle de récupération avec enregistrement groupé au modèle de récupération complète, veillez à sauvegarder le journal.

Voir Modèles de récupération sur le site Web de Microsoft pour un aperçu de chaque modèle de récupération.