J'ai un compte de stockage Azure et un conteneur d'objets blob. J'ai 6 bases de données sur mon instance gérée azure sql. Je souhaite planifier une sauvegarde quotidienne automatisée de toutes les bases de données dans l'objet blob en fonction d'une expression CRON spécifiée. Comment y parvenir. Dois-je utiliser un outil ou un agent ou peut-il être configuré dans Azure Portal?

0
Rahul Dev 2 févr. 2021 à 12:07

1 réponse

Meilleure réponse

Azure SQL Managed Instance effectue quotidiennement des sauvegardes automatisées et une sauvegarde des journaux de transit toutes les 5 à 10 minutes.

Si vous cherchez à sauvegarder des bases de données juste pour la tranquillité d'esprit en plus des sauvegardes automatisées, essayez les tâches de sauvegarde ola hallengren qui devraient fonctionner en sauvegardant sur blob.

https://ola.hallengren.com/sql-server-backup.html

N'oubliez pas que si vous utilisez un serveur TDE basé sur un serveur, la sauvegarde de copie seule ne fonctionnera pas, vous devrez supprimer la clé TDE de la base de données, puis la sauvegarder. Sinon, vous pouvez crypter SQL MI et les bases de données en utilisant BYOK à partir du coffre de clés et cela vous permettra de faire des sauvegardes sans problème.

J'espère que cela aidera

Voici quelques étapes pour le faire fonctionner, je recommanderais de faire ce qui suit si vous voulez le faire via T_SQL

1- Créez un objet blob / conteneur s'il n'existe pas.

2- Créez un jeton SAS pour l'objet blob. Je recommanderais d'utiliser Azure Storage Explorer. C'est beaucoup plus facile grâce à ça. Copiez également l'URi pour le stockage d'objets blob

3- Créez les informations d'identification à l'aide de T-SQL

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/sql-server-backup-to-url?view=sql-server-ver15#credential

Essayez d'abord de faire une sauvegarde manuelle à l'aide de T-SQL pour voir si cela fonctionne. Assurez-vous de modifier l'emplacement de sauvegarde et le nom de base de données

BACKUP DATABASE [<DBname>]
TO URL =  '<https://sqlbackupri.blob.core.windows.net/sqlbackupsmi/Adventureworks1.bak>'
WITH COMPRESSION  
     ,STATS = 5
     ,COPY_ONLY; 
GO

Si cela fonctionne, téléchargez le script de maintenance et exécutez-le sur une base de données afin que tous vos SP soient dans la même base de données. Je créerais généralement une base de données shell comme _DBA_Tool

Lorsque vous exécutez le script, il vous demandera si vous souhaitez créer des travaux, vous pouvez sélectionner oui ou non. Je sélectionnerais non car vous cherchez à créer un travail d'agent SQL pour faire des sauvegardes

https://ola.hallengren.com/scripts/MaintenanceSolution.sql

Une fois que vous exécutez ceci et qu'il a créé le SP dans la base de données DBA, vous pouvez continuer et créer un travail de l'agent SQL dans SSMS et l'exécuter comme ceci

EXECUTE _DBATools.dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@URL = '<https://sqlbackupr.blob.core.windows.net/sqlbackupsmi>',
@BackupType = 'FULL',
@Compress = 'Y',
@Verify = 'Y',
@CopyOnly = 'Y'
GO

N'oubliez pas que le script ne nettoiera aucune sauvegarde, vous devriez envisager d'automatiser le nettoyage à l'aide de comptes Azure Automation ou de scripts Powershell.

1
Rizwan 11 févr. 2021 à 20:40