Share via


Migrer : SQL Server vers SQL Managed Instance activé par 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

Étape 1 : approvisionner le Stockage Blob Azure

  1. Suivez les étapes décrites dans Créer un compte de stockage Blob Azure
  2. Lancer l’Explorateur Stockage Azure
  3. Connectez-vous à Azure pour accéder au stockage Blob créé à l’étape précédente.
  4. 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

  1. 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é

  2. Sélectionnez Lire, Écrire et Lister

  3. 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.

  4. 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.

  1. Lancer Azure Data Studio

  2. Connectez-vous à l’instance SQL Server qui contient la base de données que vous voulez migrer vers SQL Managed Instance - Azure Arc.

  3. Cliquez avec le bouton droit sur la base de données et sélectionnez Nouvelle requête.

  4. 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>';  
    
  5. 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'
    
  6. 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 :

Étape 4 : restaurer la base de données à partir du Stockage Blob Azure vers SQL Managed Instance – Azure Arc

  1. Dans Azure Data Studio, connectez-vous à l’instance SQL Managed Instance - Azure Arc.

  2. 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.

  3. 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>';  
    
  4. 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'
    
  5. 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

En savoir plus sur les fonctionnalités et les capacités de SQL Managed Instance avec Azure Arc

Commencer en créant un contrôleur de données

Créer une instance SQL Managed Instance avec Azure Arc