Gérer la récupération de base de données accélérée
S’applique à : SQL Server 2019 (15.x) et versions ultérieures
Cet article vous apprend à activer et désactiver la récupération de base de données accélérée (ADR) avec Transact-SQL (T-SQL) dans SQL Server 2019 (15.x) et les versions ultérieures, ainsi comment modifier le groupe de fichiers de magasin de versions persistantes (PVS) utilisé par ADR.
Remarque
Dans Azure SQL Database, Azure SQL Managed Instance et Base de données SQL dans Microsoft Fabric, la récupération de base de données accélérée (ADR) est toujours activée. Si vous observez des problèmes, tels que l’utilisation élevée du stockage par PVS ou le nettoyage ADR lent, consultez Surveiller et résoudre les problèmes de récupération de base de données accélérées ou contactez support Azure.
Qui doit envisager d’utiliser la récupération de base de données accélérée ?
De nombreux clients trouvent que la récupération de base de données accélérée (ADR) est une technologie précieuse pour améliorer le temps de récupération des bases de données.
Si vos charges de travail de base de données rencontrent fréquemment les scénarios suivants, l’ADR peut vous être utile :
- Transactions de longue durée qu'on ne peut éviter. Par exemple, dans les cas où les transactions à exécution longue risquent d’être restaurées, l’ADR peut vous aider.
- Les transactions actives qui entraînent une augmentation significative du journal des transactions.
- La récupération de base de données longue qui a un impact sur la disponibilité de la base de données (par exemple, après un redémarrage inattendu de SQL Server ou une restauration manuelle des transactions).
Si votre application utilise un volume élevé de modifications individuelles de lignes dans des transactions individuelles, votre charge de travail peut ne pas être optimale pour ADR. Envisagez de traiter les modifications par lot dans les instructions à plusieurs lignes, dans la cas où cela est possible, et évitez un volume élevé de petites transactions DML.
Activer l’ADR
L’ADR est désactivé par défaut et disponible à partir de SQL Server 2019 (15.x).
Utilisez la commande Transact-SQL (T-SQL) suivante pour activer l’ADR :
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Un verrou de base de données exclusif est nécessaire pour activer ou désactiver l’ADR. Cela signifie que la commande ALTER DATABASE
est bloquée jusqu’à ce que toutes les sessions actives soient supprimées, et que toutes les nouvelles sessions attendent derrière la commande ALTER DATABASE
. S’il est important d’effectuer l’opération et de supprimer le verrou, vous pouvez utiliser la clause de fin WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT]
pour abandonner toutes les sessions actives dans la base de données. Pour plus d’informations, consultez les options de ALTER DATABASE SET .
Désactiver l’ADR
Utilisez la commande T-SQL suivante pour désactiver l’ADR :
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO
Même après la désactivation de l’ADR, il peut y avoir des versions stockées dans PVS dont le système a toujours besoin pour une restauration logique jusqu’à ce que toutes les transactions actives se terminent.
Modifier le groupe de fichiers du PVS
Par défaut, les données du magasin de versions persistantes (PVS) se situent dans le groupe de fichiers PRIMARY
. Vous pouvez déplacer le PVS vers un autre groupe de fichiers si nécessaire. Par exemple, il peut nécessiter plus d’espace ou un stockage plus rapide.
Pour modifier l’emplacement du PVS en un autre groupe de fichiers, procédez comme suit :
Créez le groupe de fichiers pour le PVS et ajoutez au moins un fichier de données à ce groupe de fichiers. Par exemple :
ALTER DATABASE [<db_name>] ADD FILEGROUP [VersionStoreFG]; GO ALTER DATABASE [<db_name>] ADD FILE ( NAME = N'VersionStoreFG', FILENAME = N'E:\DATA\VersionStore.ndf', SIZE = 8192 MB, FILEGROWTH = 64 MB ) TO FILEGROUP [VersionStoreFG];
Désactivez l’ADR avec la commande T-SQL suivante :
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF; GO
Attendez que toutes les versions stockées dans le PVS soient supprimées.
Pour activer l’ADR avec un nouvel emplacement du PVS, vérifiez d’abord que toutes les informations de version ont été vidées de l’emplacement précédent du PVS. Vous pouvez forcer l'exécution du nettoyage avec la procédure stockée sys.sp_persistent_version_cleanup :
EXEC sys.sp_persistent_version_cleanup [<db_name>];
La procédure stockée
sys.sp_persistent_version_cleanup
est synchrone, ce qui signifie qu’elle ne se termine pas tant que toutes les informations de version ne sont pas nettoyées du PVS actuel. Une fois l’opération terminée et en supposant que l’ADR est désactivée, vous pouvez vérifier que les informations de version sont supprimées en interrogeant sys.dm_tran_persistent_version_store_stats et en examinant la valeur depersistent_version_store_size_kb
. Par exemple :SELECT DB_NAME(database_id), persistent_version_store_size_kb FROM sys.dm_tran_persistent_version_store_stats WHERE database_id = [MyDatabaseID];
Lorsque la valeur de
persistent_version_store_size_kb
est0
, vous pouvez réactiver ADR et placer PVS sur le nouveau groupe de fichiers.Activez l’ADR et spécifiez le nouvel emplacement du PVS avec la commande T-SQL suivante :
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
Surveiller la taille du PVS
Une fois que vous avez activé ADR dans une base de données, surveillez la taille du magasin de versions persistantes (PVS) et les performances de nettoyage PVS. Pour plus d’informations, consultez Surveiller et résoudre les problèmes de récupération de base de données accélérée.