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 utilise des disques ESSD et la fonctionnalité multi-attach est désactivée pour ces disques.
L'instance ECS est dans l'état Running. Cloud Assistant est dans un état normal sur l'instance. Pour afficher l'état de Cloud Assistant, consultez la rubrique Vérifier l'état 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é, tel que 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 relatives aux 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 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 seront vérifiées ultérieurement.
-
É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 la création du snapshot cohérent au niveau de l'application
Consultez le résultat de la commande Cloud Assistant et vérifiez les horodatages de suspension et de reprise des opérations d'écriture.
-
Restaurez le disque à l'aide du snapshot cohérent au niveau de l'application, puis comparez l'heure de la dernière écriture avec l'heure de suspension pour vérifier que la restauration s'est déroulée correctement.
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 et 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 Cliquez avec le bouton droit sur 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 l'option Enable Application-consistent Snapshot, puis sélectionnez 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 inclut plusieurs writers qui garantissent la cohérence des données lors de la sauvegarde. Consultez la documentation relative au 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 la création du snapshot cohérent au niveau de l'application
-
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 fonction du 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 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 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 du snapshot 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 Cliquez avec le bouton droit sur Run.
-
Vérifiez l'heure de suspension dans les résultats de la requête.
Le résultat de la requête suivant 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 reprises à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é possède 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.
-