Gérer des bases de données SQL dans une machine virtuelle Azure à l’aide de l’interface Azure CLI
Azure CLI permet de créer et de gérer des ressources Azure à partir de la ligne de commande ou par le biais de scripts. Cet article explique comment gérer une base de données SQL sauvegardée sur une machine virtuelle Azure à l’aide de l’interface Azure CLI. Vous pouvez également effectuer ces actions à l’aide du portail Azure.
Dans cet article, vous allez apprendre à :
- Superviser des travaux de sauvegarde et de restauration
- Protéger les nouvelles bases de données ajoutées à une instance SQL
- Modifier la stratégie
- Arrêter la protection
- Reprendre la protection
Si vous avez appliqué la procédure décrite dans l’article Sauvegarder une base de données SQL dans Azure à l’aide de l’interface CLI pour sauvegarder votre base de données SQL, vous utilisez les ressources suivantes :
- Groupe de ressources nommé SQLResourceGroup
- Coffre nommé SQLVault
- Conteneur protégé nommé VMAppContainer;Compute;SQLResourceGroup;testSQLVM
- Élément/base de données sauvegardé nommé sqldatabase;mssqlserver;master
- Des ressources dans la région westus2
L’interface Azure CLI facilite le processus de gestion d’une base de données SQL s’exécutant sur une machine virtuelle Azure qui est sauvegardée à l’aide de Sauvegarde Azure. Les sections suivantes décrivent chaque opération de gestion.
Notes
Reportez-vous à la matrice de prise en charge des sauvegardes SQL pour en savoir plus sur les configurations et les scénarios pris en charge.
Superviser des travaux de sauvegarde et de restauration
Utilisez la commande az backup job list pour superviser les travaux terminés ou en cours d’exécution (sauvegarde ou restauration). L’interface CLI vous permet également d’interrompre un travail en cours d’exécution ou d’attendre qu’un travail se termine.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
La sortie se présente comme suit :
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master [testSQLVM] 2019-12-03T03:09:210831+00:00
ccdb4dce-8b15-47c5-8c46-b0985352238f Backup (Full) Completed master [testSQLVM] 2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282 Backup (Differential) Completed master [testSQLVM] 2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813 Restore (Log) Completed master [testSQLVM] 2019-12-03T05:44:51.081607+00:00
Modifier une stratégie
Pour modifier la stratégie sous-jacente à la configuration de sauvegarde SQL, utilisez la commande az backup policy set. Le paramètre de nom de cette commande fait référence à l’élément de sauvegarde dont vous souhaitez modifier la stratégie. Remplacez ici la stratégie de la base de données SQL sqldatabase;mssqlserver;master par une nouvelle stratégie newSQLPolicy. Vous pouvez créer de nouvelles stratégies à l’aide de la commande az backup policy create.
az backup item set-policy --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name newSQLPolicy \
--name sqldatabase;mssqlserver;master \
La sortie se présente comme suit :
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ --------------- --------- ----------- ------------------------ -------------------------------- --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd ConfigureBackup Completed master AzureWorkload 2022-06-22T08:24:03.958001+00:00 0:01:12.435765
Créer une stratégie de sauvegarde différentielle
Pour créer une stratégie de sauvegarde différentielle, utilisez la commande az backup policy create avec les paramètres suivants :
- --backup-management-type : charge de travail Azure.
- --workload-type : base de données SQL.
- --name : nom de la stratégie.
- --policy : fichier JSON comprenant les informations appropriées concernant la planification et la rétention.
- --resource-group : groupe de ressource du coffre.
- --vault-name : nom du coffre/
Exemple :
az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase
Exemple de code JSON (sqlpolicy.json) :
"eTag": null,
"id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
"location": null,
"name": "sqlpolicy",
"properties": {
"backupManagementType": "AzureWorkload",
"workLoadType": "SQLDataBase",
"settings": {
"timeZone": "UTC",
"issqlcompression": false,
"isCompression": false
},
"subProtectionPolicy": [
{
"policyType": "Full",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Sunday"
],
"scheduleRunTimes": [
"2022-06-13T19:30:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 104,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2022-06-13T19:30:00Z"
],
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
},
{
"policyType": "Differential",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Weekly",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunTimes": [
"2022-06-13T02:00:00Z"
],
"scheduleWeeklyFrequency": 0
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 30,
"durationType": "Days"
}
}
},
{
"policyType": "Log",
"schedulePolicy": {
"schedulePolicyType": "LogSchedulePolicy",
"scheduleFrequencyInMins": 120
},
"retentionPolicy": {
"retentionPolicyType": "SimpleRetentionPolicy",
"retentionDuration": {
"count": 15,
"durationType": "Days"
}
}
}
],
"protectedItemsCount": 0
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
Une fois la stratégie créée, la sortie de la commande affiche la stratégie JSON que vous avez transmise en tant que paramètre lors de l’exécution de la commande.
Vous pouvez modifier la section suivante de la stratégie pour spécifier la fréquence de sauvegarde et la rétention des sauvegardes différentielles nécessaires.
Par exemple :
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Exemple :
Si vous souhaitez effectuer des sauvegardes différentielles uniquement le samedi et les conserver pendant 60 jours, modifiez la stratégie comme suit :
- Mettez à jour la valeur retentionDuration à 60 jours.
- Spécifiez uniquement le samedi pour ScheduleRunDays.
{
"policyType": "Differential",
"retentionPolicy": {
"retentionDuration": {
"count": 60,
"durationType": "Days"
},
"retentionPolicyType": "SimpleRetentionPolicy"
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": [
"Saturday"
],
"scheduleRunFrequency": "Weekly",
"scheduleRunTimes": [
"2017-03-07T02:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
}
}
Protéger les nouvelles bases de données ajoutées à une instance SQL
L’inscription d’une instance SQL auprès d’un coffre Recovery Services entraîne la découverte automatique de toutes les bases de données dans cette instance.
Toutefois, si vous avez ajouté de nouvelles bases de données à l’instance SQL ultérieurement, utilisez la commande az backup protectable-item initialize. Cette commande découvre les nouvelles bases de données ajoutées.
az backup protectable-item initialize --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--workload-type SQLDataBase
Utilisez ensuite la cmdlet az backup protectable-item list pour répertorier l’ensemble des bases de données qui ont été découvertes sur votre instance SQL. Cette liste exclut toutefois les bases de données sur lesquelles la sauvegarde a déjà été configurée. Une fois que la base de données à sauvegarder est découverte, consultez Activer la sauvegarde sur une base de données SQL.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--protectable-item-type SQLDataBase \
--output table
La base de données que vous souhaitez sauvegarder s’affiche dans cette liste qui se présente comme suit :
Name Protectable Item Type ParentName ServerName IsProtected
--------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;db1 SQLDataBase mssqlserver testSQLVM NotProtected
sqldatabase;mssqlserver;db2 SQLDataBase mssqlserver testSQLVM NotProtected
Arrêter la protection d’une base de données SQL
Vous pouvez arrêter de protéger une base de données SQL dans les processus suivants :
- Arrêter tous les travaux de sauvegarde à venir et supprimer tous les points de récupération.
- Arrêter tous les travaux de sauvegarde à venir, mais conserver les points de récupération.
Si vous choisissez de conserver les points de récupération, tenez compte des points suivants :
- Tous les points de récupération restent intacts indéfiniment et toutes les opérations de nettoyage s’arrêtent à l’arrêt de la protection avec les données conservées.
- Vous serez facturé pour l’instance protégée et le stockage utilisé.
- Si vous supprimez une source de données sans arrêter les sauvegardes, les nouvelles sauvegardes échouent.
Les processus d’arrêt de la protection sont détaillés ci-dessous.
Arrêter la protection avec données conservées
Pour arrêter la protection en conservant les données, utilisez la commande az backup protection disable`.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--output table
La sortie se présente comme suit :
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Pour vérifier l’état de cette opération, utilisez la commande az backup job show.
Arrêter la protection sans conserver les données
Pour arrêter la protection sans conserver les données, utilisez la commande az backup protection disable.
az backup protection disable --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--workload-type SQLDataBase \
--delete-backup-data true \
--output table
La sortie se présente comme suit :
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Pour vérifier l’état de cette opération, utilisez la commande az backup job show.
Reprendre la protection
Quand vous arrêtez la protection de la base de données SQL en conservant les données, vous pouvez reprendre la protection ultérieurement. Si vous ne conservez pas les données sauvegardées, vous ne pourrez pas reprendre la protection.
Pour reprendre la protection, utilisez la commande az backup protection resume.
az backup protection resume --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--policy-name SQLPolicy \
--output table
La sortie se présente comme suit :
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Pour vérifier l’état de cette opération, utilisez la commande az backup job show.