Wiederherstellung zu einem bestimmten Zeitpunkt ausführen

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

  1. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Dreipunkt-Menü Dreipunkt-Symbol der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.
  3. Optional können Sie auf der Seite Klon erstellen die ID des neuen Klon aktualisieren.
  4. Wählen Sie Von einem früheren Zeitpunkt klonen aus.
  5. Geben Sie die Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.
  6. 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

  1. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Aktionsmenü Dreipunkt-Symbol der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.

  3. Wählen Sie Von einem früheren Zeitpunkt klonen aus.

  4. Geben Sie die Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.

  5. 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 der data-source fü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 --project auf das Projekt, in dem Sie die Zielinstanz erstellen möchten.

  • Wenn Sie REST APIs verwenden, legen Sie im Feld PROJECT_ID das 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:

  1. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Suchen Sie die Zeile der zu klonenden Instanz.
  3. Klicken Sie in der Spalte Aktionen auf das Menü Weitere Aktionen.
  4. Klicken Sie auf Klon erstellen.
  5. Führen Sie auf der Seite Klon erstellen die folgenden Aktionen aus:
    1. Aktualisieren Sie bei Bedarf im Feld Instanz-ID die Instanz-ID.
    2. Klicken Sie auf Von einem früheren Zeitpunkt klonen.
    3. 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.
    4. Klicken Sie auf Klon erstellen.
  6. 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 der data-source fü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:

Wiederherstellungsposition ermitteln

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

  2. Rufen Sie die binären Log-Dateien für die Instanz auf:

    SHOW BINARY LOGS;
    
  3. 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.

  4. 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;
    
  5. 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.

  1. 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
  2. Prüfen Sie mit der vom Befehl clone zurückgegebenen Vorgangs-ID den Status des Wiederherstellungsvorgangs.
    gcloud sql operations describe OPERATION_ID

    Wird der Vorgang ausgeführt, wird der Status RUNNING zurückgegeben. Wenn der Vorgang beendet ist, wird der Status DONE zurü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

argument --point-in-time: Failed to parse date/time:
Unknown string format: 2021-0928T30:54:03.094;
received: 2021-0928T30:54:03.094Z

ODER

Invalid value at 'body.clone_context.point_in_time'
(type.googleapis.com/google.protobuf.Timestamp), Field 'pointInTime',
Invalid time format: Failed to parse input,

Der von Ihnen angegebene Zeitstempel ist ungültig.

HTTP Error 400: Successful backup required for carrying out the operation was not found.

ODER

Successful backup required for carrying out the operation was not found. or Time where no backups can be found.

Der angegebene Zeitstempel gilt für einen Zeitpunkt, an dem keine Sicherungen oder binlog-Koordinaten gefunden wurden.

Nächste Schritte