Dans Azure SQL Managed Instance, vous pouvez configurer une stratégie de rétention des sauvegardes à long terme (LTR). Cela vous permet de conserver automatiquement les sauvegardes de base de données dans des conteneurs Stockage Blob Azure distincts pendant 10 ans maximum. Vous pouvez ensuite récupérer une base de données à l’aide de ces sauvegardes avec le portail Azure, l'interface Azure CLI et PowerShell.
Les sections suivantes montrent comment utiliser le portail Azure, PowerShell et Azure CLI pour configurer la conservation des sauvegardes à long terme, voir les sauvegardes dans le stockage Azure SQL et effectuer une restauration à partir d’une sauvegarde dans le stockage Azure SQL.
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.
Préparez votre environnement pour PowerShell.
Notes
Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Important
Le module PowerShell Azure Resource Manager est toujours pris en charge par Azure SQL Database, mais le module Az.Sql fera l’objet d’un développement futur. Pour ces cmdlets, voir AzureRM.Sql. Les arguments des commandes dans le module Az sont sensiblement identiques à ceux des modules AzureRm.
Pour Get-AzSqlInstanceDatabaseLongTermRetentionBackup et Restore-AzSqlInstanceDatabase, vous devez être membre de l’un des rôles suivants :
Rôle Propriétaire de l’abonnement
Rôle Contributeur SQL Managed Instance ou
Rôle personnalisé avec les autorisations suivantes :
Le rôle Collaborateur SQL Managed Instance n’est pas autorisé à supprimer les sauvegardes LTR.
Les autorisations de contrôle d’accès en fonction du rôle (RBAC) peuvent être accordées dans l’étendue de l’abonnement ou du groupe de ressources. Toutefois, pour accéder aux sauvegardes LTR appartenant à une instance supprimée, il faut accorder l’autorisation dans l’étendue de l’abonnement de cette instance.
Vous pouvez configurer SQL Managed Instance pour conserver des sauvegardes automatisées sur une période plus longue que la période de rétention associée à votre niveau de service.
Dans le portail Azure, sélectionnez votre instance gérée, puis sélectionnez Sauvegardes. Sous l’onglet Stratégies de conservation, sélectionnez les bases de données sur lesquelles vous souhaitez définir ou modifier des stratégies de rétention des sauvegardes à long terme. Les modifications ne s’appliquent pas aux bases de données non sélectionnées.
Dans le volet Configurer les stratégies, spécifiez la période de conservation souhaitée pour les sauvegardes hebdomadaires, mensuelles ou annuelles. Choisissez une période de conservation de « 0 » pour indiquer qu’aucune conservation de sauvegarde à long terme ne doit être définie.
Sélectionnez Appliquer lorsque vous avez terminé.
Important
Lorsque vous activez une stratégie de rétention des sauvegardes à long terme, la première sauvegarde peut ne devenir visible et disponible pour une restauration qu’au bout de 7 jours. Pour en savoir plus sur la cadence des sauvegardes LTR, consultez la section relative à la conservation des sauvegardes à long terme.
Exécutez la commande az sql midb show pour obtenir les détails de la base de données SQL Managed Instance.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Exécutez la commande az sql midb ltr-policy set pour créer une stratégie LTR. L’exemple suivant définit une stratégie de conservation à long terme pour 12 semaines pour la sauvegarde hebdomadaire.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W"
Cet exemple définit une stratégie de conservation pour 12 semaines pour la sauvegarde hebdomadaire, 5 ans pour la sauvegarde annuelle, et la semaine du 15 avril pour l’exécution de la sauvegarde LTR annuelle.
Pour afficher les sauvegardes à long terme disponibles à partir du portail Azure, procédez comme suit :
Dans le portail Azure, sélectionnez votre instance gérée, puis sélectionnez Sauvegardes. Dans l’onglet Sauvegardes disponibles, sélectionnez la base de données pour laquelle vous souhaitez afficher les sauvegardes disponibles. Sélectionnez Gérer.
Dans le volet Gérer les sauvegardes, passez en revue les sauvegardes disponibles.
Vous pouvez également effectuer une restauration à partir de cette page en choisissant la sauvegarde et en sélectionnant Restaurer.
Vous pouvez également restaurer une sauvegarde à partir d’une conservation à long terme via le portail Azure en procédant comme suit :
Accédez à l’instance cible SQL Managed Instance vers laquelle vous prévoyez de restaurer votre base de données.
Dans la page Vue d’ensemble, choisissez + Nouvelle base de données pour ouvrir la page Créer une base de données managée Azure SQL.
Sous l’onglet Informations de base de la page Créer une base de données managée Azure SQL, fournissez les informations sur l’abonnement et le groupe de ressources sous Détails du projet. Ensuite, sous Détails de la base de données, indiquez le nouveau nom de la base de données que vous prévoyez de restaurer. Vérifiez que la Managed Instance correcte est répertoriée dans la liste déroulante. Sélectionnez ensuite Suivant : source de données >
Sous l’onglet Source de données, choisissez Restauration à un instant dans le passé sous Utiliser des données existantes. Indiquez l’abonnement, le groupe de ressources et l’instance gérée contenant la base de données source. Dans la liste déroulante Base de données gérée, choisissez la base de données que vous souhaitez restaurer, puis choisissez le moment dans le passé pour la restauration. L’instance source et l’instance cible peuvent être identiques ou deux instances différentes. Sélectionnez Suivant : paramètres supplémentaires >
Sous l’onglet Paramètres supplémentaires, vous pouvez cocher la case pour hériter de la stratégie de rétention de la base de données source. Vous pouvez également sélectionner Configurer la rétention pour ouvrir la page Configurer les stratégies et définir les stratégies de rétention souhaitées pour votre base de données restaurée. Quand vous avez terminé, sélectionnez Vérifier + créer.
Dans Vérifier + créer, quand la validation réussit, sélectionnez Créer pour restaurer votre base de données.
Cette action démarre le processus de restauration qui crée une nouvelle base de données et est rempli avec les données de la base de données d’origine au point spécifié dans le temps. Pour plus d’informations sur le processus de récupération, consultez Heure de récupération.
Pour effectuer une restauration à partir d’une sauvegarde LTR après la suppression de l’instance, vous devez disposer d’autorisations étendues à l’abonnement de l’instance, cet abonnement devant être actif.
Notes
À ce stade, vous pouvez vous connecter à la base de données restaurée à l’aide de SQL Server Management Studio pour exécuter les tâches nécessaires, notamment pour extraire un bit de données de la base de données restaurée à copier dans la base de données existante ou pour supprimer la base de données existante et renommer la base de données restaurée avec le nom de la base de données existante. Consultez Restauration dans le temps.
Afficher des stratégies de rétention à long terme
Cet exemple montre comment lister les stratégies LTR au sein d’une instance pour une base de données unique.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Cet exemple montre comment lister les stratégies LTR pour toutes les bases de données sur une instance.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
Effacer une stratégie de rétention à long terme
Cet exemple montre comment effacer une stratégie de conservation à long terme d’une base de données.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Afficher des sauvegardes de rétention à long terme
Cet exemple montre comment lister les sauvegardes LTR au sein d’une instance.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
Restaurer à partir de sauvegardes de rétention à long terme
Cet exemple montre comment restaurer à partir d’une sauvegarde de rétention à long terme. Notez que cette interface n’a pas changé, mais que le paramètre d’ID de ressource requiert désormais l’ID de ressource de sauvegarde LTR.
# restore a specific LTR backup as an P1 database on the instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
Important
Pour effectuer une restauration à partir d’une sauvegarde LTR après la suppression de l’instance, vous devez disposer d’autorisations étendues à l’abonnement de l’instance, cet abonnement devant être actif. Vous devez également omettre le paramètre facultatif -ResourceGroupName.
Notes
À ce stade, vous pouvez vous connecter à la base de données restaurée à l’aide de SQL Server Management Studio pour exécuter les tâches nécessaires, notamment pour extraire un bit de données de la base de données restaurée à copier dans la base de données existante ou pour supprimer la base de données existante et renommer la base de données restaurée avec le nom de la base de données existante. Consultez Restauration dans le temps.
Supprimer des sauvegardes de rétention à long terme
Supprimez les sauvegardes conservées pour une base de données spécifique avec une stratégie LTR.
Important
La suppression de sauvegardes de rétention à long terme n’est pas réversible. Pour supprimer une sauvegarde LTR une fois l’instance supprimée, vous devez disposer d’une autorisation étendue à l’abonnement. Vous pouvez configurer des notifications sur chaque suppression dans Azure Monitor en filtrant sur l’opération « Supprime une sauvegarde de conservation à long terme ». Le journal d’activité contient des informations sur la personne qui a effectué la requête et quand. Consultez Créer des alertes de journal d’activité pour obtenir des instructions détaillées.
Dans le portail Azure, accédez à SQL Managed Instance.
Sélectionnez Sauvegardes. Pour afficher les sauvegardes LTR disponibles pour une base de données spécifique, sélectionnez Gérer sous la colonne Sauvegardes LTR disponibles. Un volet s’affiche avec la liste des sauvegardes LTR disponibles pour la base de données sélectionnée.
Dans le volet Sauvegardes LTR disponibles, passez en revue les sauvegardes disponibles. Sélectionner une sauvegarde à supprimer. Sélectionnez Supprimer.
Cet exemple montre comment supprimer la sauvegarde LTR la plus récente de la liste des sauvegardes. Cet exemple obtient la liste des sauvegardes LTR pour une base de données spécifique à partir de la région Azure sous la SQL Managed Instance donnée.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
Limites
Les sauvegardes de base de données effectuées à partir d’instances configurées avec la stratégie de mise à jour SQL Server 2022 peuvent être restaurées sur des instances configurées avec la stratégie de mise à jour SQL Server 2022 ou permanente. Les sauvegardes de base de données effectuées à partir d’instances configurées avec la stratégie de mise à jour permanente ne peuvent être restaurées que sur des instances également configurées avec la stratégie de mise à jour permanente.
Étapes suivantes
Pour plus d’informations sur les sauvegardes automatiques générées par le service, consultez la page Sauvegardes automatiques.