Modifier le temps de récupération cible d’une base de données (SQL Server)

S’applique à :SQL Server

Cet article décrit comment définir ou modifier le temps de récupération cible d’une base de données dans SQL Server à l’aide de SQL Server Management Studio ou Transact-SQL. Par défaut, le temps de récupération cible est de 60 secondes, et la base de données utilise des points de contrôle indirects. Le temps de récupération cible établit une limite supérieure sur le temps de récupération pour cette base de données.

Ce paramètre prend effet immédiatement et ne nécessite pas de redémarrage de SQL Server.

Notes

La limite supérieure spécifiée pour une base de données spécifique par son paramètre de temps de récupération cible peut être dépassée si une transaction longue entraîne des durées UNDO excessives.

Limitations et restrictions

Une charge de travail transactionnelle en ligne sur une base de données configurée pour les points de contrôle indirects peut subir une dégradation des performances. Les points de contrôle indirects permettent de s’assurer que le nombre de pages de modifications est inférieur à un certain seuil afin que la récupération de la base de données se termine dans le temps de récupération cible. L’option de configuration recovery interval utilise le nombre de transactions pour déterminer le temps de récupération, contrairement aux points de contrôle indirects, qui utilisent le nombre de pages de modifications.

Quand des points de contrôle indirects sont activés sur une base de données recevant un grand nombre d’opérations DML, l’enregistreur en arrière-plan peut commencer à vider de manière intense les mémoires tampons modifiées sur le disque afin de s’assurer que le délai nécessaire à la récupération se situe dans le temps de récupération cible défini sur la base de données. Cela peut entraîner une activité supplémentaire en termes d’E/S sur certains systèmes, ce qui peut contribuer à un goulot d’étranglement des performances si le sous-système du disque fonctionne au-delà du seuil d’E/S ou s’en rapproche.

Autorisations

Nécessite l'autorisation ALTER sur la base de données.

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, connectez-vous à une instance du moteur de base de données SQL Server et développez-la.

  2. Développez le conteneur Bases de données, cliquez avec le bouton droit sur la base de données à modifier, puis sélectionnez la commande Propriétés.

  3. Dans la boîte de dialogue Propriétés de la base de données, sélectionnez la page Options.

  4. Dans le volet Récupération, dans le champ Temps de récupération cible (secondes) , spécifiez le nombre de secondes de votre choix pour définir la limite supérieure du temps de récupération de cette base de données.

Utiliser Transact-SQL

  1. Connectez-vous à l’instance de SQL Server où réside la base de données.

  2. Utilisez l’instruction ALTER DATABASE suivante comme suit :

    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

    target_recovery_time
    À compter de SQL Server 2016 (13.x), la valeur par défaut est de 1 minute. Lorsque la valeur est supérieure à 0 (valeur par défaut pour les versions antérieures), spécifie la limite supérieure du temps de récupération de la base de données spécifiée en cas de sinistre.

    SECONDS
    Indique que target_recovery_time correspond au nombre de secondes.

    MINUTES
    Indique que target_recovery_time correspond au nombre de minutes.

    L'exemple suivant définit le temps de récupération cible de la base de données AdventureWorks2022 sur 60 secondes.

    ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;
    

Voir aussi