Auf dieser Seite wird gezeigt, wie Sie mit der Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) Ihre primäre Cloud SQL-Instanz wiederherstellen.
Weitere Informationen zu PITR finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt (PITR).
Logspeicher für PITR
Am 31. Mai 2024 haben wir das Speichern von Transaktionslogs für die Wiederherstellung zu einem bestimmten Zeitpunkt in Cloud Storage eingeführt. Seit dieser Einführung gelten folgende Bedingungen:Alle Cloud SQL-Instanzen, die Sie vor diesem Datum mit aktivierter PITR erstellen, speichern die Transaktionslogs, die für PITR auf dem Laufwerk verwendet werden.
Alle Cloud SQL-Instanzen, die an oder nach diesem Datum mit aktivierter PITR erstellt wurden, speichern diese Logs in Cloud Storage.
Diese Logs werden regelmäßig aktualisiert und belegen Speicherplatz. Cloud SQL löscht Transaktionslogs mit den zugehörigen automatischen Sicherungen automatisch. Dies geschieht, wenn der für den Parameter transactionLogRetentionDays
festgelegte Wert erreicht ist. Weitere Informationen zu diesem Parameter finden Sie unter Logs und Laufwerksnutzung.
Bei Instanzen, die Transaktionslogs nur auf dem Laufwerk speichern, können Sie Cloud SQL so konfigurieren, dass die Logs in Cloud Storage gespeichert werden. Dazu deaktivieren Sie zuerst PITR und aktivieren sie dann wieder. Sie können keine Logs von Cloud Storage zurück auf das Laufwerk verschieben.
Führen Sie folgende Aktionen aus, um sicherzustellen, dass die Logs für Ihre Instanz in Cloud Storage statt auf dem Laufwerk gespeichert werden:
- Prüfen, ob Ihre Instanz Logs auf dem Laufwerk oder in Cloud Storage speichert
- Netzwerkarchitektur der Instanz prüfen Wenn sich die Instanz in der alten Netzwerkarchitektur befindet, führen Sie ein Upgrade auf die neue Netzwerkarchitektur durch.
- Wenn die Größe der Logs auf dem Laufwerk Leistungsprobleme für die Instanz verursacht, deaktivieren Sie PITR und aktivieren Sie sie wieder.
Logs und Laufwerksnutzung
Cloud SQL generiert regelmäßig Logs, die Speicherplatz belegen. Cloud SQL löscht die Transaktionslogs automatisch mit den zugehörigen automatischen Sicherungen. Dies geschieht, wenn der für den Parameter transactionLogRetentionDays
festgelegte Wert erreicht ist. Dieser Parameter gibt die Anzahl der Tage an (von 1 bis 7), die Cloud SQL Transaktionslogs aufbewahrt.
Prüfen Sie den Messwert bytes_used_by_data_type
für die Instanz, um herauszufinden, wie viel Laufwerk von den Transaktionslogs belegt wird. Der Wert für den Datentyp gibt die Größe der Transaktionslogs auf dem Laufwerk zurück. Bei Instanzen, die Transaktionslogs speichern, die für PITR auf dem Laufwerk verwendet werden, löscht Cloud SQL Daten täglich dauerhaft vom Laufwerk, um die PITR-Einstellung transactionLogRetentionDays
zu erfüllen, wie unter Automatische Sicherungsaufbewahrung beschrieben.
Wenn für Ihre Instanz PITR aktiviert ist und die Größe der Transaktionslogs auf dem Laufwerk ein Problem für die Instanz verursacht:
- Sie können PITR deaktivieren und wieder aktivieren, damit Logs in Cloud Storage in derselben Region wie die Instanz gespeichert werden. Alle vorhandenen Logs werden jedoch gelöscht, sodass Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt erst wieder ab dem Zeitpunkt ausführen können, zu dem Sie PITR wieder aktiviert haben.
- Sie können die Speichergröße der Instanz erhöhen, die erhöhte Speichernutzung der Größe des Transaktionslogs könnte jedoch nur temporär sein.
- Wir empfehlen die Aktivierung von automatischen Speichererweiterungen, um unerwartete Speicherplatzprobleme zu vermeiden. Diese Empfehlung gilt nur, wenn für Ihre Instanz PITR aktiviert ist und Ihre Logs auf dem Laufwerk gespeichert sind.
- Wenn Sie Logs löschen und Speicherplatz wiederherstellen möchten, können Sie PITR deaktivieren, ohne sie wieder zu aktivieren. Durch Reduzierung des verwendeten Speicherplatzes wird die Größe des für die Instanz bereitgestellte Laufwerks nicht verringert.
Die Logs werden einmal täglich, nicht kontinuierlich gelöscht. Das Festlegen der Logaufbewahrung auf zwei Tage bedeutet, dass mindestens zwei Tage an Logs und höchstens Logs von drei Tagen aufbewahrt werden. Wir empfehlen, die Anzahl der Sicherungen auf eine mehr als die Anzahl von Tagen für die Logaufbewahrung festzulegen.
Wenn Sie beispielsweise
7
für den Wert des ParameterstransactionLogRetentionDays
angeben, legen Sie für den ParameterbackupRetentionSettings
die Anzahl vonretainedBackups
auf8
fest. “
Weitere Informationen zur Wiederherstellung zu einem bestimmten Zeitpunkt finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt.
Datenbankwiederherstellungsmodell für PITR
Wenn Sie PITR für eine Instanz aktivieren, setzt Cloud SQL das Wiederherstellungsmodell der vorhandenen und nachfolgenden Datenbanken automatisch auf das vollständige Wiederherstellungsmodell.
Weitere Informationen zu SQL Server-Wiederherstellungsmodellen finden Sie in der Microsoft-Dokumentation.
PITR aktivieren
Wenn Sie eine neue Instanz in der Google Cloud Console erstellen, wird die Einstellung automatisierte Back-ups automatisch aktiviert.Mit dem folgenden Verfahren wird PITR für eine vorhandene primäre Instanz aktiviert.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Rufen Sie das Dreipunkt-Menü der Instanz auf, für die Sie PITR aktivieren möchten, und klicken Sie auf Bearbeiten.
- Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
- Klicken Sie auf das Kästchen Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren.
- Geben Sie im Feld Tage der Logs die Anzahl der Tage ein (von 1 bis 7), für die Logs aufbewahrt werden sollen.
- Klicken Sie auf Speichern.
gcloud
- Rufen Sie die Instanzübersicht auf:
gcloud sql instances describe INSTANCE_NAME
- Wenn
enabled: false
im AbschnittbackupConfiguration
angezeigt wird, aktivieren Sie geplante Sicherungen:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Dabei geben Sie den Parameter
backup-start-time
im 24-Stunden-Zeitformat und in der Zeitzone UTC±00 an. - PITR aktivieren:
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Wenn Sie PITR auf einer primären Instanz aktivieren, können Sie auch die Anzahl der Tage konfigurieren, für die Sie Transaktionslogs aufbewahren möchten. Fügen Sie dazu den folgenden Parameter hinzu:
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Bestätigen Sie die Änderung:
gcloud sql instances describe INSTANCE_NAME
Im Abschnitt
backupConfiguration
wirdpointInTimeRecoveryEnabled: true
angezeigt, ob die Änderung erfolgreich war.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
- START_TIME: die Uhrzeit (in Stunden und Minuten)
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
- START_TIME: die Uhrzeit (in Stunden und Minuten)
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Perform PITR
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Rufen Sie das Dreipunkt-Menü der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.
- Optional können Sie auf der Seite Klon erstellen die ID des neuen Klon aktualisieren.
- Wählen Sie Von einem früheren Zeitpunkt klonen aus.
- Geben Sie eine PITR-Zeit ein.
- Wählen Sie Alle Datenbanken aus oder geben Sie einen Datenbanknamen an.
Wenn Sie einen Datenbanknamen angeben, kann nur einer ausgewählt werden. Standardmäßig gilt PITR für alle Datenbanken. - Klicken Sie auf Klon erstellen.
gcloud
Erstellen Sie einen Klon mit PITR.
Ersetzen Sie Folgendes:
- SOURCE_INSTANCE_NAME: der Name der Instanz, von der aus Sie wiederherstellen möchten.
- NEW_INSTANCE_NAME: der Name für den Klon.
- TIMESTAMP: die UTC-Zeitzone für die Quellinstanz im Format RFC 3339. Beispiel: 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- target-instance-id: die ID der Zielinstanz
- source-instance-id: die ID der Quellinstanz
- restore-timestamp der Zeitpunkt, zu dem wiederhergestellt werden soll
In der JSON-Anfrage können Sie optional bis zu einem bestimmten Datenbanknamen so angeben: "databaseNames": "my-database"
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
JSON-Text anfordern:
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- target-instance-id: die ID der Zielinstanz
- source-instance-id: die ID der Quellinstanz
- restore-timestamp der Zeitpunkt, zu dem wiederhergestellt werden soll
In der JSON-Anfrage können Sie optional bis zu einem bestimmten Datenbanknamen so angeben: "databaseNames": "my-database"
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
JSON-Text anfordern:
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
PITR deaktivieren
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Rufen Sie das Dreipunkt-Menü der Instanz auf, die Sie deaktivieren möchten, und wählen Sie Bearbeiten aus.
- Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
- Entfernen Sie das Häkchen von der Option Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren.
- Klicken Sie auf Speichern.
gcloud
- Deaktivieren Sie die Wiederherstellung zu einem bestimmten Zeitpunkt:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Bestätigen Sie die Änderung:
gcloud sql instances describe INSTANCE_NAME
Im Abschnitt
backupConfiguration
wirdpointInTimeRecoveryEnabled: false
angezeigt, ob die Änderung erfolgreich war.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Speicherort der für PITR verwendeten Transaktionslogs prüfen
Sie können prüfen, wo Ihre Cloud SQL-Instanz die für PITR verwendeten Transaktionslogs speichert.
gcloud
Verwenden Sie den folgenden Befehl, um festzustellen, ob Ihre Instanz Logs für PITR auf dem Laufwerk oder in Cloud Storage speichert:
gcloud sql instances describe INSTANCE_NAME
Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz.
Sie können auch den Speicherort der Transaktionsprotokolle für mehrere Instanzen im selben Projekt prüfen. Verwenden Sie den folgenden Befehl, um den Standort für mehrere Instanzen zu ermitteln:
gcloud sql instances list --show-transactional-log-storage-state
Beispielantwort:
NAME DATABASE_VERSION LOCATION TRANSACTIONAL_LOG_STORAGE_STATE my_01 MYSQL_8_0 us-central-1 DISK my_02 MYSQL_8_0 us-central-1 CLOUD_STORAGE ...
In der Befehlsausgabe enthält das Feld transactionalLogStorageState
oder die Spalte TRANSACTIONAL_LOG_STORAGE_STATE
Informationen dazu, wo die Transaktionsprotokolle für die PITR-Wiederherstellung der Instanz gespeichert werden.
Mögliche Speicherstatus für Transaktionsprotokolle:
DISK
: Die Instanz speichert die für PITR verwendeten Transaktionslogs auf dem Laufwerk.CLOUD_STORAGE
: Die Instanz speichert die für PITR verwendeten Transaktionslogs in Cloud Storage.
Aufbewahrung von Transaktionslogs festlegen
So legen Sie die Anzahl der Tage fest, für die Transaktionslogs aufbewahrt werden sollen:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Rufen Sie das Dreipunkt-Menü der Instanz auf, für die Sie das Transaktionslog festlegen möchten, und wählen Sie Bearbeiten aus.
- Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
- Maximieren Sie im Abschnitt Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren die Option Erweiterte Optionen.
- Geben Sie die Anzahl der Tage ein (von 1 bis 7), für die Logs aufbewahrt werden sollen.
- Klicken Sie auf Speichern.
gcloud
Legen Sie die Anzahl der Tage für die Aufbewahrung von Transaktionslogs für die Instanz fest.
Dabei gilt:
- INSTANCE-NAME: der Name der Instanz, für die Sie das Transaktionslog festlegen möchten.
- DAYS-TO-RETAIN: die Anzahl der Tage, für die Transaktionslogs beibehalten werden sollen. Der gültige Bereich liegt zwischen 1 und 7. Der Standardwert ist 7, wenn nicht anders angegeben. Nur gültig, wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist. Wenn Sie Transaktionslogs länger speichern möchten, ist mehr Speicherplatz erforderlich.
gcloud sql instances patch INSTANCE-NAME \ --retained-transaction-log-days=DAYS-TO-RETAIN
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- days-to-retain: Die Anzahl der Tage, die Transaktionslogs aufbewahrt werden sollen (von eins bis sieben)
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "days-to-retain" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- days-to-retain: Die Anzahl der Tage, die Transaktionslogs aufbewahrt werden sollen (von eins bis sieben)
- project-id: die Projekt-ID
- instance-id: die Instanz-ID
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "days-to-retain" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten: