Sauvegarder des bases de données SQL dans une machine virtuelle Azure à l’aide d’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 sauvegarder une base de données SQL dans une machine virtuelle Azure et déclencher des sauvegardes à la demande à l’aide d’Azure CLI. Vous pouvez également effectuer ces actions à l’aide du portail Azure.
Cet article part du principe qu’une base de données SQL est déjà installée sur une machine virtuelle Azure. (Vous pouvez également créer une machine virtuelle à l’aide d’Azure CLI.)
Dans cet article, vous allez apprendre à :
- Créer un coffre Recovery Services
- Inscrire le serveur SQL Server et découvrir les bases de données qu’il contient
- Activer la sauvegarde sur une base de données SQL
- Déclencher une sauvegarde à la demande
Consultez les scénarios pris en charge pour SQL dans une machine virtuelle Azure.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Créer un coffre Recovery Services
Un coffre Recovery Services est un conteneur logique qui stocke les données de sauvegarde de chaque ressource protégée, par exemple les machines virtuelles Azure ou les charges de travail s’exécutant sur des machines virtuelles Azure, par exemple les bases de données SQL ou HANA. Lorsque le travail de sauvegarde d’une ressource protégée s’exécute, il crée un point de récupération à l’intérieur du coffre Recovery Services. Vous pouvez ensuite utiliser un de ces points de récupération pour restaurer des données à un moment donné dans le temps.
Créez un coffre Recovery Services à l’aide de la commande az backup vault create. Utilisez le même groupe de ressources et la même localisation que ceux de la machine virtuelle à protéger. Découvrez comment créer une machine virtuelle Windows et une machine virtuelle Linux à l’aide d’Azure CLI.
Pour cet article, nous allons utiliser :
- Un groupe de ressources nommé SQLResourceGroup
- Une machine virtuelle nommée testSQLVM
- Des ressources ayant pour localisation westus2.
Exécutez la commande suivante pour créer un coffre nommé SQLVault.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
Par défaut, le coffre Recovery Services est défini pour le stockage géoredondant. Le stockage géoredondant garantit la réplication de vos données de sauvegarde vers une région Azure secondaire, même si celle-ci se trouve à des centaines de kilomètres de la région primaire. Si vous devez modifier le paramètre de redondance de stockage, utilisez la commande az Backup Vault Backup-properties set.
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
Pour vérifier si le coffre a été créé correctement, utilisez la commande az backup vault list. La réponse se présente sous la forme suivante :
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
Inscrire et protéger le serveur SQL Server
Pour inscrire le serveur SQL Server auprès du coffre Recovery Services, utilisez la commande az backup container register. VMResourceId est l’ID de ressource de la machine virtuelle que vous avez créée pour installer SQL.
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
Notes
Si la machine virtuelle n’est pas présente dans le même groupe de ressources que le coffre, SQLResourceGroup utilise le groupe de ressources où le coffre a été créé.
L’inscription du serveur SQL Server permet de découvrir automatiquement toutes ses bases de données actuelles. Toutefois, pour découvrir les nouvelles bases de données susceptibles d’être ajoutées à l’avenir, consultez la section Découverte de nouvelles bases de données ajoutées au serveur SQL Server inscrit.
Utilisez la commande az backup container list pour vérifier si l’instance SQL est correctement inscrite auprès de votre coffre. La réponse se présente sous la forme suivante :
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
Notes
La colonne nom dans la sortie ci-dessus fait référence au nom du conteneur. Ce nom de conteneur est utilisé dans les sections suivantes pour activer les sauvegardes et les déclencher. Exemple : VMAppContainer;Compute;SQLResourceGroup;testSQLVM.
Activer la sauvegarde sur la base de données SQL
La commande az backup protectable-item list liste toutes les bases de données découvertes sur l’instance SQL que vous avez inscrite à l’étape précédente.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
Vous devez rechercher dans cette liste la base de données à sauvegarder. La liste ressemble à ceci :
Name Protectable Item Type ParentName ServerName IsProtected
----------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;master SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;model SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;msdb SQLDataBase MSSQLServer testSQLVM NotProtected
Configurez à présent la sauvegarde de la base de données sqldatabase;mssqlserver;master.
Pour configurer et protéger les sauvegardes d’une base de données, une par une, utilisez la commande az backup protection enable-for-azurewl. Spécifiez le nom de la stratégie que vous voulez utiliser. Pour créer une stratégie à l’aide de l’interface CLI, utilisez la commande az backup policy create. Pour cet article, nous avons utilisé la stratégie testSQLPolicy.
az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqldatabase;mssqlserver;master" \
--protectable-item-type SQLDataBase \
--server-name testSQLVM \
--workload-type SQLDataBase \
--output table
Vous pouvez utiliser la même commande si vous disposez d’un groupe de disponibilité SQL Always On, et si vous souhaitez identifier la source de données pouvant être protégée dans le groupe de disponibilité. Ici, le type d’élément pouvant être protégé est SQLAG.
Pour vérifier si la configuration de sauvegarde ci-dessus est complète, utilisez la commande az backup job list. 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 2019-12-03T03:09:210831+00:00
La commande az backup job list liste tous les travaux de sauvegarde (planifiés ou à la demande) qui se sont exécutés ou qui sont en cours d’exécution dans la base de données protégée, en plus d’autres opérations, par exemple l’inscription, la configuration de la sauvegarde et la suppression des données de sauvegarde.
Notes
Le service Sauvegarde Azure ne s’adapte pas automatiquement aux changements d’heure durant la sauvegarde d’une base de données SQL s’exécutant sur une machine virtuelle Azure.
Modifiez la stratégie manuellement en fonction des besoins.
Activer la protection automatique
Pour une configuration de sauvegarde transparente, toutes les bases de données ajoutées à l’avenir peuvent être automatiquement protégées par une certaine stratégie. Pour activer la protection automatique, utilisez la commande az backup protection auto-enable-for-azurewl.
Dans la mesure où l’instruction consiste à sauvegarder toutes les futures bases de données, l’opération est effectuée au niveau de SQLInstance.
az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqlinstance;mssqlserver" \
--protectable-item-type SQLInstance \
--server-name testSQLVM \
--workload-type MSSQL\
--output table
Déclencher une sauvegarde à la demande
Pour déclencher une sauvegarde à la demande, utilisez la commande az backup protection backup-now.
Notes
La période de conservation de cette sauvegarde est déterminée par le type de sauvegarde à la demande que vous avez exécuté.
- La sauvegarde complète à la demande est conservée pendant au minimum 45 jours et au maximum 99 ans.
- La sauvegarde par copie complète uniquement à la demande accepte toutes les valeurs de conservation.
- La sauvegarde différentielle à la demande est conservée conformément à la planification des sauvegardes différentielles définie dans la stratégie.
- La sauvegarde de fichier journal à la demande est conservée conformément à la planification des sauvegardes de journaux définie dans la stratégie.
az backup protection backup-now --resource-group SQLResourceGroup \
--item-name sqldatabase;mssqlserver;master \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--backup-type Full
--retain-until 01-01-2040
--output table
La sortie se présente sous la forme suivante :
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
La réponse vous fournit le nom du travail. Vous pouvez utiliser ce nom pour effectuer le suivi de l’état du travail à l’aide de la commande az backup job show.