Partage via


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.

Remarque

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

Limitations

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 vérifient que le nombre de pages incorrectes est inférieur à un certain seuil afin que la récupération de base de données se termine dans le délai 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.

Lorsque des points de contrôle indirects sont activés sur une base de données recevant un grand nombre d’opérations provoquant des pages incorrectes, l’enregistreur d’arrière-plan peut commencer à vider de manière agressive les mémoires tampons sales sur le disque pour s’assurer que le temps nécessaire à l’exécution de la récupération se trouve dans le délai de récupération cible défini sur la base de données. Cela peut entraîner une activité d’E/S supplémentaire sur certains systèmes, ce qui peut contribuer à un goulot d’étranglement des performances si le sous-système de disque fonctionne sur ou près du seuil d’E/S.

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 }

    • temps_de_récupération_cible

      À 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.

    • SECONDES

      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;