Daten mithilfe von Sicherungsdateien zwischen SQL Server 2008 und Cloud SQL for SQL Server migrieren


In dieser Anleitung migrieren Sie Daten von SQL Server 2008 zu Cloud SQL for SQL Server 2017 Enterprise. Sie erfahren hier, wie Sie Daten aus SQL Server 2008 exportieren, die Daten in Cloud SQL for SQL Server 2017 importieren und prüfen, ob die Daten erfolgreich importiert wurden.

Informationen zum Migrieren von Daten aus SQL Server 2017 finden Sie unter Daten mithilfe von Sicherungsdateien zwischen SQL Server 2017 und Cloud SQL for SQL Server migrieren.

Diese Anleitung ist nützlich, wenn Sie Systemadministrator, Entwickler, Datenbankadministrator oder DevOps-Entwickler sind und Daten von SQL Server 2008 zu Cloud SQL for SQL Server 2017 migrieren oder ein Upgrade von SQL Server 2008 auf SQL Server 2017 durchführen möchten.

In der Anleitung wird davon ausgegangen, dass Sie eine Lizenz für SQL Server 2008 haben und mit den folgenden Produkten vertraut sind:

Ziele

  • Cloud SQL for SQL Server-Instanz erstellen
  • Cloud Storage-Bucket erstellen
  • Datenbank sichern
  • Datenbank in Cloud SQL for SQL Server importieren
  • Importierte Daten validieren

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Vorbereitung

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    ZUR PROJEKTAUSWAHL

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So bestätigen Sie die Abrechnung für Ihr Projekt.

  3. Aktivieren Sie die Cloud Storage API und die Cloud SQL API.

    APIS AKTIVIEREN

  4. Installieren und initialisieren Sie die Google Cloud CLI auf dem Server, auf dem SQL Server 2008 ausgeführt wird.

  5. Rufen Sie in der Google Cloud Console „Cloud Shell“ auf.

    Zu Cloud Shell

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung mit einer Eingabeaufforderung geöffnet. Cloud Shell ist eine Shell-Umgebung, in Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

Cloud SQL-Instanz und Cloud Storage-Bucket erstellen

  1. Erstellen Sie in Cloud Shell die Cloud SQL for SQL Server 2017 Enterprise-Instanz, zu der Sie später die Datenbank migrieren:

    gcloud beta sql instances create target  \
        --database-version=SQLSERVER_2017_ENTERPRISE \
        --cpu=2 \
        --memory=5GB \
        --root-password=sqlserver12@ \
        --zone=us-central1-f
    

    Es kann einige Minuten dauern, bis die Instanz erstellt ist. Der standardmäßige Root-Nutzername lautet sqlserver und das Standardpasswort sqlserver12@. In dieser Anleitung erstellen Sie die Instanz in der Zone us-central1-f. Weitere Informationen zu Zonen erhalten Sie unter Cloud-Standorte.

  2. Erstellen Sie einen Cloud Storage-Bucket, um die Sicherungsdatei zu speichern, bevor die Daten in Cloud SQL importiert werden:

    gsutil mb -b off -l US "gs://bucket-name"
    

    Ersetzen Sie bucket-name durch einen eindeutigen Namen für den Cloud Storage-Bucket.

Datenbank sichern

In diesem Abschnitt stellen Sie eine Verbindung zu Ihrem Windows-Server her, auf dem SQL Server 2008 ausgeführt wird, erstellen eine Sicherung Ihrer Datenbank und laden die Sicherung der Datenbank in Cloud Storage hoch.

  1. Stellen Sie mithilfe von RDP eine Verbindung zu dem Windows-Server her, auf dem SQL Server 2008 ausgeführt wird. Es kann sich um den primären Server oder einen Replikatserver handeln.

  2. Starten Sie das PowerShell-Befehlszeilentool.

  3. Erstellen Sie in dem Terminal, in dem Sie die gcloud CLI installiert haben, einen Sicherungsordner:

    mkdir c:\backup
    
  4. Erstellen Sie in dem Sicherungsordner eine Sicherung der Datenbank:

    osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
    

    Ersetzen Sie db-name durch den Namen der Datenbank, die Sie zu Cloud SQL migrieren möchten.

  5. Kopieren Sie die Sicherungsdatei in den Cloud Storage-Bucket:

    $PROJECT_ID = (gcloud sql instances describe target --format='value(project)' )
    gsutil cp -n c:\backup\db-name.bak gs://bucket-name
    

Sicherungsdatei in Cloud SQL importieren

  1. Rufen Sie in Cloud Shell den Namen des der Cloud SQL-Instanz zugeordneten Dienstkontos ab und speichern Sie diesen in einer Variable:

    SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \
        --format='value(serviceAccountEmailAddress)')
    echo $SVC_EMAIL_ADDRESS
    

    Google Cloud hat beim Erstellen der Cloud SQL-Instanz ein Dienstkonto erstellt. Sie verwenden das Dienstkonto, um der Cloud SQL-Instanz Zugriff auf die erforderlichen Ressourcen zu gewähren.

  2. Fügen Sie das Dienstkonto der Access Control List (ACL) des Cloud Storage-Buckets mit Schreibberechtigungen hinzu:

    gsutil acl ch -u ${SVC_EMAIL_ADDRESS}:W gs://bucket-name
    
  3. Fügen Sie das Dienstkonto mit Leseberechtigungen der Importdatei hinzu:

    gsutil acl ch -u $SVC_EMAIL_ADDRESS:R gs://bucket-name/db-name.bak
    
  4. Importieren Sie die Sicherungsdatei in die Cloud SQL-Datenbank:

    gcloud beta sql import bak target \
        gs://bucket-namedb-name.bak \
        --database db-name
    

Datenimport validieren

In diesem Abschnitt prüfen Sie, ob die Daten erfolgreich importiert wurden.

  1. Installieren Sie in Cloud Shell das SQL Server-Toolkit:

    sudo apt-get install -y mssql-tools
    

    Wenn Sie den Lizenzbedingungen zustimmen, geben Sie yes ein, wenn Sie dazu aufgefordert werden.

  2. Um sicher auf die Cloud SQL-Instanz zuzugreifen, laden Sie den Cloud SQL-Proxy herunter:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  3. Starten Sie den Cloud SQL-Proxy:

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. Führen Sie eine Abfrage aus, um die Daten in einer oder mehreren der Tabellen zu validieren:

    /opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
    

    Ersetzen Sie query-string durch die SQL-Abfrage, die Sie ausführen möchten.

    Wenn Sie dazu aufgefordert werden, geben Sie das Passwort sqlserver12@ ein.

Bereinigen

Am einfachsten können Sie die Abrechnung deaktivieren, wenn Sie das Google Cloud-Projekt löschen, das Sie für die Anleitung erstellt haben.

Projekt löschen

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte