Share via


Migrieren: SQL Server zu SQL verwaltete Instanz von Azure Arc aktiviert

In diesem Szenario werden Sie durch die Schritte zum Migrieren einer Datenbank von einer SQL Server-Instanz zu einer Azure SQL Managed Instance-Instanz in Azure Arc geführt. Dabei werden zwei verschiedene Sicherungs- und Wiederherstellungsmethoden verwendet.

Verwendung von Azure Blob Storage

Verwenden Sie Azure Blob Storage für die Migration zu von Azure Arc aktiviertem SQL Managed Instance.

Bei dieser Methode wird Azure Blob Storage als temporärer Speicher genutzt, in dem Sie Sicherungen erstellen und aus dem Sie Daten wiederherstellen können.

Voraussetzungen

Schritt 1: Stellen Sie Azure Blob Storage bereit.

  1. Befolgen Sie die Schritte unter Erstellen eines Azure Blob Storage-Kontos.
  2. Starten Sie Azure Storage-Explorer.
  3. Melden Sie sich bei Azure an, um auf den im vorherigen Schritt erstellten Blob Storage-Speicher zuzugreifen.
  4. Klicken Sie mit der rechten Maustaste auf das Blob Storage-Konto, und wählen Sie Blobcontainer erstellen aus, um einen neuen Container zu erstellen, in dem die Sicherungsdatei gespeichert wird.

Schritt 2: Rufen Sie die Storage Blob-Anmeldeinformationen ab.

  1. Klicken Sie im Azure Storage-Explorer mit der rechten Maustaste auf den gerade erstellten Blobcontainer, und wählen Sie Shared Access Signature abrufen aus.

  2. Wählen Sie Berechtigungen zum Lesen, Schreiben und Auflisten aus.

  3. Klicken Sie auf Erstellen

    Notieren Sie sich den URI und die Abfragezeichenfolge in diesem Bildschirm. Diese werden später benötigt. Klicken Sie auf die Schaltfläche Kopieren, um die Informationen beispielsweise in einem Editor oder in OneNote zu speichern.

  4. Schließen Sie das Fenster Shared Access Signature.

Schritt 3: Sichern Sie die Datenbankdatei im Azure Blob Storage-Speicher.

In diesem Schritt stellen wir eine Verbindung mit der SQL Server-Quellinstanz her und erstellen die Sicherungsdatei der Datenbank, die zur SQL Managed Instance-Instanz in Azure Arc migriert werden soll.

  1. Starten von Azure Data Studio

  2. Stellen Sie eine Verbindung mit der SQL Server-Instanz her, die die Datenbank enthält, die Sie zur SQL Managed Instance-Instanz in Azure Arc migrieren möchten.

  3. Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie Neue Abfrage aus.

  4. Bereiten Sie die Abfrage im folgenden Format vor, und ersetzen Sie die an <...> erkennbaren Platzhalter durch die Informationen der Shared Access Signature, die Sie in den vorherigen Schritten abgerufen haben. Nachdem Sie die Werte ersetzt haben, führen Sie die Abfrage aus.

    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. Bereiten Sie auch den Befehl BACKUP DATABASE wie folgt vor, um eine Sicherungsdatei im Blobcontainer zu erstellen. Nachdem Sie die Werte ersetzt haben, führen Sie die Abfrage aus.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Öffnen Sie den Azure Storage-Explorer, und überprüfen Sie, ob die im vorherigen Schritt erstellte Sicherungsdatei im Blobcontainer angezeigt wird.

Hier finden Sie weitere Informationen zum Erstellen von Sicherungen über URLs:

Schritt 4: Stellen Sie die Datenbank aus dem Azure Blob Storage-Speicher auf der SQL Managed Instance-Instanz – Azure Arc wieder her.

  1. Melden Sie sich in Azure Data Studio an, und stellen Sie eine Verbindung mit der SQL Managed Instance-Instanz in Azure Arc her.

  2. Erweitern Sie die Systemdatenbanken, klicken Sie mit der rechten Maustaste auf die master-Datenbank, und wählen Sie Neue Abfrage aus.

  3. Bereiten Sie im Fenster des Abfrage-Editors dieselbe Abfrage aus dem vorherigen Schritt vor, und führen Sie diese aus, um die Anmeldeinformationen zu erstellen.

    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. Bereiten Sie den unten angegebenen Befehl vor, um sicherzustellen, dass die Sicherungsdatei lesbar und intakt ist, und führen Sie ihn aus.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Bereiten Sie den Befehl RESTORE DATABASE wie folgt vor, und führen Sie diesen aus, um die Sicherungsdatei in einer Datenbank auf einer SQL Managed Instance-Instanz in Azure Arc wiederherzustellen.

    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
    

Methode 2: Kopieren der Sicherungsdatei in einen Azure SQL Managed Instance – Azure Arc-Pod mithilfe von kubectl

Diese Methode veranschaulicht, wie Sie mithilfe einer beliebigen Methode eine Sicherungsdatei erstellen und diese dann in den lokalen Speicher im Azure SQL Managed Instance-Pod kopieren, sodass Sie von dort eine Wiederherstellung ausführen können, die dem Verfahren in einem typischen Dateisystem unter Windows oder Linux sehr ähnlich ist. In diesem Szenario verwenden Sie den Befehl kubectl cp, um die Datei von einem Speicherort in das Dateisystem des Pods zu kopieren.

Voraussetzungen

  • Installieren und Konfigurieren von kubectl, um auf den Kubernetes-Cluster zu verweisen, in dem Azure Arc-Datendienste bereitgestellt werden
  • Auf dem SQL-Server, auf dem Sie die Sicherungsdatei erstellen möchten, muss ein Tool wie Azure Data Studio oder SQL Server Management Server installiert und mit dem SQL-Server verbunden sein. ODER im lokalen Dateisystem muss bereits eine erstellte BAK-Datei vorhanden sein.

Schritt 1: Sichern Sie die Datenbank, falls dies noch nicht geschehen ist.

Sichern Sie die SQL Server-Datenbank in Ihrem lokalen Dateipfad wie eine beliebige typische SQL Server-Sicherung auf einem Datenträger:

BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO

Schritt 2: Kopieren Sie die Sicherungsdatei in das Dateisystem des Pods.

Suchen Sie den Namen des Pods, in dem die SQL-Instanz bereitgestellt wird. Dieser sollte in der Regel wie folgt aussehen: pod/<sqlinstancename>-0.

Rufen Sie die Liste aller Pods ab, indem Sie folgenden Befehl ausführen:

kubectl get pods -n <namespace of data controller>

Beispiel:

Kopieren Sie die Sicherungsdatei aus dem lokalen Speicher in den SQL-Pod im 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

Schritt 3: Stellen Sie die Datenbank wieder her.

Bereiten Sie den Befehl RESTORE vor, und führen Sie diesen aus, um die Sicherungsdatei auf der Azure SQL Managed Instance-Instanz in Azure Arc wiederherzustellen.

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

Beispiel:

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

Weitere Informationen zu Features und Funktionen der von Azure Arc aktivierten SQL Managed Instance-Instanzen

Beginnen Sie mit der Erstellung eines Datencontrollers

Erstellen einer von Azure Arc aktivierte SQL Managed Instance-Instanz