Mithilfe von SQL-Dumpdateien exportieren und importieren

Auf dieser Seite wird gezeigt, wie Sie Daten mithilfe von SQL-Dumpdateien exportieren und in Cloud SQL-Instanzen importieren.

Der Export von Cloud SQL in eine SQL-Dumpdatei wird für SQL Server nicht unterstützt.

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 SQL Server exportieren

Der Export von Cloud SQL in eine SQL-Dumpdatei wird für SQL Server nicht unterstützt.

Daten nach Cloud SQL for SQL Server importieren

Erforderliche Rollen und Berechtigungen für Importe in Cloud SQL for SQL Server

Zum Importieren von Daten aus Cloud Storage in Cloud SQL muss der Nutzer, der den Import initiiert, eine der folgenden Rollen haben:

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 Stripe-Import)

Informationen zu IAM-Rollen finden Sie unter Identitäts- und Zugriffsverwaltung.

SQL-Dumpdatei in Cloud SQL for SQL Server importieren

SQL-Dateien sind Nur-Text-Dateien mit einer Abfolge von SQL-Befehlen.

Im folgenden Verfahren müssen Sie eine vorhandene Datenbank angeben, aus der Ihre SQL-Dateien importiert werden sollen.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Importieren.
  4. 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.

  5. Wählen Sie unter Format die Option SQL aus.
  6. 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.

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

  8. Klicken Sie auf Importieren, um den Import zu starten.

gcloud

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Beschreiben Sie die Instanz, in die Sie Daten importieren:
    gcloud sql instances describe INSTANCE_NAME
  4. Kopieren Sie das Feld serviceAccountEmailAddress.
  5. Weisen Sie mit gsutil iam die IAM-Rolle storage.objectAdmin dem Dienstkonto für den Bucket zu.
    gsutil iam ch serviceAccount:SERVICE-ACCOUNT:objectAdmin \
    gs://BUCKET_NAME
      
    Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  6. 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 Befehls sql 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.

  7. Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit gsutil iam.

REST Version 1

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

  3. Weisen Sie Ihrer Instanz die IAM-Rollen legacyBucketWriter und objectViewer für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden.
  4. 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:

    Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.
  5. Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.

REST v1beta4

  1. Erstellen Sie einen Cloud Storage-Bucket.
  2. Laden Sie die Datei in den Bucket hoch.

    Informationen zum Hochladen von Dateien in Buckets finden Sie unter Objekte hochladen.

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

    Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.
  5. Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese jetzt.

Nächste Schritte