Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 d’Azure CLI. Vous pouvez également effectuer ces actions à l’aide du portail Azure.
Remarque
Si vous avez utilisé 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 :
- Un groupe de ressources nommé SQLResourceGroup
- Un coffre nommé SQLVault
- Conteneur protégé nommé VMAppContainer ; Calculer; SQLResourceGroup ; testSQLVM
- Base de données/élément sauvegardé nommé sqldatabase ; mssqlserver ; maître
- Ressources dans la région westus2
Azure CLI facilite le processus de gestion d’une base de données SQL s’exécutant sur une machine virtuelle Azure sauvegardée à l’aide de Sauvegarde Azure. Les sections suivantes décrivent chacune des opérations de gestion.
Pour voir les scénarios de sauvegarde et de restauration que nous prenons en charge, consultez la matrice de prise en charge. Pour les questions courantes, consultez les questions fréquemment posées.
Surveiller les travaux de sauvegarde et de restauration
Utilisez la commande az backup job list pour surveiller les travaux terminés ou en cours d’exécution (sauvegarde ou restauration). L’interface CLI vous permet également de suspendre un travail en cours d’exécution ou d’attendre la fin d’un travail.
az backup job list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--output table
La sortie se présente sous la forme suivante :
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 name de cette commande fait référence à l’élément de sauvegarde dont vous souhaitez modifier la stratégie. Ici, remplacez 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 sous la forme suivante :
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 : SQL DataBase.
- --name : nom de la stratégie.
- --policy : fichier JSON avec les détails appropriés pour 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 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 le JSON de stratégie que vous avez passé 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 et la rétention de sauvegarde requises pour les sauvegardes différentielles.
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 avoir des sauvegardes différentielles uniquement le samedi et les conserver pendant 60 jours, effectuez les modifications suivantes dans la stratégie :
- Mettez à jour la durée de retentionDuration à 60 jours.
- Spécifiez uniquement samedi comme 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 découvre automatiquement toutes les bases de données de 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
Ensuite, utilisez le cmdlet az backup protectable-item list pour lister toutes les bases de données découvertes sur votre instance SQL. Vérifiez ou filtrez leur état de protection. Lorsque vous trouvez la base de données que vous souhaitez sauvegarder, voyez 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 nouvelle base de données que vous souhaitez sauvegarder s’affiche dans cette liste, qui apparaît 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 pour une base de données SQL
Vous pouvez arrêter la protection d’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 laisser des points de récupération, gardez à l’esprit les détails 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 en conservant les données
Pour arrêter la protection avec 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 \
--output table
La sortie se présente sous la forme suivante :
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 sous la forme suivante :
Name ResourceGroup
------------------------------------ ---------------
g0f15dae-7cac-4475-d833-f52c50e5b6c3 SQLResourceGroup
Pour vérifier l’état de cette opération, utilisez la commande az backup job show .
Rétablir la protection
Lorsque vous arrêtez la protection de la base de données SQL avec conservation des 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 \
--item-name "<native-database-item-name>" \
--output table
La sortie se présente sous la forme suivante :
Name ResourceGroup
------------------------------------ ---------------
b2a7f108-1020-4529-870f-6c4c43e2bb9e SQLResourceGroup
Pour vérifier l’état de cette opération, utilisez la commande az backup job show .
Gérer les sauvegardes instantanées d’instances SQL
Les commandes snapshot suivantes utilisent la syntaxe shell PowerShell, pas Bash. Remplacez les espaces réservés et utilisez une version d’Azure CLI qui prend en charge les options d’instantanés présentées dans cet article. N’exécutez que l’opération prévue. Les exemples retain-data et delete-data sont des alternatives.
Sélectionnez le coffre et l’instance protégée
Utilisez l’abonnement et le groupe de ressources du coffre pour les arguments courants :
$vaultSubscription = "<vault-subscription-id>"
$vaultRg = "<vault-rg>"
$vaultName = "<vault-name>"
$vaultArgs = @("--subscription", $vaultSubscription, "--resource-group", $vaultRg, "--vault-name", $vaultName)
az backup vault show --subscription $vaultSubscription --resource-group $vaultRg --name $vaultName
az backup container list @vaultArgs --backup-management-type AzureWorkload `
--query "[].{Name:name,VM:properties.friendlyName}" --output table
$containerName = "<native-source-container-name>"
$sourceArgs = $vaultArgs + @("--container-name", $containerName, "--backup-management-type", "AzureWorkload")
Copiez le nom exact du conteneur depuis la sortie. Listez toutes les instances protégées par instantané dans le coffre-fort, puis limitez la liste au conteneur sélectionné :
az backup item list @vaultArgs --backup-management-type AzureWorkload `
--workload-type SQLInstance --output json
az backup item list @sourceArgs --workload-type SQLInstance --output json
$instanceItemName = "<native-protected-instance-item-name>"
az backup item show @sourceArgs --workload-type SQLInstance `
--name $instanceItemName --output json
$instanceArgs = $sourceArgs + @("--item-name", $instanceItemName, "--workload-type", "SQLInstance")
Utilisez des noms natifs retournés par le service plutôt que de construire des noms de conteneurs ou d’éléments. Pour la création de politiques et la sélection de bases de données, voir Configurer la sauvegarde instantanée d’instance SQL.
Surveiller les opérations d'instantanés
Utilisez le nom du job qu’une sauvegarde, restauration ou opération de protection renvoie pour vérifier son statut.
az backup job show @vaultArgs --name "<job-name>" --output json
Arrêter la protection et conserver les données
Confirmez que l’élément sélectionné est l’instance prévue avant d’arrêter ses sauvegardes :
az backup protection disable @instanceArgs --delete-backup-data false
Cette opération arrête la sauvegarde tout en conservant les données de sauvegarde existantes. Consultez la demande de confirmation avant de continuer.
Arrêter la protection et supprimer les données
Warning
Ce qui suit est une option destructive à la conservation des données de sauvegarde. Vérifiez l’instance sélectionnée et ses bases de données avant de demander la suppression. L’immuabilité du coffre et les paramètres de suppression réversible peuvent influencer le comportement de suppression.
az backup protection disable @instanceArgs --delete-backup-data true
Annuler l’inscription de conteneurs de VM
Désenregistrer le conteneur seulement après que tous ses éléments protégés ne soient plus protégés et qu’il ne reste aucune donnée de sauvegarde. Cette opération s’applique à l’ensemble du conteneur d’application VM, pas seulement à une instance ou une base de données.
az backup container unregister @vaultArgs --container-name $containerName `
--backup-management-type AzureWorkload
Pour les requêtes de points de récupération des instantanés et les configurations de restauration, voir Restaurer des instantanés d’instances SQL.
Étapes suivantes
- Découvrez comment sauvegarder une base de données SQL s’exécutant sur une machine virtuelle Azure à l’aide du portail Azure.
- Découvrez comment gérer une base de données SQL sauvegardée s’exécutant sur une machine virtuelle Azure à l’aide du portail Azure.
Contenu connexe
- Sauvegardez des bases de données SQL Server dans des machines virtuelles Azure à l’aide de Sauvegarde Azure via l’API REST.
- Restaurez des bases de données SQL Server dans des machines virtuelles Azure avec l’API REST.
- Gérez les bases de données SQL Server dans des machines virtuelles Azure avec l’API REST.