Auf dieser Seite wird gezeigt, wie Sie Daten mithilfe von BAK-Dateien in Cloud SQL-Instanzen ex- und importieren und wie Sie Daten über Transaktionslogdateien in Cloud SQL-Instanzen importiert.
Hinweis
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
Cloud SQL unterstützt den Export integrierter BAK-Dateien.
Wenn Sie eine neue Instanz aus einer exportierten Datei erstellen möchten, sollten Sie eine Sicherung in einer anderen Instanz wiederherstellen oder die Instanz klonen.
Cloud SQL führt während des Exports eine vollständige Sicherung der ausgewählten Datenbank aus.
Erforderliche Rollen und Berechtigungen für den Export von Cloud SQL for SQL Server
Damit Daten aus Cloud SQL in Cloud Storage exportiert werden können, 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 Rolle
storage.objectAdmin
für die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) - Eine
- benutzerdefinierte Rolle mit folgenden Berechtigungen:
storage.objects.create
storage.objects.list
(nur für Stripe-Export)storage.objects.delete
(nur für Stripe-Export)storage.buckets.getIamPolicy
(nur für den Export von Transaktionsprotokollen)storage.buckets.setIamPolicy
(nur für den Export von Transaktionsprotokollen)
Informationen zu IAM-Rollen finden Sie unter Identity and Access Management.
Daten aus Cloud SQL for SQL Server in eine BAK-Datei exportieren
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 BAK.
- Wählen Sie im Drop-down-Menü im Abschnitt 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
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectAdmin
dem Dienstkonto zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Exportieren Sie die Datenbank:
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FILENAME \ --database=DATABASE_NAME
Informationen zum Verwenden des Befehls
gcloud sql export bak
finden Sie auf der Referenzseite des Befehls. - Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST Version 1
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON-Text anfordern:
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.
REST v1beta4
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON-Text anfordern:
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.
Differenzielle Datenbanksicherungen exportieren
Bevor Sie eine differenzielle Datenbanksicherung exportieren, müssen Sie eine differenzielle Basis exportieren.
Wenn andere Dienste oder Features wie die Wiederherstellung zu einem bestimmten Zeitpunkt und Lesereplikate eine vollständige Sicherung zwischen dem vollständigen Sicherungsexport und dem differenziellen Sicherungsexport auslösen, müssen Sie den vollständigen Sicherungsexport noch einmal auslösen.
Das folgende Beispiel verdeutlicht dies:
- Sie fragen um 7:00 Uhr morgens eine vollständige Sicherung an.
- Sie aktivieren die Wiederherstellung zu einem bestimmten Zeitpunkt um 9:00 Uhr. Dadurch wird eine vollständige Sicherung Ihrer Instanz ausgelöst.
- Sie versuchen um 17:00 Uhr eine differenzielle Sicherung durchzuführen. Diese Exportanfrage schlägt mit einer Fehlermeldung fehl, da die letzte vollständige Sicherung durch die Wiederherstellung eines bestimmten Zeitpunkts ausgelöst wurde.
Cloud SQL unterstützt keine Datenbankexportanfragen mit --differential-base
oder --bak-type=DIFF
auf Replikationsinstanzen.
gcloud
- Einen 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
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectAdmin
dem Dienstkonto zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. Exportieren Sie die Datenbank als differenzielle Basis.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --differential-base
Informationen zum Verwenden des Befehls
gcloud sql export bak
finden Sie auf der Referenzseite des Befehls.Exportieren Sie eine differenzielle Sicherung.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF
Informationen zum Verwenden des Befehls
gcloud sql export bak
finden Sie auf der Referenzseite des Befehls.- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST Version 1
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 Ihr vollständiges Datenbank-Backup als differenzielle Basis.
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_BAK_FILE: Pfad zur SQL-BAK-Datei
- DATABASE_NAME: der Name der Datenbank in der Cloud SQL-Instanz
offload
: Wenn Sie den serverlosen Export aktivieren und verwenden möchten, setzen Sie diesen Wert auf TRUE.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON-Text der Anfrage:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "databases": ["DATABASE_NAME"] "offload": TRUE | FALSE "bakExportOptions": { "differentialBase":true } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Exportieren Sie eine differenzielle Sicherung.
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 der Anfrage:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST v1beta4
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 Ihr vollständiges Datenbank-Backup als differenzielle Basis.
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: Wenn Sie den serverlosen Export aktivieren und verwenden möchten, setzen Sie den Wert auf
true
.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
JSON-Text der Anfrage:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { "differentialBase":true } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- So exportieren Sie eine differenzielle Sicherung:
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: Wenn Sie serverlosen Export aktivieren und verwenden möchten, setzen Sie diesen Wert auf
true
.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
JSON-Text der Anfrage:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_dump_file", "databases": ["database_name"] "offload": true | false "bakExportOptions": { bakType:"DIFF" } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
Transaktionslogs exportieren
Sie können die Transaktionslogs für Cloud SQL Enterprise Plus-Instanzen exportieren, für die die Wiederherstellung zu einem bestimmten Zeitpunkt (Point-in-Time-Recovery, PITR) aktiviert ist und deren Logs in Cloud Storage gespeichert werden.
gcloud
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Suchen Sie das Dienstkonto für die Cloud SQL-Instanz, aus der Sie exportieren.
Dazu können Sie den Befehl
gcloud sql instances describe
verwenden. Suchen Sie in der Ausgabe nach dem FeldserviceAccountEmailAddress
.gcloud sql instances describe INSTANCE_NAME
- Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.Admin
dem Dienstkonto zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Richtlinien für Bucket festlegen und verwalten. Exportieren Sie die Transaktionsprotokolle.
gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_PATH --export-log-start-time=START_DATE_AND_TIME / --export-log-end-time=END_DATE_AND_TIME / --database=DATABASE_NAME --bak-type=TLOG
Informationen zum Verwenden des Befehls
gcloud sql export bak
finden Sie auf der Referenzseite des Befehls.- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST
Einen Cloud Storage-Bucket erstellen
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.Admin
für Ihren Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Richtlinien für Bucket festlegen und verwalten. - Exportieren Sie die Transaktionsprotokolle.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- FOLDER_PATH: der Pfad zum Ordner im Cloud Storage-Bucket. Cloud SQL exportiert die Transaktionsprotokolle in diesen Ordner.
- DATABASE_NAME: Name der Datenbank in der Cloud SQL-Instanz.
exportLogStartTime
: Das Startdatum und die Startzeit der zu exportierenden Transaktionsprotokolle.exportLogEndTime
: Das Enddatum und die Endzeit der zu exportierenden Transaktionslogs.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON-Text der Anfrage:
{ "exportContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/FOLDER_PATH", "databases": ["DATABASE_NAME"] "bakExportOptions": { bakType:"TLOG" exportLogStartTime: START_DATE_AND_TIME exportLogEndTime: END_DATE_AND_TIME } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
Stripe-Export verwenden
Vorteile des Stripe-Exports:
- Geringerer Zeitaufwand für den Abschluss von Vorgängen
- Datenbanken mit mehr als 5 TB können exportiert werden
Ein potenzieller Nachteil des Stripe-Exports besteht darin, dass die Sicherung nicht aus einer Datei besteht, sondern aus mehreren Dateien besteht. Dieses Set wird als "Stripeset" bezeichnet; Siehe Geräte in einem Stripesetmedium (Stripeset) sichern. In Cloud SQL exportieren Sie die Daten in einen leeren Ordner in Cloud Storage, anstatt eine einzelne Datei zu generieren. Weitere Informationen finden Sie unter Stripe-Export verwenden.
Abläufe planen
Ein Stripe-Export kann die Leistung von Exporten verbessern. Wenn Ihr Anwendungsfall jedoch eine einzelne Ausgabedatei erfordert oder Ihre Datenbank weniger als 5 TB groß ist und eine schnellere Leistung nicht kritisch ist, sollten Sie einen Nicht-Stripe-Export verwenden.
Wenn Sie sich für einen Stripe-Export entscheiden, berücksichtigen Sie die Anzahl der Stripes. Sie können diesen Wert im gcloud CLI-Befehl oder im REST API-Aufruf angeben. Wenn Sie jedoch eine optimale Anzahl von Stripes für die Leistung wünschen oder eine Zahl nicht kennen, lassen Sie die Zahl weg. Eine optimale Anzahl von Stripes wird automatisch festgelegt.
Derzeit werden von Cloud SQL for SQL Server 64 Stripes unterstützt.
Stripe-Export verwenden
gcloud
- Einen Cloud Storage-Bucket erstellen
- Suchen Sie das Dienstkonto für die Cloud SQL-Instanz, aus der Sie exportieren. Führen Sie dazu den Befehl
gcloud sql instances describe
aus. Suchen Sie in der Ausgabe nach dem FeldserviceAccountEmailAddress
.gcloud sql instances describe INSTANCE_NAME
- Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectAdmin
dem Dienstkonto zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Zum Exportieren der Datenbank geben Sie den Parameter
--striped
und/oder einen Wert für--stripe_count
an. Das Festlegen eines Werts für--stripe_count
impliziert, dass der Parameter--striped
beabsichtigt ist. Wenn Sie--no-striped
angeben, aber einen Wert für--stripe_count
angeben, tritt ein Fehler auf:gcloud beta sql export bak INSTANCE_NAME \ gs://BUCKET_NAME/STRIPED_EXPORT_FOLDER \ --database=DATABASE_NAME --striped --stripe_count=NUMBER
Informationen zum Verwenden des Befehls
gcloud beta sql export bak
finden Sie auf der Referenzseite des Befehls. - Wenn Sie die zuvor festgelegte IAM-Rolle nicht beibehalten möchten, entfernen Sie sie jetzt.
REST Version 1
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 dabei folgende Werte für die Anfragedaten
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_folder: Der Pfad zum Ordner (im Cloud Storage-Bucket), in den der Stripeset exportiert werden soll.
- database_name: der Name einer Datenbank in Ihrer Cloud SQL-Instanz
- true | false: Legen Sie
true
fest, um Stripe-Export zu verwenden. Wenn Sietrue
keine Stripe-Anzahl angeben, wird automatisch eine optimale Anzahl von Stripes festgelegt. - number_of_stripes: die Anzahl der zu verwendenden Stripes Wenn angegeben, wird
striped
alstrue
impliziert
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export
JSON-Text anfordern:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
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.
REST v1beta4
- Cloud Storage-Bucket für den Export erstellen.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_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 dabei folgende Werte für die Anfragedaten
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
- bucket_name: der Name des Cloud Storage-Buckets
- path_to_folder: der Pfad zum Ordner (im Cloud Storage-Bucket), in den der Stripe-Satz exportiert werden soll
- database_name: der Name einer Datenbank in Ihrer Cloud SQL-Instanz
- true | false: Legen Sie
true
fest, um Stripe-Export zu verwenden. Wenn Sietrue
keine Stripe-Anzahl angeben, wird automatisch eine optimale Anzahl von Stripes festgelegt. - number_of_stripes: die Anzahl der zu verwendenden Stripes Wenn angegeben, wird
striped
alstrue
impliziert
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export
JSON-Text anfordern:
{ "exportContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "databases": ["database_name"], "bakExportOptions": { "striped": true | false, "stripe_count": ["number_of_stripes"] } } }
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.
In Cloud SQL for SQL Server importieren
Erforderliche Rollen und Berechtigungen für Importe in Cloud SQL for SQL Server
Wenn Sie Daten aus Cloud Storage in Cloud SQL importieren möchten, muss der Nutzer, der den Import initiiert, eine der folgenden Rollen haben:
- Die Rolle Cloud SQL-Administrator
- 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 Stripe-Import)
Informationen zu IAM-Rollen finden Sie unter Identity and Access Management.
Daten aus einer BAK-Datei in Cloud SQL for SQL Server importieren
Weitere Informationen zum Stripe-Import finden Sie unter Stripe-Import verwenden.
Es stehen verschiedene Import-Frameworks zur Verfügung. Cloud SQL for SQL Server unterstützt beispielsweise Change Data Capture (CDC) für die folgenden Datenbankversionen:
- SQL Server 2017 Standard
- SQL Server 2017 Enterprise
- SQL Server 2019 Standard
- SQL Server 2019 Enterprise
Beim Importieren einer CDC-fähigen Datenbank wird das Flag KEEP_CDC beibehalten.
Mit der Instanzversion Microsoft SQL Server Enterprise Edition können Sie verschlüsselte BAK-Dateien importieren.
In Microsoft SQL Server Standard Edition-Instanzen können ebenfalls verschlüsselte BAK-Dateien importiert werden, jedoch nur über die gcloud CLI.
Die einzigen unterstützten BAK-Endungen sind .bak
und .bak.gz
. GPG-verschlüsselte Sicherungen werden derzeit nicht unterstützt.
Für die folgende Anleitung müssen Sie eine neue Datenbank angeben. Erstellen Sie vor dem Import der BAK-Datei noch keine Datenbank.
So importieren Sie Daten mithilfe einer BAK-Datei in eine Cloud SQL-Instanz:
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 Feld Datei auswählen, aus der importiert werden soll den Pfad zum Bucket und zur BAK-Datei für den Import ein.
Sie können eine komprimierte Datei (
.gz
) oder eine unkomprimierte verwenden. Wählen Sie im Bereich Dateiformat die Option BAK aus.
- Geben Sie im Bereich Ziel die Datenbank in Ihrer Cloud SQL-Instanz an, in die Sie die BAK-Datei importieren möchten.
- Klicken Sie auf Importieren, um den Import zu starten.
gcloud
Erstellen Sie ein Cloud Storage-Bucket für den Import.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Prüfen Sie, ob die erforderlichen Rollen und Berechtigungen konfiguriert sind.
- Führen Sie ein Upload der Daten aus der BAK-Datei in den Bucket aus.
- Beschreiben Sie die Instanz, in die Sie Daten importieren:
gcloud sql instances describe INSTANCE_NAME
- Kopieren Sie das Feld
serviceAccountEmailAddress
. - Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectViewer
dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Importieren Sie die Daten aus der Datei:
Verwenden Sie für verschlüsselte Importe den folgenden Befehl:gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME --database=DATABASE_NAME --cert-path=gs://BUCKET_NAME/CERTIFICATE_NAME --pvk-path=gs://BUCKET_NAME/KEY_NAME --prompt-for-pvk-password
- Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gcloud storage buckets remove-iam-policy-binding
.
REST Version 1
- 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 Daten aus der Datei:
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_bak_file: der Pfad zur BAK-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": "BAK", "uri": "gs://bucket_name/path_to_bak_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.
REST v1beta4
- 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 Daten aus der Datei:
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_bak_file: der Pfad zur BAK-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": "BAK", "uri": "gs://bucket_name/path_to_bak_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.
Wenn ein Fehler wie z. B. ERROR_RDBMS
angezeigt wird, prüfen Sie, ob die BAK-Datei im Bucket vorhanden ist und Sie die richtigen Berechtigungen für den Bucket haben. Hilfe zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.
Differenzielle Datenbanksicherungen importieren
Bevor Sie eine differenzielle Datenbanksicherung importieren, müssen Sie ein vollständiges Backup importieren. Ihre Datenbank muss nach dem Import des vollständigen Backups den Status RESTORING
haben.
Cloud SQL unterstützt nicht den Import differenzieller Datenbanksicherungen auf Instanzen, für die die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist. Dies liegt daran, dass das Importieren einer Datenbanksicherung mit --no-recovery
eine Voraussetzung für den Import von differenziellen Datenbanksicherungen ist. Außerdem können Sie die Wiederherstellung zu einem bestimmten Zeitpunkt für eine Instanz nicht aktivieren, wenn sich die Datenbank im Status RESTORING
befindet.
Führen Sie im Fall eines Importfehlers einen der folgenden Schritte aus, um die Wiederherstellung zu einem bestimmten Zeitpunkt zu aktivieren:
Stellen Sie die Datenbank, die sich im Status
RESTORING
befindet, mit dem Flag--recovery-only
online.Entfernen Sie die Datenbank.
Führen Sie folgende Schritte aus, um Daten mithilfe einer differenziellen Datenbanksicherung in eine Cloud SQL-Instanz zu importieren:
gcloud
Erstellen Sie ein Cloud Storage-Bucket für den Import.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Prüfen Sie, ob die erforderlichen Rollen und Berechtigungen konfiguriert sind.
- Führen Sie ein Upload der Daten aus der BAK-Datei in den Bucket aus.
- Beschreiben Sie die Instanz, in die Sie Daten importieren:
gcloud sql instances describe INSTANCE_NAME
- Kopieren Sie das Feld
serviceAccountEmailAddress
. - Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectViewer
dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. Importieren Sie ein vollständiges Backup mit
--no-recovery
.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
-
Importieren Sie eine differenzielle Datenbanksicherung.
gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=DIFF --no-recovery
-
Verwenden Sie das
--recovery-only
-Flag, um die importierte Datenbank online zu stellen. Dieser Schritt ist optional und muss nur ausgeführt werden, wenn sich Ihre Datenbank im StatusRESTORING
befindet.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gcloud storage buckets remove-iam-policy-binding
.
REST Version 1
- 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 ein vollständiges Backup mit
noRecovery
.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_BAK_FILE: Pfad zur BAK-Datei.
- DATABASE_NAME: 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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Importieren Sie eine differenzielle Datenbanksicherung.
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_bak_file: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Verwenden Sie
recoveryOnly
, um die importierte Datenbank online zu stellen. Dieser Schritt ist optional und muss nur ausgeführt werden, wenn sich Ihre Datenbank im StatusRESTORING
befindet.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_BAK_FILE: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.
REST v1beta4
- 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 ein vollständiges Backup mit
noRecovery
.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT-ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_BAK_FILE: Pfad zur BAK-Datei.
- DATABASE_NAME: 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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Importieren Sie eine differenzielle Datenbanksicherung.
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_bak_file: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_bak_file", "database": "database_name" "bakImportOptions": { "bakType": "DIFF", "noRecovery": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Verwenden Sie
recoveryOnly
, um die importierte Datenbank online zu stellen. Dieser Schritt ist optional und muss nur ausgeführt werden, wenn sich Ihre Datenbank im StatusRESTORING
befindet.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_BAK_FILE: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.
Wenn ein Fehler wie z. B. ERROR_RDBMS
angezeigt wird, prüfen Sie, ob die BAK-Datei im Bucket vorhanden ist und Sie die richtigen Berechtigungen für den Bucket haben. Hilfe zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.
Transaktionslog-Backups importieren
Ein Transaktionslog dokumentiert die Transaktionen einer Datenbank und die von den einzelnen Transaktionen vorgenommenen Änderungen. Sie können sie verwenden, um die Datenbankkonsistenz nach einem Systemausfall wiederherzustellen.
Führen Sie folgende Schritte aus, um Daten mithilfe eines Transaktions-Backups in eine Cloud SQL-Instanz zu importieren:
gcloud
Optional: Erstellen Sie ein Cloud Storage-Bucket für den Import.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
- Laden Sie die Backup-Dateien in den Bucket hoch.
- Beschreiben Sie die Instanz, in die Sie Daten importieren:
gcloud sql instances describe INSTANCE_NAME
- Kopieren Sie das Feld
serviceAccountEmailAddress
. - Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectViewer
dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. Importieren Sie ein vollständiges Backup mit dem Parameter
--no-recovery
. Prüfen Sie, ob Ihre Datenbank nach dem Import des vollständigen Backups den StatusRESTORING
hat.gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=FULL --no-recovery
- Optional: Differenzielle Sicherung importieren.
-
Importieren Sie ein Transaktions-Backup.
Ersetzen Sie Folgendes:gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \ --database=DATABASE_NAME --bak-type=TLOG --stop-at=STOP_AT_TIMESTAMP --stop-at-mark=STOP_AT_MARK_NAME --no-recovery
- INSTANCE_NAME: der Name der Instanz.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- BACKUP_FILENAME: der Name der Sicherungsdatei.
- DATABASE_NAME: Name einer Datenbank in der Cloud SQL-Instanz.
- STOP_AT_TIMESTAMP: Der Zeitstempel, an dem der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; der Wert muss das RFC 3339-Format nutzen.
- STOP_AT_MARK_NAME: Die markierte Transaktion, an der der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; es kann einen beliebigen String als Wert verwenden. Wenn der Wert das Format
lsn:log-sequence-number
hat, wird der Import des Transaktionslogs bei der angegebenen Logsequenznummer gestoppt.
-
Optional: Verwenden Sie das
--recovery-only
-Flag, um die importierte Datenbank online zu stellen. Führen Sie diesen Schritt nur aus, wenn sich Ihre Datenbank im StatusRESTORING
befindet.gcloud sql import bak INSTANCE_NAME \ --database=DATABASE_NAME --recovery-only
- Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gcloud storage buckets remove-iam-policy-binding
.
REST Version 1
- 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.
Die vollständige Liste der Parameter für die Anfrage finden Sie auf der Seite instances:insert.
-
Importieren Sie ein vollständiges Backup mit
noRecovery
. Prüfen Sie, ob Ihre Datenbank nach dem Import des vollständigen Backups den StatusRESTORING
hat.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_BAK_FILE: Pfad zur BAK-Datei.
- DATABASE_NAME: 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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Optional: Differenzielle Sicherung importieren.
- Importieren Sie ein Transaktions-Backup.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_TLOG_FILE: der Pfad zur Transaktionsprotokolldatei.
- DATABASE_NAME: Name einer Datenbank in der Cloud SQL-Instanz.
- STOP_AT_TIMESTAMP: Der Zeitstempel, an dem der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; der Wert muss das RFC 3339-Format nutzen.
- STOP_AT_MARK_NAME: Die markierte Transaktion, an der der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; es kann einen beliebigen String als Wert verwenden. Wenn der Wert das Format
lsn:log-sequence-number
hat, wird der Import des Transaktionslogs bei der angegebenen Logsequenznummer gestoppt.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
JSON-Text der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_TLOG_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "bakType": "TLOG", "stopAt": STOP_AT_TIMESTAMP, "stopAtMark": STOP_AT_MARK_NAME, "noRecovery": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Wiederholen Sie diesen Schritt, bis alle Transaktionslog-Sicherungen importiert wurden. Optional: Verwenden Sie
recoveryOnly
, um die importierte Datenbank online zu stellen. Führen Sie diesen Schritt nur aus, wenn sich Ihre Datenbank im StatusRESTORING
befindet.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_BAK_FILE: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.
REST v1beta4
- 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 ein vollständiges Backup mit
noRecovery
. Prüfen Sie, ob Ihre Datenbank nach dem Import des vollständigen Backups den StatusRESTORING
hat.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT-ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_BAK_FILE: Pfad zur BAK-Datei.
- DATABASE_NAME: 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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "noRecovery": true, "bakType": "FULL", } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Optional: Differenzielle Sicherung importieren.
- Importieren Sie ein Transaktions-Backup. Hier sind
stopAt
undstopAtMark
optionale Felder.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Projekt-ID.
- INSTANCE_ID: Instanz-ID.
- BUCKET_NAME: der Name des Cloud Storage-Buckets.
- PATH_TO_BAK_FILE: Pfad zur BAK-Datei.
- DATABASE_NAME: Name einer Datenbank in der Cloud SQL-Instanz.
- STOP_AT_TIMESTAMP: Der Zeitstempel, an dem der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; der Wert muss das RFC 3339-Format nutzen.
- STOP_AT_MARK_NAME: Die markierte Transaktion, an der der Import des Transaktionslogs beendet werden muss. Dies ist ein optionales Feld; es kann einen beliebigen String als Wert verwenden. Wenn der Wert das Format
lsn:log-sequence-number
hat, wird der Import des Transaktionslogs bei der angegebenen Logsequenznummer gestoppt.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import
JSON-Text der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "bakType": "TLOG", "stopAt": STOP_AT_TIMESTAMP, "stopAtMark":STOP_AT_MARK_NAME, "noRecovery": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
Wiederholen Sie diesen Schritt, bis alle Transaktionslog-Sicherungen importiert wurden. Optional: Verwenden Sie
recoveryOnly
, um die importierte Datenbank online zu stellen. Führen Sie diesen Schritt nur aus, wenn sich Ihre Datenbank im StatusRESTORING
befindet.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_BAK_FILE: der Pfad zur BAK-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 der Anfrage:
{ "importContext": { "fileType": "BAK", "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE", "database": "DATABASE_NAME" "bakImportOptions": { "recoveryOnly": true, } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
und führen Sie den folgenden Befehl aus:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand ContentSie sollten in etwa folgende JSON-Antwort erhalten:
- Wenn Sie die zuvor festgelegten IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese.
Stripe-Import verwenden
Vorteile des Stripe-Imports:
- Geringerer Zeitaufwand für den Abschluss von Vorgängen
- Datenbanken mit mehr als 5 TB können importiert werden
Ein möglicher Nachteil des Stripe-Imports ist, dass alle Dateien im entfernten Satz (und nicht eine einzelne Datei) in denselben Ordner in Ihrem Cloud Storage-Bucket hochgeladen werden müssen, bevor Sie den Import durchführen.
Abläufe planen
In den meisten Anwendungsfällen ermöglicht der Stripe-Import eine bessere Leistung ohne Nachteile. Wenn Sie jedoch keine Daten aus einem Stripeset von einer bestimmten Instanz sichern können oder Ihre Datenbank weniger als 5 TB groß ist und eine höhere Leistung keine kritische Leistung darstellt, sollten Sie einen Nicht-Stripe-Import verwenden.
Stripe-Import verwenden
gcloud
Erstellen Sie ein Cloud Storage-Bucket für den Import.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
Dieser Schritt ist nicht erforderlich, wird aber dringend empfohlen, damit kein Zugriff auf andere Daten möglich ist.
- Prüfen Sie, ob die erforderlichen IAM-Rollen und -Berechtigungen konfiguriert sind.
- Erstellen Sie einen neuen Ordner in Ihrem Bucket.
- Zum Importieren der Datenbank laden Sie die Dateien des Stripesets (der Datenbank) in den neuen Ordner hoch. Achten Sie darauf, dass alle Dateien in den Ordner hochgeladen wurden und der Ordner keine zusätzlichen Dateien enthält.
- Geben Sie die Instanz an, aus der Sie exportieren möchten:
gcloud sql instances describe INSTANCE_NAME
- Kopieren Sie das Feld
serviceAccountEmailAddress
. - Weisen Sie mit
gcloud storage buckets add-iam-policy-binding
die IAM-Rollestorage.objectViewer
dem Dienstkonto für den Bucket zu. Weitere Informationen zum Festlegen von IAM-Berechtigungen finden Sie unter IAM-Berechtigungen verwenden. - Importieren Sie die Daten aus dem Ordner. Der Unterschied zu einem Nicht-Stripe-Import sieht so aus: Der URI verweist auf den Namen des Ordners, in den das Stripeset hochgeladen wurde, statt auf eine einzelne Datei. Dabei geben Sie den
--striped
-Parameter an:gcloud beta sql import bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_NAME \ --database=DATABASE_NAME --striped
- Wenn Sie die zuvor festgelegten Cloud IAM-Berechtigungen nicht beibehalten möchten, entfernen Sie diese mit
gcloud storage buckets remove-iam-policy-binding
.
REST Version 1
- 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 Daten aus der Datei:
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_folder: der Pfad zum Ordner (im Cloud Storage-Bucket), in dem sich das Stripeset befindet
- database_name: der Name einer Datenbank, die in Ihrer Cloud SQL-Instanz erstellt werden soll
- true | false: wird auf
true
gesetzt, um den Stripeset-Import zu verwenden
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
JSON-Text anfordern:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": 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 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.
REST v1beta4
- 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 Daten aus der Datei:
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_folder: der Pfad zum Ordner (im Cloud Storage-Bucket), in dem sich das Stripeset befindet
- database_name: der Name einer Datenbank, die in Ihrer Cloud SQL-Instanz erstellt werden soll
- true | false: wird auf
true
gesetzt, um den Stripeset-Import zu verwenden
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
JSON-Text anfordern:
{ "importContext": { "fileType": "BAK", "uri": "gs://bucket_name/path_to_folder", "database": "database_name", "bakImportOptions": { "striped": 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 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.
Wenn ein Fehler wie z. B. ERROR_RDBMS
angezeigt wird, prüfen Sie, ob die Tabelle vorhanden ist. Ist die Tabelle vorhanden, sollten Sie ermitteln, ob Sie die richtigen Berechtigungen für den Bucket haben. Hilfe zum Konfigurieren der Zugriffssteuerung in Cloud Storage finden Sie unter Access Control Lists (ACLs) erstellen und verwalten.
Nächste Schritte
- Status der Import- und Exportoperationen überprüfen
- Best Practices zum Importieren und Exportieren von Daten
- Bekannte Probleme bei Importen und Exporten