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

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.

Étapes suivantes