Vérifiez la sauvegarde par snapshot cohérent au niveau de l'application pour SQL Server 2019 (64 bits) sur une instance ECS exécutant Windows Server 2019.
Prérequis
L'instance ECS doit être dans l'état Running. Cloud Assistant doit être dans un état normal sur l'instance. Pour afficher le statut de Cloud Assistant, consultez la rubrique Vérifier le statut de Cloud Assistant et résoudre les exceptions.
Une base de données SQL Server sous Windows est installée.
-
Un rôle RAM doté d'une stratégie personnalisée pour les snapshots cohérents au niveau de l'application est associé à l'instance ECS. Consultez la rubrique Créer un rôle RAM et l'associer à une instance ECS.
RemarqueCloud Assistant nécessite des autorisations spécifiques pour accéder à l'instance ECS et exécuter des commandes. Accordez ces autorisations via le rôle RAM.
Configurez un rôle RAM personnalisé, par exemple AppSnapshotRoleName.
-
Associez une stratégie personnalisée au rôle RAM. La stratégie d'exemple suivante accorde les autorisations nécessaires pour interroger les snapshots, créer des snapshots, ajouter des tags et interroger les informations sur les disques.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeSnapshot*", "ecs:CreateSnapshot*", "ecs:TagResources", "ecs:DescribeDisks" ], "Resource": [ "*" ], "Condition": {} } ] }
Vue d'ensemble
Un snapshot cohérent au niveau de l'application suspend temporairement les opérations d'écriture afin de capturer un état cohérent de la base de données, réduisant ainsi le risque de corruption ou de perte de données lors de la restauration.
-
Étape 1 : Préparer l'environnement de base de données pour la validation
Créez une table de base de données et une procédure stockée pour simuler des écritures continues de données, qui serviront à la vérification ultérieure.
-
Étape 2 : Créer un snapshot cohérent au niveau de l'application dans la console
Créez un snapshot cohérent au niveau de l'application pour l'instance Windows hébergeant SQL Server. Les opérations d'écriture sont temporairement suspendues pendant la création du snapshot.
-
Étape 3 : Vérifier que le snapshot cohérent au niveau de l'application a été créé
Consultez le résultat de la commande Cloud Assistant et vérifiez les horodatages correspondant à la suspension et à la reprise des opérations d'écriture.
-
Restaurez le disque à partir du snapshot cohérent au niveau de l'application, puis comparez l'heure de la dernière écriture avec l'heure de suspension pour valider la réussite de la restauration.
Si l'heure de la dernière écriture est antérieure à l'heure de suspension : aucune écriture n'a eu lieu pendant la suspension. L'état de la base de données restaurée est cohérent avec le snapshot.
Si l'heure de la dernière écriture est identique ou postérieure à l'heure de suspension : des écritures ont eu lieu pendant la suspension. Le snapshot cohérent au niveau de l'application n'a pas fonctionné comme prévu.
Procédure
Étape 1 : Préparer l'environnement de base de données pour la validation
-
Connectez-vous à l'instance ECS.
Consultez la rubrique Se connecter à une instance Windows à l'aide de Workbench.
-
Connectez-vous à la base de données SQL Server.
-
Cliquez sur l'icône de recherche dans le coin inférieur gauche et saisissez
ssms. Cliquez sur Microsoft SQL Server Management Studio 18.
Dans la boîte de dialogue Connect to Server, configurez la connexion, puis cliquez sur Connect.
-
-
Dans Microsoft SQL Server Management Studio 18, créez la base de données de validation (AdventureWorks).
Cliquez sur New Query.
-
Saisissez l'instruction SQL suivante dans la fenêtre de requête.
CREATE DATABASE AdventureWorks; Cliquez sur Run.
-
Dans Microsoft SQL Server Management Studio 18, créez la table de validation (PointInTime).
Cliquez sur New Query.
-
Saisissez l'instruction SQL suivante dans la fenêtre de requête.
USE AdventureWorks GO IF NOT EXISTS (SELECT name FROM sysobjects WHERE name = 'PointInTime' AND TYPE ='U') CREATE TABLE PointInTime (PIT datetime) WHILE ( 1 = 1 ) BEGIN INSERT PointInTime SELECT GETDATE() WAITFOR DELAY '00:00:001' END Faites un clic droit, puis sélectionnez Run.
-
Vérifiez la base de données et la table créées dans le volet de navigation de gauche.
Étape 2 : Créer un snapshot cohérent au niveau de l'application dans la console
Accédez à Console ECS - groupe de snapshots cohérents.
Dans le coin supérieur gauche de la page, sélectionnez une région et un groupe de ressources.
Dans l'onglet Snapshot-consistent Groups, cliquez sur Create Snapshot-consistent Group.
-
Dans la boîte de dialogue Create Snapshot, configurez le groupe de snapshots cohérents.
Le paramètre Resource Types est défini sur Instance par défaut.
Sélectionnez une instance et ses disques de type ESSD.
-
Développez la section Advanced Settings, sélectionnez Enable Application-consistent Snapshot, puis cochez l'option Contain Writers by Default.
RemarqueLes writers (programmeurs) sont des composants clés de l'architecture VSS (Volume Shadow Copy Service). Le système d'exploitation Windows intègre plusieurs writers qui garantissent la cohérence des données lors des sauvegardes. Consultez la documentation Volume Shadow Copy Service.
-
Cliquez sur OK.
Cloud Assistant renvoie un ID d'exécution que vous pouvez utiliser pour vérifier le résultat.
Étape 3 : Vérifier que le snapshot cohérent au niveau de l'application a été créé
-
Cliquez sur l'ID d'exécution de la commande Cloud Assistant pour afficher le résultat.
[level="info"][time="2025-03-03 13:53:03.4228545"][message="Begin to Create Application Consistent Snaps... [level="info"][time="2025-03-03 13:53:03.6121396"][message="Network connection RequestId= A29F3C87-E45F-... [level="info"][time="2025-03-03 13:53:03.6121396"][message="Attached DiskId=d-2ze6zrzyc4ampol4sv1, Devi... [level="info"][time="2025-03-03 13:53:03.6121396"][message="Attached DiskId=d-2zecqmy4929tm5t6haay, Devi... [level="info"][time="2025-03-03 13:53:05.1569259"][message="Required COM+ components are already install... [level="info"][time="2025-03-03 13:53:05.1569259"][message="Provider version is already latest"] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Start to Initialize VSS Requestor ..."] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Prepare to Create snapshot set"] [requestor=" "] [level="info"][time="2025-03-03 13:53:30.9244374"][message="Create Snapshot Set Successfully"] [level="info"][time="2025-03-03 13:53:31.7670453"][message="SnapshotGroup, requestId=E365F945-F0E9-57D4-... [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finished Quering SnapshotGroup Progress"] [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finish SnapshotGroup=ssg-2ze9bjzro7... [level="info"][time="2025-03-03 13:53:32.5651781"][message="Prepare to Thaw FileSystem or Applications"] [requestor=" "] [level="info"][time="2025-03-03 13:53:34.5692263"][message="Thaw Write Request Done"] [level="info"][time="2025-03-03 13:53:34.8605098"][message="Tag snapshots with AppConsistent"] [level="info"][time="2025-03-03 13:53:34.8620327"][message="Take AppConsistent snapshots successfully"] [level="info"][time="2025-03-03 13:53:34.8620327"][message="Prepare Freeze=27.0672261s, Thaw cost=2.0040... [level="info"][time="2025-03-03 13:53:34.8620327"][snapshotgroup="ssg-2ze9bjzro7rp"][message="Fi... Add VolumePath=\\?\Volume{9a80a1cd-3ca9-4afc-xxx}, VolumeName=C:\ Add VolumePath=\\?\Volume{99583ec9-8979-4842-xxx}, VolumeName=D:\ Add VolumePath=\\?\Volume{02db53f7-a3f7-4be1-xxx}, VolumeName= All writers included Finish to GatherWriterMetadata successfullyLe Exit Code est
0, ce qui indique que la commande de snapshot cohérent au niveau de l'application s'est exécutée avec succès. La sortie affiche les ID du snapshot et du groupe de snapshots cohérents.RemarqueSi le Exit Code n'est pas
0, effectuez un dépannage en vous basant sur le Exit Code. Consultez la rubrique Codes d'erreur. -
Dans la sortie Cloud Assistant, examinez le processus de création du groupe de snapshots cohérents pour vérifier l'intégrité et la disponibilité des données.
-
Vérifiez si les composants de cohérence (COM+ et VSS) sont installés.
Les entrées de journal similaires aux suivantes indiquent que le snapshot cohérent au niveau de l'application a été créé avec succès.
[level="info"][time="2025-03-03 13:53:03.6121396"][message="Attached DiskId-d-2ze6z xxx", Devi [level="info"][time="2025-03-03 13:53:03.6121396"][message="Attached DiskId-d-2zecqmy4929tm5t6haay, Devi [level="info"][time="2025-03-03 13:53:05.1569259"][message="Required COM+ components are already install [level="info"][time="2025-03-03 13:53:05.1569259"][message="Provider version is already latest"] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Start to Initialize VSS Requestor ..."] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Prepare to Create snapshot set"] [requestor=" "] [level="info"][time="2025-03-03 13:53:30.9244374"][message="Create Snapshot Set Successfully"] [level="info"][time="2025-03-03 13:53:31.7670453"][message="SnapshotGroup, requestId-E365F945-F0E9-57D4- [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finished Quering SnapshotGroup Progress"] [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finish SnapshotGroup-ssg-2ze9bjz [level="info"][time="2025-03-03 13:53:32.5651781"][message="Prepare to Thaw FileSystem or Applications"] -
Vérifiez que le système peut identifier et charger tous les volumes logiques pour la sauvegarde.
Les entrées Add VolumePath dans le journal montrent que C:\, D:\ et un volume sans nom ont été ajoutés en tant que volumes de snapshot.
[level="info"][time="2025-03-03 13:53:34.5692263"][message="Thaw Write Request Done"] [level="info"][time="2025-03-03 13:53:34.8605098"][message="Tag snapshots with AppConsistent"] [level="info"][time="2025-03-03 13:53:34.8620327"][message="Take AppConsistent snapshots successfully"] [level="info"][time="2025-03-03 13:53:34.8620327"][message="Prepare Freeze=27.0672261s, Thaw cost=2.0040xxx [level="info"][time="2025-03-03 13:53:34.8620327"][snapshotgroup="ssg-2ze9bjzro7rxxx"][message="Fixxx Add VolumePath=\\?\Volume{9a80a1cd-3ca9-4afc-b38d-11d8e7d74606}\, VolumeName=C:\ Add VolumePath=\\?\Volume{99583ec9-8979-4842-a45a-21da7d15dc1d}\, VolumeName=D:\ Add VolumePath=\\?\Volume{02db53f7-a3f7-4be1-92f3-8a7ca9324115}\, VolumeName= All writers included Finish to GatherWriterMetadata successfully -
Vérifiez si les bases de données SQL Server sont automatiquement incluses pour assurer la cohérence.
La sortie de la commande montre que SqlServerWriter a automatiquement inclus les bases de données master, model, msdb et AdventureWorks sous l'instance SQLEXPRESS, confirmant ainsi la création réussie du snapshot cohérent au niveau de l'application.
* Writer 'Performance Counters Writer': - Add component \PerformanceCounters * Writer 'System Writer': - Add component \System Files - Add component \Win32 Services Files * Writer 'SqlServerWriter': - Add component \iZpo1skdv7v082Z\SQLEXPRESS\master - Add component \iZpo1skdv7v082Z\SQLEXPRESS\model - Add component \iZpo1skdv7v082Z\SQLEXPRESS\msdb - Add component \iZpo1skdv7v082Z\SQLEXPRESS\AdventureWorks * Writer 'ASR Writer': - Add component \ASR\ASR - Add component \Volumes\Volume{9a80a1cd-3ca9-4afc-xxx} - Add component \Volumes\Volume{02db53f7-a3f7-4be1-xxx} - Add component \Volumes\Volume{99583ec9-8979-4842-xxx} -
Le snapshot a été créé à
2025-03-03 13:53:30. Les opérations d'écriture ont été suspendues à ce moment-là.[level="info"][time="2025-03-03 13:53:05.1569259"][message="Provider version is already latest"] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Start to Initialize VSS Requestor ..."] [level="info"][time="2025-03-03 13:53:05.1569259"][message="Prepare to Create snapshot set"] [requestor= "] [level="info"][time="2025-03-03 13:53:30.9244374"][message="Create Snapshot Set Successfully"] [level="info"][time="2025-03-03 13:53:31.7670453"][message="SnapshotGroup, requestId=E365F945-F0E9-57D4-xxx"] [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finished Quering SnapshotGroup Progress"] [level="info"][time="2025-03-03 13:53:32.5651781"][message="Finish SnapshotGroup=ssg-2ze9bjzro7rplr81xvfxxx"] [level="info"][time="2025-03-03 13:53:32.5651781"][message="Prepare to Thaw FileSystem or Applications"]
-
-
Consultez les informations relatives au groupe de snapshots cohérents et aux snapshots de disque.
Accédez à Console ECS - groupe de snapshots cohérents.
Dans l'onglet Snapshot-consistent Groups, localisez le groupe de snapshots cohérents et cliquez sur son ID.
-
Dans la section Snapshot Information, vérifiez les tags des snapshots pour confirmer la création d'un snapshot cohérent au niveau de l'application.
Dans cet exemple, le snapshot de disque porte le tag
APPConsistent:True, ce qui confirme la création d'un snapshot cohérent au niveau de l'application.
-
Connectez-vous à SQL Server pour vérifier quand les validations de données ont été suspendues.
-
Connectez-vous à l'instance ECS.
Consultez la rubrique Se connecter à une instance Windows à l'aide de Workbench.
Connectez-vous à SQL Server à l'aide de Microsoft SQL Server Management Studio 18.
Cliquez sur New Query.
-
Saisissez l'instruction SQL suivante dans la fenêtre de requête.
USE AdventureWorks select * from PointInTime GO Faites un clic droit, puis sélectionnez Run.
-
Vérifiez l'heure de suspension dans les résultats de la requête.
Le résultat de la requête ci-dessous affiche les enregistrements PIT. Aucune donnée n'a été insérée entre
2025-03-03 13:53:30et2025-03-03 13:53:33, ce qui indique que les opérations d'écriture ont été suspendues à13:53:30et ont repris à13:53:33.PIT 622 2025-03-03 13:53:23.843 623 2025-03-03 13:53:23.843 624 2025-03-03 13:53:24.860 624 2025-03-03 13:53:25.887 625 2025-03-03 13:53:26.893 626 2025-03-03 13:53:26.903 626 2025-03-03 13:53:27.907 627 2025-03-03 13:53:27.903 628 2025-03-03 13:53:29.913 629 2025-03-03 13:53:30.923 630 2025-03-03 13:53:33.613 631 2025-03-03 13:53:34.693 632 2025-03-03 13:53:35.703 633 2025-03-03 13:53:36.720 634 2025-03-03 13:53:37.733
-
Étape 4 : Vérifier la restauration des données à partir du snapshot cohérent au niveau de l'application
-
Restaurez le disque à l'aide du groupe de snapshots cohérents que vous avez créé.
Consultez la rubrique Restaurer des disques à l'aide d'un groupe de snapshots cohérents.
-
Connectez-vous à nouveau à SQL Server et interrogez la table PointInTime.
-
Connectez-vous à l'instance ECS.
Consultez la rubrique Se connecter à une instance Windows à l'aide de Workbench.
Connectez-vous à SQL Server à l'aide de Microsoft SQL Server Management Studio 18.
Cliquez sur New Query.
-
Saisissez l'instruction SQL suivante dans la fenêtre de requête.
USE AdventureWorks select * from PointInTime GO Cliquez sur Run.
-
Vérifiez l'horodatage du dernier enregistrement après la restauration.
Le dernier enregistrement inséré présente un horodatage de
2025-03-03 13:53:29, antérieur à l'horodatage de suspension2025-03-03 13:53:30indiqué à l'Étape 3. Cela confirme la réussite de la sauvegarde par snapshot cohérent au niveau de l'application.
-