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:
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
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.
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.
Hinweise
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So bestätigen Sie die Abrechnung für Ihr Projekt.
Aktivieren Sie die Cloud Storage API und die Cloud SQL API.
Installieren und initialisieren Sie die Google Cloud CLI auf dem Server, auf dem SQL Server 2008 ausgeführt wird.
Rufen Sie in der Google Cloud Console „Cloud Shell“ auf.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung mit einem Prompt geöffnet. Cloud Shell ist eine Shell-Umgebung, in der das 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
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 Standardpasswortsqlserver12@
. In dieser Anleitung erstellen Sie die Instanz in der Zoneus-central1-f
. Weitere Informationen zu Zonen erhalten Sie unter Cloud-Standorte.Erstellen Sie einen Cloud Storage-Bucket, um die Sicherungsdatei zu speichern, bevor die Daten in Cloud SQL importiert werden:
gcloud storage buckets create "gs://bucket-name" --location=US
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.
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.
Starten Sie das PowerShell-Befehlszeilentool.
Erstellen Sie in dem Terminal, in dem Sie die gcloud CLI installiert haben, einen Sicherungsordner:
mkdir c:\backup
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.Kopieren Sie die Sicherungsdatei in den Cloud Storage-Bucket:
$PROJECT_ID = (gcloud sql instances describe target --format='value(project)' ) gcloud storage cp c:\backup\db-name.bak gs://bucket-name --no-clobber
Sicherungsdatei in Cloud SQL importieren
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.
Gewähren Sie dem Dienstkonto die Berechtigung zum Schreiben in den Cloud Storage-Bucket:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyBucketWriter
Gewähren Sie dem Dienstkonto die Berechtigung zum Lesen von Dateien im Cloud Storage-Bucket:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyObjectReader
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.
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.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
Starten Sie den Cloud SQL-Proxy:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Nächste Schritte
- Weitere Informationen über vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für Cloud SQL for SQL Server.
- Weitere Informationen über das Konfigurieren einer privaten IP-Verbindung für Cloud SQL for SQL Server.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center