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 PITR können Sie die Instanz zu einem bestimmten Zeitpunkt wiederherstellen. Bei einer gelöschten Instanz können Sie die Instanz zu einem bestimmten Zeitpunkt in einer neuen oder vorhandenen Instanz wiederherstellen.

Cloud SQL bietet die folgenden Optionen zum Wiederherstellen Ihrer Instanz mit der Wiederherstellung zu einem bestimmten Zeitpunkt:

Wenn Sie eine PITR für eine nicht verfügbare oder gelöschte Instanz durchführen möchten, müssen Sie den neuesten und frühesten Wiederherstellungszeitpunkt ermitteln.

PITR anhand eines Zeitstempels 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 mysqlbinlog-Dienstprogramm 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. Ereignisse, die zu diesem Zeitstempel und danach auftreten, werden in der neuen Instanz nicht berücksichtigt.

Console

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

    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 eine Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.
  6. Klicken Sie auf Klon erstellen.

gcloud

Erstellen Sie einen Klon mithilfe der Wiederherstellung zu einem bestimmten Zeitpunkt.

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:

Wiederherstellung zu einem bestimmten Zeitpunkt mit dem Backup Vault ausführen

Wenn für Ihre Cloud SQL-Instanz die Verwendung von erweiterten Back-ups aktiviert ist, können Sie die Wiederherstellung zu einem bestimmten Zeitpunkt für Ihre Instanz mithilfe des Backup-Tresors durchführen.

Console

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

    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. Wählen Sie Von einem früheren Zeitpunkt klonen aus.

  4. Geben Sie eine 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 durchführen möchten, müssen Sie die data-source für die Sicherung suchen, die dem Zeitpunkt, zu dem Sie die PITR durchführen möchten, am nächsten ist. Informationen zum Suchen der Sicherung finden Sie unter Alle Sicherungen im Backup Vault für eine Instanz auflisten. Führen Sie den folgenden Befehl aus, nachdem Sie die Sicherung ermittelt haben, um PITR durchzuführen:

gcloud sql instances point-in-time-restore DATA_SOURCE
PITR_TIMESTAMP
--project=TARGET_PROJECT

Ersetzen Sie Folgendes:

  • DATA_SOURCE: Der Pfad der data-source für die Sicherung, die dem PITR-Zeitstempel, zu dem Sie die Wiederherstellung durchführen möchten, am nächsten ist.
  • PITR_TIMESTAMP: Der UTC-Zeitstempel für das PITR-Log der Quellinstanz, auf das Sie Ihre Instanz zurücksetzen möchten, im RFC 3339-Format. Beispiel: 2012-11-15T16:19:00.094Z.
  • TARGET_PROJECT: die Projekt-ID Ihrer Cloud SQL-Instanz.

REST Version 1

REST v1beta4

PITR für eine nicht verfügbare Instanz ausführen

Console

Sie können aus folgenden Gründen eine nicht verfügbare Instanz in einer anderen Zone wiederherstellen:

  • 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. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    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 auf die Zone, in der die Instanz konfiguriert ist, nicht zugegriffen werden kann.

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 Berechtigung cloudsql.instances.clone 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 Berechtigung cloudsql.instances.clone 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 Berechtigung cloudsql.instances.clone 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 mit der Wiederherstellung zu einem bestimmten Zeitpunkt wiederherstellen möchten, benötigen Sie Folgendes:

  • Der PITR-Zeitstempel (timestamp), zu dem Sie Ihre Instanz wiederherstellen möchten
  • Name der Zielinstanz
  • Der Zeitpunkt, zu dem die Quellinstanz gelöscht wurde (source-instance-deletion-time)

Sie können 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 mit PITR wiederherstellen.

gcloud

Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt finden

Um das PITR-Zeitfenster Ihrer gelöschten Instanz zu ermitteln, 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 Tage der Logaufbewahrung ermitteln

Die source-instance-deletion-time und log-retention-days für die gelöschte Instanz werden nach dem Löschen mit den beibehaltenen Sicherungen für Ihre Instanz gespeichert. Informationen zum Ermitteln dieser Werte für Ihre gelöschte Instanz finden Sie unter Beibehaltene Sicherungen auflisten.

Mit PITR wiederherstellen

Führen Sie den folgenden Befehl aus, um Ihre gelöschte Instanz mit einer PITR 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 zurücksetzen 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.

REST Version 1

Zeitfenster für die Wiederherstellung zu einem bestimmten Zeitpunkt finden

Um das PITR-Zeitfenster Ihrer gelöschten Instanz zu ermitteln, 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 Tage der Logaufbewahrung ermitteln

Die source-instance-deletion-time und log-retention-days für die gelöschte Instanz werden nach dem Löschen mit den beibehaltenen Sicherungen für Ihre Instanz gespeichert. Informationen zum Ermitteln dieser Werte für Ihre gelöschte Instanz finden Sie unter Beibehaltene 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 Zeitpunkt, zu dem die Quellinstanz gelöscht wurde.
  • restore-timestamp: der Zeitpunkt, zu dem die Instanz 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",
    "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 finden

Um das PITR-Zeitfenster Ihrer gelöschten Instanz zu ermitteln, 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 PITR durchzuführen.

Löschzeitpunkt der Quellinstanz und Tage der Logaufbewahrung ermitteln

Die source-instance-deletion-time und log-retention-days für die gelöschte Instanz werden nach dem Löschen mit den beibehaltenen Sicherungen für Ihre Instanz gespeichert. Informationen zum Ermitteln dieser Werte für Ihre gelöschte Instanz finden Sie unter Beibehaltene 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 Zeitpunkt, zu dem die Quellinstanz gelöscht wurde.
  • restore-timestamp: der Zeitpunkt, zu dem die Instanz 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",
    "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 mit binären Logpositionen ausführen

Wir empfehlen, die Wiederherstellung zu einem bestimmten Zeitpunkt mit Zeitstempeln durchzuführen, wie unter Wiederherstellung zu einem bestimmten Zeitpunkt mit einem Zeitstempel durchführen beschrieben. Sie können die Wiederherstellung zu einem bestimmten Zeitpunkt aber auch ausführen, indem Sie eine bestimmte binäre Logposition oder Ereignisposition in einer binären Logdatei angeben.

Weitere Informationen zur Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe von binären Logpositionen finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt mit dem binären Log.

Hinweise

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ärprotokolle müssen auf der Festplatte verfügbar sein, damit Sie sie nach Ereignissen durchsuchen können. Informationen zur Aufbewahrungsdauer Ihrer binären Logs auf der Festplatte finden Sie unter Aufbewahrungsdauer von Logs. Sie können binäre Logs, die in Cloud Storage gespeichert sind, nicht mit dem Dienstprogramm mysqlbinlog durchsuchen.

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

    Wenn Sie den Dateinamen des binären Logs und die Position ermittelt haben, können Sie die Wiederherstellung zu einem bestimmten Zeitpunkt mithilfe von Positionen binärer Logereignisse ausführen.

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 werden als Werte für die PITR verwendet.

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)

Um die Wiederherstellung bis zur Anweisung DROP TABLE durchzuführen, die im vorherigen Beispiel in Fettschrift hervorgehoben ist, verwenden Sie 865 in mysql-bin.000011 als Wiederherstellungsposition. Die DROP TABLE-Anweisung und alle darauffolgenden Vorgänge werden in der neuen Instanz nicht berücksichtigt.

Wiederherstellung zu einem bestimmten Zeitpunkt mit Positionen binärer Logereignisse ausfü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 und verwenden Sie dazu den von Ihnen angegebenen Dateinamen des binären Logs und die von Ihnen 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/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-Zeitfenster der Instanz ausführen. Das PITR-Zeitfenster beginnt mit der frühesten 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 den frühesten und neuesten Wiederherstellungszeitpunkt abrufen und die PITR für einen beliebigen Zeitstempel in diesem Zeitraum 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 abrufen 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 abrufen 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: die Zeit, zu der 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: die Zeit, zu der 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