Auf dieser Seite wird gezeigt, wie Sie Daten mithilfe von SQL-Dumpdateien exportieren und in Cloud SQL-Instanzen importieren.
Hinweise
Exporte verwenden Datenbankressourcen, stören den normalen Datenbankbetrieb jedoch nicht, wenn die Instanz nicht unterdimensioniert ist.
Best Practices finden Sie unter Best Practices zum Importieren und Exportieren von Daten.
Prüfen Sie die Ergebnisse nach Abschluss eines Importvorgangs.
Daten aus Cloud SQL for PostgreSQL exportieren
Erforderliche Rollen und Berechtigungen für das Exportieren aus Cloud SQL for PostgreSQL
Zum Exportieren von Daten aus Cloud SQL in Cloud Storage muss der Nutzer, der den Export initiiert, eine der folgenden Rollen haben:
- Die Rolle Cloud SQL-Bearbeiter
- Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
cloudsql.instances.get
cloudsql.instances.export
Darüber hinaus muss das Dienstkonto für die Cloud SQL-Instanz eine der folgenden Rollen haben:
- Die IAM-Rolle (Identity and Access Management)
storage.objectAdmin
- Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
storage.objects.create
storage.objects.list
(nur für den parallelen Export von Dateien)storage.objects.delete
(nur für den parallelen Export von Dateien)
Informationen zu IAM-Rollen finden Sie unter Identitäts- und Zugriffsverwaltung.
Aus Cloud SQL for PostgreSQL in eine SQL-Dumpdatei exportieren
Wenn Sie mit Cloud SQL einen Export in der Google Cloud Console, mit der gcloud CLI oder der API ausführen, verwenden Sie das Dienstprogrammpg_dump
mit den Optionen, die erforderlich sind, damit die ausgegebene Exportdatei in Cloud SQL importiert werden kann.
Wenn Sie dagegen Ihre Daten in Cloud SQL importieren möchten, folgen Sie der Anleitung unter Daten von einem externen Datenbankserver exportieren, damit Ihre SQL-Dumpdatei korrekt für Cloud SQL formatiert wird.
So exportieren Sie Daten aus einer Datenbank in einer Cloud SQL-Instanz in eine SQL-Dumpdatei in einem Cloud Storage-Bucket:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Exportieren.
- Klicken Sie im Bereich Dateiformat auf SQL, um eine SQL-Dumpdatei zu erstellen.
- Wählen Sie im Drop-down-Menü im Bereich Zu exportierende Daten die Datenbank aus, aus der Sie Daten exportieren möchten.
- Wählen Sie im Bereich Ziel die Option Durchsuchen aus, um nach einem Cloud Storage-Bucket oder -Ordner für den Export zu suchen.
- Klicken Sie auf Exportieren, um mit dem Export zu beginnen.
gcloud
- Cloud Storage-Bucket erstellen
- Suchen Sie das Dienstkonto für die Cloud SQL-Instanz, aus der Sie exportieren. Dazu können Sie den Befehl
gcloud sql instances describe
ausführen. Suchen Sie in der Ausgabe nach dem FeldserviceAccountEmailAddress
.gcloud sql instances describe INSTANCE_NAME
- Weisen Sie mit
gsutil iam
die IAM-Rollestorage.objectAdmin
dem Dienstkonto zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Exportieren Sie die Datenbank in Ihren Cloud Storage-Bucket:
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
Mit dem Befehl
export sql
werden zwar Ansichten exportiert, jedoch keine Trigger oder gespeicherten Prozeduren. Verwenden Sie das Tool pg_dump, um Trigger und/oder gespeicherte Prozeduren zu exportieren.Weitere Informationen zur Verwendung des Befehls
export sql
finden Sie auf der Referenzseite des Befehlssql export sql
. - Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST v1
- Erstellen Sie einen Bucket für den Export:
gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Weisen Sie Ihrer Instanz die IAM-Rolle
legacyBucketWriter
für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Exportieren Sie Ihre Datenbank:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_dump_file: der Pfad zur SQL-Dumpdatei
- database_name_1: der Name einer Datenbank in der Cloud SQL-Instanz
- database_name_2: der Name einer Datenbank in der Cloud SQL-Instanz
- offload: aktiviert den serverlosen Export. Legen Sie
true
fest, um den serverlosen Export zu verwenden.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
JSON-Text anfordern:
{ "exportContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"], "offload": true | false } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie diese jetzt.
REST v1beta4
- Erstellen Sie einen Bucket für den Export:
gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Weisen Sie Ihrer Instanz die IAM-Rolle
storage.objectAdmin
für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Exportieren Sie Ihre Datenbank:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_dump_file: der Pfad zur SQL-Dumpdatei
- database_name_1: der Name einer Datenbank in der Cloud SQL-Instanz
- database_name_2: der Name einer Datenbank in der Cloud SQL-Instanz
- offload: aktiviert den serverlosen Export. Legen Sie
true
fest, um den serverlosen Export zu verwenden.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
JSON-Text anfordern:
{ "exportContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"], "offload": true | false } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
Daten in Cloud SQL for PostgreSQL importieren
Erforderliche Rollen und Berechtigungen für das Importieren in Cloud SQL for PostgreSQL
Zum Importieren von Daten aus Cloud Storage in Cloud SQL muss der Nutzer, der den Import initiiert, eine der folgenden Rollen haben:
- Die Rolle Cloud SQL-Bearbeiter
- Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
cloudsql.instances.get
cloudsql.instances.import
Darüber hinaus muss das Dienstkonto für die Cloud SQL-Instanz eine der folgenden Rollen haben:
storage.objectAdmin
IAM-Rolle.- Eine benutzerdefinierte Rolle mit folgenden Berechtigungen:
storage.objects.get
storage.objects.list
(nur für den parallelen Import von Dateien)
Informationen zu IAM-Rollen finden Sie unter Identitäts- und Zugriffsverwaltung.
SQL-Dumpdatei in Cloud SQL for PostgreSQL importieren
SQL-Dateien sind Nur-Text-Dateien mit einer Abfolge von SQL-Befehlen.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Importieren.
- Geben Sie im Abschnitt Datei auswählen, aus der Sie Daten importieren möchten den Pfad zum Bucket und zur SQL-Dumpdatei für den Import ein oder wechseln Sie zu einer vorhandenen Datei.
Sie können eine komprimierte Datei (
.gz
) oder eine unkomprimierte Datei (.sql
) importieren. - Wählen Sie unter Format die Option SQL aus.
Wählen Sie die Datenbank aus, in die die Daten importiert werden sollen.
Dadurch führt Cloud SQL vor dem Import die Anweisung
USE DATABASE
aus.Wählen Sie bei Bedarf einen Nutzer für den Import aus.
Wenn Ihre Importdatei Anweisungen enthält, die von einem bestimmten Nutzer ausgeführt werden müssen, können Sie mit diesem Feld einen Nutzer angeben.
- Klicken Sie auf Importieren, um den Import zu starten.
gcloud
- Erstellen Sie einen Cloud Storage-Bucket.
Laden Sie die Datei in den Bucket hoch.
Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.
- Beschreiben Sie die Instanz, in die Sie Daten importieren:
gcloud sql instances describe INSTANCE_NAME
- Kopieren Sie das Feld
serviceAccountEmailAddress
. - Weisen Sie mit
gsutil iam
die IAM-Rollestorage.objectAdmin
dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.gsutil iam ch serviceAccount:SERVICE-ACCOUNT:objectAdmin \ gs://BUCKET_NAME
- Importieren Sie die Datenbank:
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
Informationen zum Verwenden des Befehls
import sql
finden Sie auf der Referenzseite des Befehlssql import sql
.Wenn durch den Befehl ein Fehler wie
ERROR_RDBMS
zurückgegeben wird, prüfen Sie die Berechtigungen. Dieser Fehler wird oft durch Berechtigungsprobleme verursacht. - Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gsutil iam
.
REST Version 1
-
Erstellen Sie eine SQL-Dumpdatei. In der verknüpften Anleitung werden bestimmte Flags festgelegt, durch die die Dumpdatei mit Cloud SQL kompatibel wird.
- Wenn Sie Daten von einem lokalen PostgreSQL-Server importieren:
- Erstellen Sie eine SQL-Dumpdatei anhand der Anleitung unter Daten mit pg_dump exportieren.
- Erstellen Sie einen Bucket in Cloud Storage. Folgen Sie dazu der Anleitung unter Buckets erstellen.
- Laden Sie die SQL-Dumpdatei in den Cloud Storage-Bucket hoch. Gehen Sie dabei wie unter Objekte hochladen beschrieben vor.
- Erstellen Sie einen Cloud Storage-Bucket.
Laden Sie die Datei in den Bucket hoch.
Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.
- Weisen Sie Ihrer Instanz die IAM-Rollen
legacyBucketWriter
undobjectViewer
für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Importieren Sie die Dumpdatei:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_sql_file: der Pfad zur SQL-Datei
- database_name: der Name einer Datenbank in der Cloud SQL-Instanz
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
JSON-Text anfordern:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Wenn Sie einen anderen Nutzer für den Import verwenden möchten, geben Sie das Attribut
Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.importContext.importUser
an. - Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.
REST v1beta4
-
Erstellen Sie eine SQL-Dumpdatei. In der verknüpften Anleitung werden bestimmte Flags festgelegt, durch die die Dumpdatei mit Cloud SQL kompatibel wird.
- Wenn Sie Daten von einem lokalen PostgreSQL-Server importieren:
- Erstellen Sie eine SQL-Dumpdatei anhand der Anleitung unter Daten mit pg_dump exportieren.
- Erstellen Sie einen Bucket in Cloud Storage. Folgen Sie dazu der Anleitung unter Buckets erstellen.
- Laden Sie die SQL-Dumpdatei in den Cloud Storage-Bucket hoch. Gehen Sie dabei wie unter Objekte hochladen beschrieben vor.
- Erstellen Sie einen Cloud Storage-Bucket.
Laden Sie die Datei in den Bucket hoch.
Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.
- Weisen Sie Ihrer Instanz die IAM-Rolle
storage.objectAdmin
für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Importieren Sie die Dumpdatei:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_sql_file: der Pfad zur SQL-Datei
- database_name: der Name einer Datenbank in der Cloud SQL-Instanz
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
JSON-Text anfordern:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Wenn Sie einen anderen Nutzer für den Import verwenden möchten, geben Sie das Attribut
Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.importContext.importUser
an. - Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.
Nächste Schritte
- Status der Import- und Exportoperationen überprüfen
- Best Practices zum Importieren und Exportieren von Daten
- Weitere Informationen zu Cloud Storage
- Bekannte Probleme bei Importen und Exporten