Mit der Wiederherstellung zu einem bestimmten Zeitpunkt (Point-In-Time Recovery, PITR) können Sie Ihre primären Cloud SQL-Instanzen wiederherstellen, unabhängig davon, ob die Instanz aktiv oder gelöscht ist. Mit der Wiederherstellung zu einem bestimmten Zeitpunkt können Sie die Instanz auf einen bestimmten Stand zurücksetzen. Bei einer Wiederherstellung zu einem bestimmten Zeitpunkt wird immer eine neue Instanz erstellt. Eine solche Wiederherstellung kann nicht in einer vorhandenen Instanz durchgeführt werden.
Cloud SQL bietet die folgenden Optionen, um Ihre Instanz mithilfe der Wiederherstellung zu einem bestimmten Zeitpunkt wiederherzustellen:
Wenn Sie eine PITR für eine nicht verfügbare oder gelöschte Instanz durchführen möchten, müssen Sie die neueste und früheste Wiederherstellungszeit ermitteln.
PITR mit einem Zeitstempel ausführen
Die Verwendung eines Zeitstempels ist die empfohlene Methode für die Durchführung einer PITR.
Cloud SQL verwendet das Dienstprogramm mysqlbinlog, um Instanzen bis zu einem bestimmten Zeitpunkt wiederherzustellen. Weitere Informationen zum Dienstprogramm mysqlbinlog finden Sie in der MySQL-Referenzdokumentation.
Für die folgende Aufgabe benötigen Sie Folgendes:
- Binäres Logging und Sicherungen für die Instanz sind aktiviert und fortlaufende binäre Logs seit der letzten Sicherung vor dem Ereignis, das Sie wiederherstellen möchten, sind vorhanden. Weitere Informationen erhalten Sie unter Binäres Logging aktivieren.
- Ein Zeitstempel, der den Wiederherstellungspunkt definiert. Die Ereignisse, die zu diesem Zeitstempel und danach auftreten, werden in der neuen Instanz nicht berücksichtigt.
Console
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- 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 die Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.
- Klicken Sie auf Klon erstellen.
gcloud
Erstellen Sie einen Klon mithilfe von 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
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 eine JSON-Antwort ähnlich wie diese 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
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 eine JSON-Antwort ähnlich wie diese erhalten:
PITR mit dem Backup Vault ausführen
Wenn Ihre Cloud SQL-Instanz für die Verwendung von erweiterten Sicherungen aktiviert ist, können Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt für Ihre Instanz mithilfe des Backup Vaults durchführen.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
Rufen Sie das Aktionsmenü
der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.Wählen Sie Von einem früheren Zeitpunkt klonen aus.
Geben Sie die Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.
Klicken Sie auf Klon erstellen.
gcloud
Wenn Sie eine PITR für eine Instanz aus dem Backup Vault ausführen möchten, müssen Sie die data-source für die Sicherung finden, die dem Zeitpunkt am nächsten ist, zu dem Sie die PITR ausführen möchten. Informationen zum Suchen der Sicherung finden Sie unter Alle Sicherungen im Backup Vault für eine Instanz auflisten. Führen Sie nach der Identifizierung der Sicherung den folgenden Befehl aus, um die PITR durchzuführen:
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
Ersetzen Sie Folgendes:
DATA_SOURCE: der Pfad derdata-sourcefür die Quellinstanz, die dem PITR-Zeitstempel am nächsten ist, zu dem Sie die Wiederherstellung durchführen möchten.TARGET_INSTANCE_NAME: der Name der neuen Instanz, die durch den PITR-Vorgang erstellt wird.PITR_TIMESTAMP: der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf das Sie Ihre Instanz wiederherstellen möchten, im RFC 3339-Format. Beispiel: 2025-11-15T16:19:00.094Z.TARGET_PROJECT: die Projekt-ID für die neue Instanz.REGION: die Region der Zielinstanz. Dieses Feld ist erforderlich, wenn sich die Datenquelle der Quellinstanz in einer Multiregion befindet. Die Region der Zielinstanz muss mit der Region der Quellinstanz übereinstimmen.
REST Version 1
Wenn Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt mit einer Datenquelle aus dem Backup Vault durchführen möchten, verwenden Sie die Methode instances.pointInTimeRestore mit einer POST-Anfrage.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem Sie die neue Instanz erstellen möchten.
- DATASOURCE: die Backup- und DR-Datenquelle, die der Dienst für die Wiederherstellung zu einem bestimmten Zeitpunkt verwenden soll.
- PITR_TIMESTAMP: der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf den Sie Ihre Instanz wiederherstellen möchten, im Format RFC 3339. Beispiel: 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: der Name der Instanz, die durch den PITR-Vorgang erstellt wurde.
- REGION: die Region der Zielinstanz. Dieses Feld ist erforderlich, wenn sich die Datenquelle der Quellinstanz in einer Multiregion befindet. Die Region der Zielinstanz muss mit der Region der Quellinstanz übereinstimmen.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID:pointInTimeRestore
JSON-Text anfordern:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
REST v1beta4
Wenn Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt mit einer Datenquelle aus dem Backup Vault durchführen möchten, verwenden Sie die Methode instances.pointInTimeRestore mit einer POST-Anfrage.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem Sie die neue Instanz erstellen möchten.
- DATASOURCE: die Backup- und DR-Datenquelle, die der Dienst für die Wiederherstellung zu einem bestimmten Zeitpunkt verwenden soll.
- PITR_TIMESTAMP: der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf den Sie Ihre Instanz wiederherstellen möchten, im Format RFC 3339. Beispiel: 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: der Name der Instanz, die durch den PITR-Vorgang erstellt wurde.
- REGION: die Region der Zielinstanz. Dieses Feld ist erforderlich, wenn sich die Datenquelle der Quellinstanz in einer Multiregion befindet. Die Region der Zielinstanz muss mit der Region der Quellinstanz übereinstimmen.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID:pointInTimeRestore
JSON-Text anfordern:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Projektübergreifendes PITR durchführen
Mit erweiterten Sicherungen können Sie eine Cloud SQL-Instanz in einem anderen Projekt als dem Projekt wiederherstellen, in dem sich die Quellinstanz oder der Backup Vault befindet.
Projektübergreifendes PITR wird nur über die gcloud CLI und REST APIs unterstützt.
Führen Sie einen der folgenden Schritte aus, um eine projektübergreifende Wiederherstellung zu einem bestimmten Zeitpunkt durchzuführen:
Wenn Sie die gcloud CLI verwenden, setzen Sie das Flag
--projectauf das Projekt, in dem Sie die Zielinstanz erstellen möchten.Wenn Sie REST APIs verwenden, legen Sie im Feld
PROJECT_IDdas Projekt fest, in dem Sie die Zielinstanz erstellen möchten.
PITR für eine nicht verfügbare Instanz ausführen
Console
Aus folgenden Gründen kann es sinnvoll sein, eine nicht verfügbare Instanz in einer anderen Zone wiederherzustellen:
- Auf die Zone, in der die Instanz konfiguriert ist, kann nicht zugegriffen werden. Diese Instanz hat den Status
FAILED. - Die Instanz wird gerade gewartet. Diese Instanz hat den Status
MAINTENANCE.
Führen Sie die folgenden Schritte aus, um eine nicht verfügbare Instanz wiederherzustellen:
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- Suchen Sie die Zeile der zu klonenden Instanz.
- Klicken Sie in der Spalte Aktionen auf das Menü Weitere Aktionen.
- Klicken Sie auf Klon erstellen.
- Führen Sie auf der Seite Klon erstellen die folgenden Aktionen aus:
- Aktualisieren Sie bei Bedarf im Feld Instanz-ID die Instanz-ID.
- Klicken Sie auf Von einem früheren Zeitpunkt klonen.
- Wählen Sie im Feld Zeitpunkt ein Datum und eine Uhrzeit aus, von der Sie Daten klonen möchten. Dadurch wird der Status der Instanz gemäß diesem Zeitpunkt wiederhergestellt.
- Klicken Sie auf Klon erstellen.
Während der Initialisierung des Klons werden Sie zur Seite mit der Instanzliste zurückgeleitet.
gcloud
Möglicherweise möchten Sie eine nicht verfügbare Instanz in einer anderen Zone wiederherstellen, da die Zone, in der die Instanz konfiguriert ist, nicht zugänglich ist.
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --point-in-time DATE_AND_TIME_STAMP \ --preferred-zone ZONE_NAME \ --preferred-secondary-zone SECONDARY_ZONE_NAME
Das Nutzer- oder Dienstkonto, mit dem der Befehl gcloud sql instances clone ausgeführt wird, muss die Berechtigungen cloudsql.instances.clone und cloudsql.instances.create haben. Weitere Informationen zu den erforderlichen Berechtigungen zum Ausführen von gcloud CLI-Befehlen finden Sie unter Cloud SQL-Berechtigungen.
REST Version 1
Möglicherweise möchten Sie eine nicht verfügbare Instanz in einer anderen Zone wiederherstellen, da die Zone, in der die Instanz konfiguriert ist, nicht zugänglich ist.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- SOURCE_INSTANCE_ID: die ID der Quellinstanz
- TARGET_INSTANCE_ID: die ID der Zielinstanz
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
JSON-Text anfordern:
{
"cloneContext":
{
"destinationInstanceName": "TARGET_INSTANCE_ID"
}
}Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Das Nutzer- oder Dienstkonto, das die API-Methode instances.clone verwendet, muss die Berechtigungen cloudsql.instances.clone und cloudsql.instances.create haben. Weitere Informationen zu den erforderlichen Berechtigungen für API-Methoden finden Sie unter Cloud SQL-Berechtigungen.
REST v1beta4
Möglicherweise möchten Sie eine nicht verfügbare Instanz in einer anderen Zone wiederherstellen, da die Zone, in der die Instanz konfiguriert ist, nicht zugänglich ist.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- SOURCE_INSTANCE_ID: die ID der Quellinstanz
- TARGET_INSTANCE_ID: die ID der Zielinstanz
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
JSON-Text anfordern:
{
"cloneContext":
{
"destinationInstanceName": "TARGET_INSTANCE_ID"
}
}Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Das Nutzer- oder Dienstkonto, das die API-Methode instances.clone verwendet, muss die Berechtigungen cloudsql.instances.clone und cloudsql.instances.create haben. Weitere Informationen zu den erforderlichen Berechtigungen für API-Methoden finden Sie unter Cloud SQL-Berechtigungen.
Wenn Sie versuchen, einen PITR-Klon zu einem Zeitpunkt nach dem letzten wiederherstellbaren Zeitpunkt zu erstellen, wird die folgende Fehlermeldung angezeigt:
The timestamp for point-in-time recovery is after the latest recovery time of Timestamp of latest recovery time. Clone the instance with a time that's earlier than this recovery time.
PITR für eine gelöschte Instanz ausführen
Wenn Sie eine gelöschte Instanz mithilfe der Wiederherstellung zu einem bestimmten Zeitpunkt wiederherstellen möchten, benötigen Sie Folgendes:
- den PITR-Zeitstempel (
timestamp), auf den Sie Ihre Instanz wiederherstellen möchten - den Namen der Zielinstanz
- den Zeitpunkt, zu dem die Quellinstanz gelöscht wurde (
source-instance-deletion-time)
Sie können die PITR für eine gelöschte Instanz nur mit der gcloud CLI oder der Cloud SQL API verwenden. Weitere Informationen finden Sie unter Gelöschte Instanz mithilfe einer PITR wiederherstellen.
gcloud
Standardsicherung
Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt ermitteln
Um das PITR-Fenster Ihrer gelöschten Instanz zu finden, rufen Sie die früheste und späteste Wiederherstellungszeit für Ihre Instanz ab. Sie können in diesem Fenster einen beliebigen Zeitstempel auswählen, um eine Wiederherstellung zu einem bestimmten Zeitpunkt durchzuführen.
Löschen der Quellinstanz finden
Die source-instance-deletion-time und die log-retention-days für die gelöschte Instanz werden nach dem Löschen zusammen mit den aufbewahrten Sicherungen für Ihre Instanz gespeichert. Eine Liste aller verfügbaren Sicherungen für Ihre gelöschte Instanz finden Sie unter Aufbewahrte Sicherungen auflisten.
Wenn Sie die gewünschte Sicherung gefunden haben, rufen Sie mit dem Befehl gcloud sql backups describe die source-instance-deletion-time ab.
Mit PITR wiederherstellen
Führen Sie den folgenden Befehl aus, um die gelöschte Instanz mithilfe einer Wiederherstellung zu einem bestimmten Zeitpunkt wiederherzustellen:
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP
Ersetzen Sie Folgendes:
SOURCE_INSTANCE_NAME: der Name der Quellinstanz, die Sie wiederherstellen möchten.NEW_INSTANCE_NAME: der Name der neuen Instanz.PITR_TIMESTAMP: der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf das Sie Ihre Instanz wiederherstellen möchten, im RFC 3339-Format. Beispiel: 2012-11-15T16:19:00.094Z.SOURCE_INSTANCE_DELETION_TIMESTAMP: der UTC-Zeitstempel für den Zeitpunkt, zu dem die Quellinstanz gelöscht wurde, im RFC 3339-Format. Beispiel: 2012-11-15T16:19:00.094Z.
Erweiterte Sicherung
Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt ermitteln
Um das PITR-Fenster Ihrer gelöschten Instanz zu finden, rufen Sie die früheste und späteste Wiederherstellungszeit für Ihre Instanz ab. Sie können in diesem Fenster einen beliebigen Zeitstempel auswählen, um eine Wiederherstellung zu einem bestimmten Zeitpunkt durchzuführen.
Datenquelle suchen
Die Datenquelle für die gelöschte Instanz wird nach dem Löschen zusammen mit den aufbewahrten Sicherungen für Ihre Instanz gespeichert. Informationen dazu, wie Sie diese Werte für Ihre gelöschte Instanz finden, finden Sie unter Alle Sicherungen im Backup Vault für Ihre Instanz auflisten.
Mit PITR wiederherstellen
Führen Sie den folgenden Befehl aus, um die gelöschte Instanz mithilfe einer Wiederherstellung zu einem bestimmten Zeitpunkt wiederherzustellen:
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
Ersetzen Sie Folgendes:
DATA_SOURCE: der Pfad derdata-sourcefür die Sicherung, die dem PITR-Zeitstempel am nächsten ist, zu dem Sie die Wiederherstellung durchführen möchten.TARGET_INSTANCE_NAME: der Name der neuen Instanz, die durch den PITR-Vorgang erstellt wird.PITR_TIMESTAMP: der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf das Sie Ihre Instanz wiederherstellen möchten, im RFC 3339-Format. Beispiel: 2025-11-15T16:19:00.094Z.TARGET_PROJECT: die Projekt-ID für die neue Instanz.REGION: die Region der Zielinstanz. Dieses Feld ist erforderlich, wenn sich die Datenquelle der Quellinstanz in einer Multiregion befindet. Die Region der Zielinstanz muss mit der Region der Quellinstanz übereinstimmen.
REST Version 1
Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt ermitteln
Um das PITR-Fenster Ihrer gelöschten Instanz zu finden, rufen Sie die früheste und späteste Wiederherstellungszeit für Ihre Instanz ab. Sie können in diesem Fenster einen beliebigen Zeitstempel auswählen, um eine Wiederherstellung zu einem bestimmten Zeitpunkt durchzuführen.
Löschzeitpunkt der Quellinstanz und Logaufbewahrung in Tagen ermitteln
Die source-instance-deletion-time und die log-retention-days für die gelöschte Instanz werden nach dem Löschen zusammen mit den aufbewahrten Sicherungen für Ihre Instanz gespeichert. Informationen zum Ermitteln dieser Werte für Ihre gelöschte Instanz finden Sie unter Aufbewahrte Sicherungen auflisten.
Mit PITR wiederherstellen
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
- source-instance-deletion-time: der Löschzeitpunkt der Quellinstanz
- restore-timestamp der Zeitpunkt, zu dem Sie die Instanz wiederherstellen möchten
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",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
REST v1beta4
Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt ermitteln
Um das PITR-Fenster Ihrer gelöschten Instanz zu finden, rufen Sie die früheste und späteste Wiederherstellungszeit für Ihre Instanz ab. Sie können in diesem Fenster einen beliebigen Zeitstempel auswählen, um eine PITR durchzuführen.
Löschzeitpunkt der Quellinstanz und Logaufbewahrung in Tagen ermitteln
Die source-instance-deletion-time und die log-retention-days für die gelöschte Instanz werden nach dem Löschen zusammen mit den aufbewahrten Sicherungen für Ihre Instanz gespeichert. Informationen zum Ermitteln dieser Werte für Ihre gelöschte Instanz finden Sie unter Aufbewahrte Sicherungen auflisten.
Mit PITR wiederherstellen
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
- source-instance-deletion-time: der Löschzeitpunkt der Quellinstanz
- restore-timestamp der Zeitpunkt, zu dem Sie die Instanz wiederherstellen möchten
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",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe von Positionen im binären Log durchführen
Wir empfehlen, die Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe von Zeitstempeln durchzuführen, wie unter Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe eines Zeitstempels durchführen beschrieben. Sie können die Wiederherstellung zu einem bestimmten Zeitpunkt aber auch durchführen, indem Sie eine bestimmte Position im binären Log oder eine Ereignisposition in einer binären Logdatei angeben.
Weitere Informationen zur PITR mit binären Logpositionen finden Sie unter PITR mit dem binären Log.
Hinweis
Bevor Sie diese Aufgabe ausführen, muss Folgendes vorliegen:
Binäres Logging und Sicherungen für die Instanz sind aktiviert und fortlaufende binäre Logs seit der letzten Sicherung vor dem Ereignis, das Sie wiederherstellen möchten, sind vorhanden. Weitere Informationen erhalten Sie unter Binäres Logging aktivieren.
Die Binärlogs müssen auf dem Laufwerk verfügbar sein, damit Sie sie nach Ereignissen durchsuchen können. Informationen zum Prüfen der Aufbewahrungsdauer Ihrer binären Logs auf dem Laufwerk finden Sie unter Aufbewahrung von Transaktionslogs festlegen. Weitere Informationen finden Sie unter Aufbewahrungsdauer von Logs. Sie können in Cloud Storage gespeicherte binäre Logs nicht mit dem Dienstprogramm
mysqlbinlogdurchsuchen.Der Dateiname des binären Logs und die Position des Ereignisses, von der Sie wiederherstellen möchten (das betreffende Ereignis und alle darauffolgenden Ereignisse sind in der neuen Instanz nicht mehr vorhanden). Weitere Informationen finden Sie unter Position des binären Logs ermitteln.
Nachdem Sie den Dateinamen und die Position des binären Logs ermittelt haben, führen Sie die Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe der Ereignispositionen des binären Logs durch.
Wiederherstellungsposition ermitteln
Stellen Sie über den MySQL-Client eine Verbindung zu der Instanz her, für die Sie wiederherstellen möchten.
Verwenden Sie dazu Cloud Shell oder Ihren lokalen Client-Computer. Weitere Informationen finden Sie unter Verbindungsoptionen für externe Anwendungen.
Rufen Sie die binären Log-Dateien für die Instanz auf:
SHOW BINARY LOGS;Rufen Sie die ersten 100 Ereignisse in der aktuellen binären Logdatei auf:
SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' LIMIT 100;Die Anzahl der angezeigten Zeilen kann angepasst werden. Vermeiden Sie es jedoch, sich alle Ereignisse anzeigen zu lassen, wenn Sie die Größe der Datei nicht kennen. Das Aufrufen einer großen Anzahl von Ereignissen kann die Leistung des Systems beeinträchtigen.
Wenn das gewünschte Ereignis nicht enthalten ist, verwenden Sie die zuletzt angezeigte Position als Ausgangspunkt für die Suche nach dem nächsten Ereignissatz:
SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' FROM <POSITION> LIMIT 100;Wenn Sie das Ereignis gefunden haben, das den Zeitpunkt definiert, für den Sie die Wiederherstellung vornehmen möchten, notieren Sie sich die Position (
Pos) und den Dateinamen des binären Logs.Der Dateiname des binären Logs und die Position sind die Werte, die Sie für die Wiederherstellung zu einem bestimmten Zeitpunkt verwenden.
Hier ein Beispiel für die Ausgabe des Befehls SHOW BINLOG EVENTS:
+------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ | mysql-bin.000011 | 4 | Format_desc | 88955285 | 120 | Server ver: 5.6.30-log, Binlog ver: 4 | | mysql-bin.000011 | 120 | Query | 88955285 | 211 | create database db1 | | mysql-bin.000011 | 211 | Query | 88955285 | 310 | use `db1`; CREATE TABLE t (c CHAR(20)) | | mysql-bin.000011 | 310 | Query | 88955285 | 381 | BEGIN | | mysql-bin.000011 | 381 | Table_map | 88955285 | 426 | table_id: 18 (db1.t) | | mysql-bin.000011 | 310 | Query | 88955285 | 381 | BEGIN | | mysql-bin.000011 | 426 | Write_rows | 88955285 | 464 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 464 | Xid | 88955285 | 495 | COMMIT /* xid=56 */ | | mysql-bin.000011 | 495 | Query | 88955285 | 566 | BEGIN | | mysql-bin.000011 | 566 | Table_map | 88955285 | 611 | table_id: 18 (db1.t) | | mysql-bin.000011 | 611 | Write_rows | 88955285 | 649 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 649 | Xid | 88955285 | 680 | COMMIT /* xid=57 */ | | mysql-bin.000011 | 680 | Query | 88955285 | 751 | BEGIN | | mysql-bin.000011 | 751 | Table_map | 88955285 | 796 | table_id: 18 (db1.t) | | mysql-bin.000011 | 796 | Write_rows | 88955285 | 834 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 834 | Xid | 88955285 | 865 | COMMIT /* xid=58 */ | | mysql-bin.000011 | 865 | Query | 88955285 | 977 | use `db1`; DROP TABLE `t` /* generated by server */ | +------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ 16 rows in set (0.04 sec)
Wenn Sie die Daten bis zur Anweisung DROP TABLE (im vorherigen Beispiel fett formatiert) wiederherstellen möchten, verwenden Sie 865 in mysql-bin.000011 als Wiederherstellungsposition. Die DROP TABLE-Anweisung und alle nachfolgenden Vorgänge werden in der neuen Instanz nicht berücksichtigt.
PITR mithilfe von Ereignispositionen im binären Log durchführen
gcloud
Verwenden Sie den Befehl gcloud sql instances clone mit den Flags --bin-log-file-name und --bin-log-position.
-
Erstellen Sie die neue Instanz mit dem Dateinamen des binären Logs und der Wiederherstellungsposition.
Ersetzen Sie Folgendes:
- SOURCE_INSTANCE_NAME: der Name der Instanz, von der Sie wiederherstellen möchten.
- NEW_INSTANCE_NAME: der Name für den Klon.
- BINLOG_FILE_NAME: der Name für das binäre Log, z. B.
mysql-bin.187288. - POSITION: die Position im binären Log, bis zu der wiederhergestellt werden soll, z. B.
50001356.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --bin-log-file-name="BINLOG_FILE_NAME" \ --bin-log-position=POSITION
Ein
gcloud sql instances clone-Befehl kann beispielsweise so aussehen:gcloud sql instances clone instance1 \ instance1-clone \ --bin-log-file-name=mysql-bin.0000031 \ --bin-log-position=107
- Prüfen Sie mit der vom Befehl
clonezurückgegebenen Vorgangs-ID den Status des Wiederherstellungsvorgangs.gcloud sql operations describe OPERATION_ID
Wird der Vorgang ausgeführt, wird der Status
RUNNINGzurückgegeben. Wenn der Vorgang beendet ist, wird der StatusDONEzurückgegeben.
REST Version 1
Erstellen Sie die neue Instanz und verwenden Sie dazu den von Ihnen angegebenen Dateinamen des binären Logs und die festgelegte Wiederherstellungsposition.
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
- binary-log-file-name: der Name der binären Logdatei
- binary-log-position: die Position in der binären Logdatei
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",
"binLogCoordinates":
{
"kind": "sql#binLogCoordinates",
"binLogFileName": "binary-log-file-name",
"binLogPosition": "binary-log-position"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
REST v1beta4
Erstellen Sie die neue Instanz mit dem Dateinamen des binären Logs und der Wiederherstellungsposition, die Sie identifiziert haben:
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
- binary-log-file-name: der Name der binären Logdatei
- binary-log-position: die Position in der binären Logdatei
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",
"binLogCoordinates":
{
"kind": "sql#binLogCoordinates",
"binLogFileName": "binary-log-file-name",
"binLogPosition": "binary-log-position"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Frühesten und spätesten Wiederherstellungszeitpunkt abrufen
Für eine verfügbare Instanz können Sie eine PITR für einen beliebigen Zeitstempel im PITR-Fenster der Instanz durchführen. Das PITR-Fenster beginnt mit der frühesten Wiederherstellungszeit und endet mit der spätesten Wiederherstellungszeit. Wenn die Instanz nicht verfügbar ist und die Instanzlogs in Cloud Storage gespeichert sind oder die Instanz gelöscht wurde und die PITR-Aufbewahrung aktiviert war, können Sie die früheste und späteste Wiederherstellungszeit abrufen und die PITR für einen beliebigen Zeitstempel in diesem Fenster ausführen. In allen Fällen können Sie die Instanz in einer anderen primären oder sekundären Zone wiederherstellen. Dazu geben Sie Werte für die bevorzugten Zonen an.
gcloud
Nicht verfügbare Instanz
Führen Sie den folgenden Befehl aus, um den frühesten und spätesten Zeitpunkt abzurufen, zu dem Sie eine nicht verfügbare Cloud SQL-Instanz wiederherstellen können:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt ermitteln möchten.
Gelöschte Instanz
Führen Sie den folgenden Befehl aus, um den frühesten und spätesten Zeitpunkt abzurufen, zu dem Sie eine gelöschte Cloud SQL-Instanz wiederherstellen können:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME \
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'
Ersetzen Sie Folgendes:
INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt ermitteln möchten.SOURCE_INSTANCE_DELETION_TIMESTAMP: der UTC-Zeitstempel für den Zeitpunkt, zu dem die Quellinstanz gelöscht wurde, im RFC 3339-Format. Beispiel: 2012-11-15T16:19:00.094Z.
REST Version 1
Nicht verfügbare Instanz
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Gelöschte Instanz
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_NAME: der Name der Quellinstanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen
- SOURCE_INSTANCE_DELETION_TIME: der Zeitpunkt, zu dem die Quellinstanz gelöscht wurde
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
Nicht verfügbare Instanz
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Gelöschte Instanz
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_NAME: der Name der Quellinstanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen
- SOURCE_INSTANCE_DELETION_TIME: der Zeitpunkt, zu dem die Quellinstanz gelöscht wurde
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
Fehlerbehebung
| Problem | Fehlerbehebung |
|---|---|
|
ODER
|
Der von Ihnen angegebene Zeitstempel ist ungültig. |
|
ODER
|
Der angegebene Zeitstempel gilt für einen Zeitpunkt, an dem keine Sicherungen oder binlog-Koordinaten gefunden wurden. |