Migration : SQL Server vers SQL Managed Instance avec Azure Arc
Ce scénario vous guide tout au long des étapes de migration d’une base de données d’une instance SQL Server vers Azure SQL Managed Instance dans Azure Arc via deux méthodes différentes de sauvegarde et de restauration.
Utiliser le stockage Blob Azure
Utilisez le Stockage Blob Azure pour la migration vers SQL Managed Instance avec Azure Arc.
Cette méthode utilise le stockage Blob Azure comme emplacement de stockage temporaire où effectuer la sauvegarde, puis à partir duquel effectuer la restauration.
Prérequis
-
Pour le moment, utilisez la build Insiders d’Azure Data Studio.
Abonnement Azure
Étape 1 : approvisionner le Stockage Blob Azure
- Suivez les étapes décrites dans Créer un compte de stockage Blob Azure
- Lancer l’Explorateur Stockage Azure
- Connectez-vous à Azure pour accéder au stockage Blob créé à l’étape précédente.
- Cliquez avec le bouton droit sur le compte de stockage Blob, puis sélectionnez Créer un conteneur d’objets blob pour créer un conteneur où le fichier de sauvegarde sera stocké.
Étape 2 : obtenir les informations d’identification de blob de stockage
Dans l’Explorateur Stockage Azure, cliquez avec le bouton droit sur le conteneur d’objets blob qui vient d’être créé et sélectionnez Obtenir une signature d’accès partagé
Sélectionnez Lire, Écrire et Lister
Sélectionnez Créer
Prenez note de l’URI et de la chaîne de requête figurant dans cet écran. Ils seront nécessaires dans des étapes ultérieures. Cliquez sur le bouton Copier pour enregistrer dans le Bloc-notes/OneNote, etc.
Fermez la fenêtre Signature d’accès partagé.
Étape 3 : sauvegarder le fichier de base de données dans le Stockage Blob Azure
Dans cette étape, nous allons nous connecter au serveur SQL Server source et créer le fichier de sauvegarde de la base de données que vous voulez migrer vers SQL Managed Instance - Azure Arc.
Lancer Azure Data Studio
Connectez-vous à l’instance SQL Server qui contient la base de données que vous voulez migrer vers SQL Managed Instance - Azure Arc.
Cliquez avec le bouton droit sur la base de données et sélectionnez Nouvelle requête.
Préparez votre requête au format suivant en remplaçant les espaces réservés indiqués par
<...>
en utilisant les informations de la signature d’accès partagé des étapes précédentes. Une fois que vous avez remplacé les valeurs, exécutez la requête.IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
De même, préparez la commande BACKUP DATABASE comme suit pour créer un fichier de sauvegarde dans le conteneur d’objets blob. Une fois que vous avez remplacé les valeurs, exécutez la requête.
BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
Ouvrez l’Explorateur Stockage Azure et vérifiez que le fichier de sauvegarde créé à l’étape précédente est visible dans le conteneur d’objets blob.
Découvrez plus en détail la sauvegarde vers une URL ici :
Sauvegarde et restauration SQL Server avec Stockage Blob Azure
Sauvegarder vers une URL en utilisant SQL Server Management Studio (SSMS)
Étape 4 : restaurer la base de données à partir du Stockage Blob Azure vers SQL Managed Instance – Azure Arc
Dans Azure Data Studio, connectez-vous à l’instance SQL Managed Instance - Azure Arc.
Développez Bases de données système, cliquez avec le bouton droit sur la base de données master et sélectionnez Nouvelle requête.
Dans la fenêtre de l’éditeur de requête, préparez et exécutez la même requête que celle de l’étape précédente pour créer les informations d’identification.
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
Préparez et exécutez la commande ci-dessous pour vérifier que le fichier de sauvegarde est lisible et intact.
RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
Préparez et exécutez la commande RESTORE DATABASE comme suit pour restaurer le fichier de sauvegarde dans une base de données sur SQL Managed Instance - Azure Arc
RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak' WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf' ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf' ,RECOVERY; GO
Méthode 2 : copier le fichier de sauvegarde dans un pod Azure SQL Managed Instance – Azure Arc en utilisant kubectl
Cette méthode vous montre comment produire un fichier de sauvegarde que vous créez via n’importe quelle méthode, puis comment le copier dans le stockage local du pod Azure SQL Managed Instance afin de pouvoir effectuer une restauration à partir de là, comme vous le feriez sur un système de fichiers standard sur Windows ou Linux. Dans ce scénario, vous allez utiliser la commande kubectl cp
pour copier le fichier depuis un emplacement donné dans le système de fichiers du pod.
Prérequis
- Installer et configurer kubectl pour le faire pointer vers votre cluster Kubernetes sur lequel les services de données Azure Arc sont déployés
- Avoir un outil comme Azure Data Studio ou SQL Server Management Server installé et connecté au serveur SQL Server où vous voulez créer le fichier de sauvegarde, OU avoir un fichier .bak existant déjà créé sur votre système de fichiers local.
Étape 1 : sauvegarder la base de données si vous ne l’avez pas déjà fait
Sauvegardez la base de données SQL Server dans le chemin de votre fichier local, comme n’importe quelle sauvegarde standard SQL Server sur disque :
BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO
Étape 2 : copier le fichier de sauvegarde dans le système de fichiers du pod
Recherchez le nom du pod où l’instance SQL est déployée. C’est généralement similaire à ceci : pod/<sqlinstancename>-0
.
Obtenez la liste de tous les pods en exécutant :
kubectl get pods -n <namespace of data controller>
Exemple :
Copiez le fichier de sauvegarde depuis le stockage local vers le pod SQL du cluster.
kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi
#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi
Étape 3 : restaurer la base de données
Préparez et exécutez la commande RESTORE pour restaurer le fichier de sauvegarde dans Azure SQL Managed Instance - Azure Arc
RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'
,RECOVERY;
GO
Exemple :
RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'
,RECOVERY;
GO
Contenu connexe
En savoir plus sur les fonctionnalités et les capacités de SQL Managed Instance avec Azure Arc