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
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Rufen Sie das Dreipunkt-Menü
der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen. - Optional können Sie auf der Seite Klon erstellen die ID des neuen Klon aktualisieren.
- Wählen Sie Von einem früheren Zeitpunkt klonen aus.
- Geben Sie eine Uhrzeit für die Wiederherstellung auf einen bestimmten Zeitpunkt ein.
- 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
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
Rufen Sie das Dreipunkt-Menü
der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.Wählen Sie Von einem früheren Zeitpunkt klonen aus.
Geben Sie eine 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 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-sourcefü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:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- 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 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
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.
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
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 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.
-
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 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 |
|---|---|
|
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. |