Auf dieser Seite wird die Verwendung der erweiterten Notfallwiederherstellung (Disaster Recovery, DR) beschrieben. Die erweiterte Notfallwiederherstellung bietet zwei Hauptfunktionen:
- Mit dem Replikat-Failover können Sie bei einem regionalen Ausfall ein Failover von Ihrer primären Instanz auf das DR-Replikat ausführen.
- Mit Switchover können Sie die Rollen der primären Instanz und eines DR-Replikats ohne Datenverlust umkehren. Mit Switchover können Sie eine Bereitstellung nach dem Replikat-Failover in ihren ursprünglichen Bereitstellungsstatus wiederherstellen oder die Notfallwiederherstellung mit Switchover testen.
Die erweiterte Notfallwiederherstellung wird nur auf Cloud SQL Enterprise Plus-Instanzen unterstützt.
Hinweise
Wenn Sie das Google Cloud SDK verwenden möchten, müssen Sie Version 502.0.0 oder höher verwenden. Führen Sie gcloud --version
aus, um die Version des Google Cloud SDK zu ermitteln. Führen Sie zum Aktualisieren des Google Cloud SDK gcloud components update
aus.
Informationen zum Installieren des Google Cloud SDK finden Sie unter Installieren der gcloud CLI.
Anforderungen an primäre Instanzen
Die primäre Instanz muss eine Cloud SQL Enterprise Plus-Instanz sein und ein DR-Replikat haben.
Sie müssen die Wiederherstellung zu einem bestimmten Zeitpunkt (Point-In-Time Recovery, PITR) auf der primären Instanz aktivieren. Informationen zum Aktivieren der PITR finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt verwenden.Wenn Sie Ihre Cloud SQL-Instanz mit einem DNS-Schreibendpunkt (Vorabversion) erstellen, muss Ihre primäre Instanz dieselbe SSL-Konfiguration wie das angegebene Notfallwiederherstellungsreplikat haben, bevor Sie den Switchover- oder Replikations-Failovervorgang ausführen. Wenn Sie beispielsweise Ihr Notfallwiederherstellungsreplikat so konfigurieren, dass die SSL-Verschlüsselung erzwungen wird, die primäre Instanz aber unverschlüsselte Verbindungen zulässt, können Clients nach Abschluss des Umstiegs oder Failover-Vorgangs keine Verbindung mehr zur neuen primären Instanz herstellen.
Anforderungen an das DR-Replikat
Das festgelegte DR-Lesereplikat muss die folgenden Anforderungen erfüllen:
Muss eine Cloud SQL Enterprise Plus-Instanz sein
Kann nicht für Private Service Connect konfiguriert werden. Das Lesereplikat der DR kann jedoch für den Zugriff auf private Dienste konfiguriert werden.
- Muss dieselbe Datenbankversion wie die primäre Instanz sein, auf der PostgreSQL 12, 13, 14, 15 oder 16 ausgeführt wird
Muss sich in einer anderen Region als die primäre Instanz befinden
Muss ein direktes Lesereplikat sein Darf kein kaskadierendes Replikat sein
Wenn das Replikat mit einem Flag konfiguriert ist, das einen Wert erfordert, der größer oder gleich dem der primären Instanz ist, muss das Flag mit einem Wert konfiguriert sein, der dem der primären Instanz entspricht.
Das Flag
cloudsql.logical_decoding
darf nicht konfiguriert sein. Es dürfen keine logischen Slots und keine logische Replikation konfiguriert sein.
Muss die für PITR verwendeten Transaktionslogs in Cloud Storage speichern
Darf kein externes Replikat sein
Empfehlungen für das Replikat für Notfallwiederherstellung
Dieser Abschnitt enthält Empfehlungen für das DR-Replikat. Die folgenden Empfehlungen können helfen, Leistungsprobleme in Ihrer Bereitstellung zu vermeiden:
- Verwenden Sie dieselbe Laufwerkgröße wie die primäre Instanz oder aktivieren Sie die automatische Vergrößerung.
- Verwenden Sie eine konsistente Hochverfügbarkeitskonfiguration. Wenn Sie Hochverfügbarkeit auf der primären Instanz aktivieren, aktivieren Sie auch Hochverfügbarkeit auf dem DR-Replikat.
- Verwenden Sie eine konsistente Datencache-Konfiguration. Wenn Sie den Datencache auf der primären Instanz aktivieren, müssen Sie auch den Datencache auf dem DR-Replikat aktivieren.
- Konfigurieren Sie alle geeigneten Datenbank-Flags für Ihr DR-Replikat vor und nach Switchover- oder Replikat-Failover-Vorgängen.
Replikat erstellen, um die Anforderungen für DR-Replikate zu erfüllen
Wenn die primäre Instanz noch kein regionenübergreifendes Lesereplikat hat, das die Anforderungen der DR-Replikatdatenbank erfüllt, erstellen Sie eins.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die primäre Instanz.
- Klicken Sie in der Spalte Aktionenauf das Menü Weitere Aktionen.
- Wählen Sie Lesereplikat erstellen aus.
- Geben Sie im Feld Instanz-ID einen Namen für das DR-Replikat ein.
- Im Feld Datenbankversion ist dieselbe Hauptversion der primären Instanz für Sie ausgewählt.
- Führen Sie im Abschnitt Region und zonale Verfügbarkeit auswählen der Seite die folgenden Schritte aus:
- Wählen Sie eine andere Region als die Region Ihrer primären Instanz aus.
- Optional. Wählen Sie Mehrere Zonen für das DR-Replikat aus.
- Optional. Wählen Sie die primären und sekundären Zonen für das DR-Replikat aus.
- Im Bereich Instanz anpassen der Seite können Sie die Einstellungen für das DR-Replikat ändern. Weitere Informationen zu den einzelnen Einstellungen finden Sie auf der Seite zu den Instanzeinstellungen.
- Wählen Sie unter Maschinenformen den gleichen Maschinentyp wie Ihre primäre Instanz aus.
- Konfigurieren Sie unter Flags alle Flags, die für Ihre Datenbank erforderlich sind.
- Klicken Sie auf Replikat erstellen.
Cloud SQL erstellt eine Sicherung der primären Instanz und das Replikat. Sie werden dann zur Instanzseite der primären Instanz zurückgeleitet.
gcloud
Führen Sie den folgenden Befehl aus, um ein Replikat zu erstellen, das die Anforderungen eines DR-Replikats erfüllt:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --region=REPLICA_REGION_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --availability-type=AVAILABILITY_TYPE --edition="ENTERPRISE_PLUS"
Ersetzen Sie die folgenden Variablen:
- REPLICA_NAME: der Name des DR-Replikats
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- REPLICA_REGION_NAME: Geben Sie eine Region an, die sich von der Region der primären Instanz unterscheidet.
- DATABASE_VERSION: Geben Sie den Versionsstring an, der mit der Haupt- und Nebenversion der Datenbank der primären Instanz übereinstimmt, z. B.
POSTGRES_16
.Die Haupt- und Nebenversionen der Datenbank müssen für das primäre und das DR-Replikat identisch sein.
- MACHINE_TYPE: Geben Sie denselben Maschinentyp wie die primäre Instanz an. Der Maschinentyp sollte mit dem Maschinentyp der primären Instanz übereinstimmen.
- AVAILABILITY_TYPE: Wenn die primäre Instanz für Hochverfügbarkeit konfiguriert ist, empfehlen wir,
REGIONAL
anzugeben, um Hochverfügbarkeit zu aktivieren. - EDITION: Geben Sie
ENTERPRISE_PLUS
an.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- DATABASE_VERSION:-Versionsstring, der mit der Datenbankversion der primären Instanz übereinstimmt, z. B.
POSTGRES_16
. Die Datenbankversion muss für das primäre und das DR-Replikat identisch sein. - REPLICA_NAME: der Name der DR-Replikatinstanz, die Sie erstellen
- REPLICA_REGION: die Region der DR-Replikatinstanz Die Replikatregion muss sich von der Region der primären Instanz unterscheiden.
- MACHINE_TYPE: Geben Sie denselben Maschinentyp wie die primäre Instanz an. Es wird empfohlen, denselben Maschinentyp wie die primäre Instanz auszuwählen.
- AVAILABILITY_TYPE: Wenn die primäre Instanz für Hochverfügbarkeit konfiguriert ist, empfehlen wir,
REGIONAL
anzugeben, um Hochverfügbarkeit zu aktivieren.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "replicationType": "ASYNCHRONOUS", } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- DATABASE_VERSION:-Versionsstring, der mit der Datenbankversion der primären Instanz übereinstimmt, z. B.
POSTGRES_16
. Die Datenbankversion muss für das primäre und das DR-Replikat identisch sein. - REPLICA_NAME: der Name der DR-Replikatinstanz, die Sie erstellen
- REPLICA_REGION: die Region der DR-Replikatinstanz Die Replikatregion muss sich von der Region der primären Instanz unterscheiden.
- MACHINE_TYPE: Geben Sie denselben Maschinentyp wie die primäre Instanz an. Wir empfehlen, dass die Laufwerksgröße mit der Laufwerksgröße der primären Instanz übereinstimmt.
- AVAILABILITY_TYPE: Wenn die primäre Instanz für Hochverfügbarkeit konfiguriert ist, empfehlen wir,
REGIONAL
anzugeben, um Hochverfügbarkeit zu aktivieren.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "replicationType": "ASYNCHRONOUS", } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
DR-Replikat für die primäre Instanz festlegen
Im Folgenden wird beschrieben, wie Sie eines der regionenübergreifenden Replikate einer primären Instanz als DR-Replikat für das Switchover oder das Replikat-Failover festlegen.
Console
So legen Sie ein DR-Replikat für eine primäre Instanz fest:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die primäre Instanz und wählen Sie sie aus. Die Seite Übersicht für die primäre Instanz wird angezeigt.
- Klicken Sie im Navigationsmenü auf Replikate.
- Suchen Sie in der Liste der Lesereplikate das regionenübergreifende Lesereplikat, das Sie als DR-Replikat festlegen möchten.
- Klicken Sie für das Replikat auf die Schaltfläche more_vert Aktionen und wählen Sie Als DR-Replikat festlegen aus.
- Klicken Sie auf Bestätigen.
gcloud
Verwenden Sie den folgenden Befehl, um ein DR-Replikat zu einer primären Instanz festzulegen:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --failover-dr-replica-name=REPLICA_NAME
Ersetzen Sie die folgenden Variablen:
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- REPLICA_NAME: der Name des DR-Replikats
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- REPLICA_NAME: der Name des DR-Replikats
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
JSON-Text anfordern:
{ "replicationCluster": { "failoverDrReplicaName": "REPLICA_NAME" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- REPLICA_NAME: der Name des DR-Replikats
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
JSON-Text anfordern:
{ "replicationCluster": { "failoverDrReplicaName": "REPLICA_NAME" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Kennzeichnung des DR-Replikats ändern
Wenn das Replikat die Anforderungen erfüllt, können Sie ein anderes Replikat als DR-Replikat festlegen. Das alte DR-Replikat verliert die Kennzeichnung des DR-Replikats.
Console
So ändern Sie das DR-Replikat für eine primäre Instanz:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die primäre Instanz und wählen Sie sie aus. Die Seite Übersicht für die primäre Instanz wird angezeigt.
- Klicken Sie im Navigationsmenü auf Replikate.
- Suchen Sie in der Liste der Lesereplikate das regionenübergreifende Lesereplikat, das Sie als neues DR-Replikat festlegen möchten.
- Klicken Sie für das Replikat auf die Schaltfläche more_vert Aktionen und wählen Sie Als DR-Replikat festlegen aus.
gcloud
Wenn Sie das DR-Replikat ändern möchten, führen Sie den Befehl noch einmal aus und geben Sie ein anderes DR-Replikat an.
REST
Wenn Sie das DR-Replikat ändern möchten, stellen Sie die API-Anfrage noch einmal und geben Sie ein anderes DR-Replikat an.
Kennzeichnung des DR-Replikats ansehen
Mit der gcloud CLI oder der Cloud SQL Admin API können Sie prüfen, welches DR-Replikat der primären Instanz zugewiesen ist. Sie können auch prüfen, ob ein Replikat ein festgelegtes DR-Replikat ist.
Gehen Sie so vor, um herauszufinden, welches DR-Replikat für eine primäre Instanz festgelegt wurde.
Console
So finden Sie heraus, welches Lesereplikat das festgelegte DR-Replikat für eine primäre Instanz ist:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die primäre Instanz und wählen Sie sie aus. Die Seite Übersicht für die primäre Instanz wird angezeigt.
- Klicken Sie im Navigationsmenü auf Replikate.
- Prüfen Sie in der Liste der Lesereplikate, ob
PostgreSQL disaster recovery replica
in der Spalte Typ für das festgelegte DR-Replikat angezeigt wird.
gcloud
Verwenden Sie den folgenden Befehl, um herauszufinden, welche Instanz das festgelegte DR-Replikat einer primären Instanz ist:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Ersetzen Sie die folgende Variable:
- PRIMARY_INSTANCE_NAME: der Name der primären Instanz
Die Ausgabe dieses Befehls enthält das Feld failoverDrReplica
, mit dem das festgelegte DR-Replikat angegeben wird.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
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 ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Mit einem der folgenden Verfahren können Sie prüfen, ob ein Replikat ein DR-Replikat ist.
Console
So prüfen Sie, ob eine Replikatinstanz ein DR-Replikat ist:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die Replikatinstanz.
- Prüfen Sie, ob
PostgreSQL disaster recovery replica
in der Spalte Typ für das angegebene DR-Replikat angezeigt wird.
gcloud
Führen Sie den folgenden Befehl aus, um zu prüfen, ob eine Replikatinstanz ein DR-Replikat ist:
gcloud sql instances describe REPLICA_NAME
Ersetzen Sie die folgende Variable:
- REPLICA_NAME: der Name des Lesereplikats, das Sie prüfen möchten
Wenn das Replikat ein DR-Replikat ist, enthält die Ausgabe des Befehls das Feld drReplica=true
.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- REPLICA_NAME: der Name des Replikats
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME
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 ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- REPLICA_NAME: der Name des Replikats
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
DR-Replikat entfernen
Sie können die Kennzeichnung des DR-Replikats von einer primären Instanz löschen. Wenn jedoch einer primären Instanz kein DR-Replikat zugewiesen ist, können Sie keinen Switchover und kein Replikat-Failover ausführen.
Console
So entfernen Sie ein festgelegtes DR-Replikat aus einer primären Instanz:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die primäre Instanz und wählen Sie sie aus. Die Seite Übersicht für die primäre Instanz wird angezeigt.
- Klicken Sie im Navigationsmenü auf Replikate.
- Suchen Sie in der Liste der Lesereplikate das regionenübergreifende Lesereplikat, das Sie entfernen möchten.
- Klicken Sie für das Replikat auf die Schaltfläche more_vert Aktionen und wählen Sie Als DR-Replikat entfernen aus.
- Klicken Sie auf Bestätigen.
gcloud
Führen Sie den folgenden Befehl auf der primären Instanz aus, um die Kennzeichnung des DR-Replikats zu entfernen:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --clear-failover-dr-replica-name
Ersetzen Sie die folgende Variable:
- PRIMARY_INSTANCE_NAME: der Name der primären Instanz, aus der Sie das festgelegte DR-Replikat entfernen möchten
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- Setzen Sie das Feld
failoverDrReplicaName
auf einen leeren String.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
JSON-Text anfordern:
{ "replicationCluster": { "failoverDrReplicaName": "" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- Setzen Sie das Feld
failoverDrReplicaName
auf einen leeren String.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
JSON-Text anfordern:
{ "replicationCluster": { "failoverDrReplicaName": "" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Switchover durchführen
Nachdem Sie ein DR-Replikat festgelegt haben, können Sie den Switchover-Vorgang ausführen. Als Best Practice sollten Sie den Switchover-Vorgang jedoch unter den folgenden Umständen vermeiden:
- Die primäre Instanz wird aktiv verwendet.
- Administratorvorgänge werden ausgeführt, z. B. die automatische Sicherung oder die Aktivierung oder Deaktivierung der Hochverfügbarkeit (High Availability, HA).
Führen Sie einen Switchover durch, wenn das Transaktionsvolumen niedrig ist, um eine Zeitüberschreitung zu vermeiden.
Nach Abschluss des Switchovers wird die Sicherung der neuen primären Instanz (dem vorherigen DR-Replikat) erstellt, sobald die neue primäre Instanz hochgestuft wird. Nach Abschluss dieser Sicherung ist die Wiederherstellung zu einem bestimmten Zeitpunkt (Point-Time-Recovery, PITR) auf der neuen primären Instanz vollständig aktiviert. Diese Sicherung kann je nach Laufwerkgröße zwischen 5 und 15 Minuten dauern. Die PITR-Abdeckung beginnt erst, wenn diese Sicherung abgeschlossen wurde. Weitere Informationen zur Verwendung von PITR mit erweiterter DR finden Sie unter PITR mit erweiterter DR verwenden.
Nach Abschluss des Switchover-Vorgangs werden Sie feststellen, dass die Richtung der Replikation umgekehrt wird.
Nachdem die alte primäre Instanz als Lesereplikat neu konfiguriert wurde, wird der DNS-Schreibendpunkt, der zuvor auf die alte primäre Instanz verweiste, auf die neue primäre Instanz umgeleitet.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie den Switchover-Vorgang ausführen:
- Legen Sie ein DR-Replikat fest. Sie können nur ein Switchover zwischen der primären Instanz und dem angegebenen DR-Replikat ausführen.
- Prüfen Sie, ob die primäre Instanz und das DR-Replikat online sind.
- Prüfen Sie, ob PITR für die primäre Instanz aktiviert ist. Informationen zum Aktivieren der PITR finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt verwenden.
- Wenn Sie einen DNS-Schreibendpunkt verwenden, prüfen Sie, ob die SSL-Konfiguration für die primäre Instanz und das DR-Replikat identisch ist. Wenn das DR-Replikat beispielsweise so konfiguriert ist, dass SSL-Verschlüsselung erzwungen wird, die primäre Instanz aber unverschlüsselte Verbindungen zulässt, können Clients nach Abschluss des Switchover-Vorgangs keine Verbindung mehr zur neuen primären Instanz herstellen.
- Erstellen Sie eine On-Demand-Sicherung der primären Instanz. Diese Sicherung ist eine Vorsichtsmaßnahme, falls Sie nach einem unerwarteten Fehler eine Wiederherstellung durchführen müssen.
Switchover-Vorgang ausführen
Console
So führen Sie den Switchover-Vorgang aus:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie das festgelegte DR-Replikat der primären Instanz.
- Klicken Sie auf die DR-Replikatinstanz. Die Seite Übersicht für das DR-Replikat wird angezeigt.
- Klicken Sie auf die Schaltfläche Wechseln.
- Geben Sie auf der Seite Switchover zwischen dem primären und dem DR-Replikat den Namen der primären Instanz in das Feld Instanz-ID ein.
- Klicken Sie auf Umstellung.
gcloud
Führen Sie den folgenden Befehl aus, um den Switchover auszuführen:
gcloud sql instances switchover REPLICA_NAME [--db-timeout=TIMEOUT_DURATION ]
Ersetzen Sie die folgenden Variablen:
- REPLICA_NAME: der Name des festgelegten DR-Replikats, mit dem die primäre Instanz die Rollen wechseln soll.
- TIMEOUT_DURATION: Optional. Das Zeitlimit, um den Abschluss der Datenbankvorgänge auf der Instanz zu ermöglichen
Wenn Sie diesen Parameter nicht angeben, enthält der Umschaltvorgang ein Zeitlimit von 10 Minuten.
Sie können den Wert dieses Zeitlimits erhöhen, indem Sie den Parameter --db-timeout
angeben. Ersetzen Sie TIMEOUT_DURATION durch eine Zeitraumdauer von bis zu 24 Stunden, einschließlich einer Anfangsschreibweise für das Format. Geben Sie beispielsweise für 30 Sekunden 30s
an. Für 24 Stunden geben Sie 24h
an. Sie können auch Brucheinheiten des Zeitraums mit Dezimalzahlen mit bis zu neun Stellen angeben. Geben Sie beispielsweise für 30,5 Minuten 30.5m
an.
Wenn keine ausstehenden Vorgänge vorhanden sind, können Sie den Wert dieses Zeitlimits verringern.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- REPLICA_NAME: der Name des DR-Replikats
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/switchover
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 ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- REPLICA_NAME: der Name des DR-Replikats
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/switchover
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Notfallwiederherstellung durch Aufruf eines Replikat-Failovers ausführen
Bei einem regionalen Ausfall oder einem Notfall können Sie die Notfallwiederherstellung durchführen, indem Sie einen Replikat-Failover-Vorgang zu dem vorgesehenen DR-Replikat aufrufen. Für ein Replikat-Failover stufen Sie das festgelegte DR-Replikat hoch. Im Gegensatz zur Umstellung erfolgt das Hochstufen des DR-Replikats sofort.
Da das DR-Replikat die Rolle der primären Instanz sofort übernimmt, ist es möglich, dass das Replikat aufgrund der Replikationsverzögerung nicht alle Daten aus der alten primären Instanz hat. Aus diesem Grund kann bei einem Replikat-Failover Datenverluste auftreten.
Im Rahmen des Hochstufungsprozesses erstellt das Replikat-Failover eine Sicherung der neuen primären Instanz (dem vorherigen DR-Replikat), sobald das DR-Replikat zur neuen primären Instanz wird. Nach Abschluss der Sicherung ist die Wiederherstellung zu einem bestimmten Zeitpunkt (Point-In-Time Recovery, PITR) auf der neuen primären Instanz vollständig aktiviert. Diese Sicherung kann je nach Laufwerkgröße der neuen (und alten) primären Instanz zwischen 5 und 15 Minuten dauern. Während dieses Sicherungszeitraums ist PITR nicht verfügbar.
Sobald die alte primäre Instanz wieder online ist, erstellt der Replikat-Failover-Prozess eine Sicherung. Nachdem diese Sicherung erstellt wurde, wird die alte primäre Instanz als Lesereplikat der neuen primären Instanz neu erstellt.
Weitere Informationen zur Verwendung von PITR mit erweiterter DR finden Sie unter PITR mit erweiterter DR verwenden.
Nachdem Sie den Replikat-Failover-Vorgang aufgerufen haben, wird der DNS-Schreibendpunkt, der zuvor auf die alte primäre Instanz verweiste, auf die neue primäre Instanz aufgelöst.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie ein Replikat-Failover ausführen können:
- Legen Sie ein DR-Replikat fest, falls noch nicht geschehen. Sie können ein Replikat-Failover nur zwischen der primären Instanz und dem angegebenen DR-Replikat ausführen.
- Sorgen Sie dafür, dass das DR-Replikat online und fehlerfrei ist.
Replikat-Failover-Vorgang ausführen
Console
So führen Sie den Replikat-Failover-Vorgang aus:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf die DR-Replikatinstanz. Die Seite Übersicht für das DR-Replikat wird angezeigt.
- Klicken Sie auf die Schaltfläche Replikat-Failover.
- Geben Sie auf der Seite Replikat-Failover zwischen dem primären und dem DR-Replikat ausführen den Namen der primären Instanz in das Feld Instanz-ID ein. Damit bestätigen Sie, dass Sie mit dem Vorgang fortfahren möchten.
- Klicken Sie zum Starten des Replikat-Failovers auf Replikat-Failover.
gcloud
Verwenden Sie den folgenden Befehl, um ein Replikat-Failover zum DR-Replikat aufzurufen:
gcloud sql instances promote-replica \ REPLICA_NAME --failover
Ersetzen Sie die folgende Variable:
- REPLICA_NAME: der Name des DR-Replikats
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- REPLICA_NAME: der Name des DR-Replikats
- ENABLE_REPLICA_FAILOVER: Legen Sie
true
fest, um das Replikat-Failover zu verwenden. Wenn Siefalse
festlegen, verwendet die API die regulärepromoteReplica
-Methode ohne Replikat-Failover.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER
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 ID oder Projektnummer des Google Cloud-Projekts der primären Instanz und des DR-Replikats
- REPLICA_NAME: der Name des DR-Replikats
- ENABLE_REPLICA_FAILOVER: Legen Sie
true
fest, um das Replikat-Failover zu verwenden. Wenn Siefalse
festlegen, verwendet die API die regulärepromoteReplica
-Methode ohne Replikat-Failover.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Status eines Replikat-Failovers prüfen
Das Replikat-Failover erfolgt in zwei Phasen. Die erste Phase ist die Hochstufung des DR-Replikats. In der zweiten Phase wird die alte primäre Instanz als Lesereplikat wiederhergestellt.
Prüfen Sie den Status der einzelnen Phasen, um den Status des Replikat-Failovers zu prüfen.
Prüfen Sie den Status der ersten Phase.
Console
So prüfen Sie, ob das DR-Replikat zu einer eigenständigen Instanz hochgestuft wurde:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie den Namen des DR-Replikats, das Sie hochgestuft haben.
- Prüfen Sie, ob „PostgreSQL VERSION“ in der Spalte Typ für die neue primäre Instanz angezeigt wird.
gcloud
Sie können den Status prüfen, indem Sie den folgenden Befehl ausführen:gcloud sql instances describe DR_REPLICA_NAME
Ersetzen Sie die folgende Variable:
- DR_REPLICA_NAME ist der Name des hochgestuften DR-Replikats.
Prüfen Sie in der Ausgabe, ob das folgende Feld angezeigt wird und das Replikat zu einer eigenständigen Cloud SQL-Instanz geworden ist:
instanceType: CLOUD_SQL_INSTANCE
-
Prüfen Sie im Vorgangslog der Instanz auf die Meldung
RECONFIGURE_OLD_PRIMARY
, um den Abschluss der zweiten Phase zu prüfen.Die Darstellung dieser Nachricht hängt davon ab, wann die alte primäre Instanz online ist. Dies kann im Notfall einige Minuten oder Tage dauern.
Weitere Informationen zum Prüfen der Vorgangslogs für eine Instanz finden Sie unter Instanzlogs ansehen.
PITR mit erweiterter Notfallwiederherstellung verwenden
Sowohl beim Switchover als auch beim Replikat-Failover werden die folgenden Änderungen vorgenommen, um die Sicherung und PITR zu unterstützen, sobald das DR-Replikat zu einer primären Instanz hochgestuft wird:
- Die Sicherungskonfiguration, einschließlich der automatischen Sicherungsplanung, wird von der alten primären Instanz in die neue primäre Instanz kopiert.
Eine neue Sicherung wird erstellt, um PITR auf der neuen primären Instanz zu unterstützen.
Die Aufbewahrungsrichtlinie des Transaktionslogs wird von der alten primären Instanz zur neuen primären Instanz kopiert.
Sowohl für die Sicherungskonfiguration als auch für die Aufbewahrungsrichtlinien der Transaktionslogs sollten Sie überprüfen, ob die von der alten primären Instanz übernommenen Einstellungen für die neue primäre Instanz korrekt sind.
Beginn der PITR-Abdeckung
Am Ende des Switchover-Vorgangs plant Cloud SQL automatische Sicherungen und erstellt die erste Sicherung der neuen primären Instanz. Wenn Sie möchten, dass die PITR-Abdeckung früher als später beginnt, sollten Sie prüfen, ob die erste Sicherung erfolgreich war. Die neu hochgestufte primäre Instanz hat die PITR-Abdeckung erst, nachdem die erste automatische Sicherung erfolgreich abgeschlossen wurde.
Weitere Informationen zum Aufrufen der Sicherungen, die für eine Instanz verfügbar sind, finden Sie unter Liste der Sicherungen ansehen.
PITR-Abdeckung für Instanzen während des Switchovers und des Replikat-Failover
Wenn eine Instanz an einem Switchover oder einem Replikat-Failover-Vorgang beteiligt ist, verbringt die Instanz Zeit als Lesereplikat. PITR und die Wiederherstellung einer Sicherung werden während des Zeitraums unterstützt, in dem die Instanz als Lesereplikat und als primäre Instanz verwendet wird.
Sie können die PITR zu einem Zeitpunkt vor dem Switchover ausführen, als die Instanz noch eine primäre Instanz war. Sowohl beim Switchover als auch beim Replikat-Failover wird in Cloud SQL eine Best-Effort-Sicherung für die neue primäre Instanz gestartet, sobald die neue primäre Instanz hochgestuft wird. PITR wird erst nach Abschluss dieser Sicherung auf der hochgestuften Instanz aktiviert. Diese Sicherung kann je nach Laufwerkgröße zwischen 5 und 15 Minuten dauern.
Split-Brain bei Replikat-Failover
Es kann zu einer Splitbrain-Situation kommen, wenn die primäre Instanz weiterhin Schreibvorgänge akzeptiert, während ein Replikat mithilfe des Replika-Failovers hochgestuft wird. Nachdem das Replikat hochgestuft wurde und die alte primäre Instanz wieder verfügbar ist, wird sie als Replikat der hochgestuften Instanz neu erstellt und eine endgültige Sicherung erstellt. Mit dieser Sicherung können alle Split-Brain-Daten wiederhergestellt werden, die nicht in das beförderte Replikat geschrieben wurden.
Sicherungen und Transaktionslogs auf Replikaten löschen
Wenn eine primäre Instanz, die mit PITR aktiviert wurde, und Sicherungen zu einem Lesereplikat wird, wird die letzte Sicherung und PITR-Aufbewahrungsrichtlinie ab ihrer Zeit als primäre Instanz beibehalten und während ihrer Zeit als Replikat angewendet. Auch wenn die neue primäre Instanz keine Sicherungen erstellt, werden die alten Sicherungen und Transaktionslogs, die für PITR verwendet werden, gemäß der zuletzt konfigurierten Richtlinie auf dem Lesereplikat gelöscht.
Wenn die Instanz beispielsweise für tägliche automatische Sicherungen konfiguriert ist und sieben Sicherungen mit sieben Tagen PITR-Logs speichert, werden alle Daten, die älter als sieben Tage sind, einmal täglich gelöscht, sobald diese Instanz zu einem Lesereplikat wird.
Wenn Sie Sicherungen früher löschen müssen, können Sie diese manuell entfernen. Weitere Informationen finden Sie unter Sicherung löschen.
Beschränkungen
Die erweiterte Notfallwiederherstellung wird für Cloud SQL-Instanzen, die Private Service Connect verwenden, nicht unterstützt. Die erweiterte Notfallwiederherstellung unterstützt den Zugriff auf private Dienste.
Sie können eine Lesereplikatinstanz der Cloud SQL Enterprise Plus-Version nicht als DR-Replikat festlegen, wenn die primäre Instanz ihre Transaktionslogs für die Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) auf dem Laufwerk speichert. Informationen zum Prüfen, wo eine Instanz ihre Logs für PITR speichert, finden Sie unter Speicherort von Transaktionslogs prüfen, die für PITR verwendet werden.
Sie können ein externes Replikat nicht als DR-Replikat festlegen.
Terraform wird für Switchover- oder Replikat-Failover-Vorgänge nicht unterstützt.
- Die erweiterte Notfallwiederherstellung wird für PostgreSQL 17 nicht unterstützt.
Fehlerbehebung
Problem | Fehlerbehebung |
---|---|
Der Umschaltvorgang ist fehlgeschlagen. |
|
Der Umschaltvorgang ist fehlgeschlagen und die primäre Instanz bleibt im schreibgeschützten Modus. | Führen Sie einen Neustart der Datenbank durch, um sie wieder in den Schreibmodus zu versetzen. |
Der Umschaltvorgang ist abgeschlossen, aber in der Google Cloud Console werden die neuen umgekehrten Rollen für die Instanzen nicht angezeigt. | Aktualisieren Sie Ihren Browser, um die aktualisierte Topologie anzuzeigen. |
Der Replikat-Failover-Vorgang ist fehlgeschlagen. |
|
Nächste Schritte
- An Standorten weltweit verfügbare Google Cloud-Dienste
- Informationen zur Beobachtbarkeit von Datenbanken
- Cloud SQL-Instanzen überwachen