Auf dieser Seite wird gezeigt, wie ein Lesereplikat für eine Cloud SQL-Instanz erstellt wird.
Ein Lesereplikat ist eine Kopie der primären Instanz, die Änderungen der primären Instanz unter normalen Umständen nahezu in Echtzeit darstellt. Mit einem Lesereplikat können Sie die primäre Instanz von Leseanfragen oder Analysetraffic entlasten.
Darüber hinaus können Sie für die Notfallwiederherstellung eine regionale Migration ausführen. Wenn ein Replikat ein regionenübergreifendes Replikat ist, ist es möglich, einen Failover in eine andere Region durchzuführen. Insbesondere können Sie ein Replikat zu einer eigenständigen Instanz hochstufen, sodass vorhandene Replikate diese Instanz nicht als primär betrachten.
Weitere Informationen zur Funktionsweise von Replikaten finden Sie unter Replikation in Cloud SQL.
Hinweis
Achten Sie beim Erstellen des ersten Replikats für diese Instanz darauf, dass die Instanz die Anforderungen für primäre Instanzen erfüllt. Weitere Informationen
Lesereplikat erstellen
Im Folgenden werden die Schritte zum Erstellen eines Lesereplikats dargestellt.
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Suchen Sie die Instanz, für die Sie ein Replikat erstellen möchten, und öffnen Sie dann das Menü
more actions
neben der Liste. - Wählen Sie Lesereplikat erstellen aus.
Wenn Sie diese Option nicht sehen, handelt es sich bei der Instanz um ein Replikat; Sie können kein Replikat eines Replikats erstellen.
- Wenn für die Instanz Sicherungen und binäres Logging aktiviert sind, fahren Sie mit dem nächsten Schritt fort. Andernfalls wählen Sie Automatische Sicherungen und Enable binary logging. Klicken Sie auf Weiter und dann auf Speichern und neu starten, um die Instanz neu zu starten.
Durch die Aktivierung der Binärprotokollierung wird die Instanz neu gestartet.
Ändern Sie im Bereich Instanz anpassen der Seite die Einstellungen für Ihr Replikat. Klicken Sie zuerst auf KONFIGURATIONSOPTIONEN EINBLENDEN, um die Gruppe der Einstellungen aufzurufen. Maximieren Sie dann die gewünschten Gruppen, um die Einstellungen zu prüfen und anzupassen. Rechts sehen Sie eine Zusammenfassung aller Optionen, die Sie auswählen. Das Anpassen dieser Einstellungen ist optional. Standardwerte werden immer zugewiesen, wenn keine Anpassungen vorgenommen werden.
Weitere Informationen zu den einzelnen Einstellungen finden Sie auf der Seite zu den Instanzeinstellungen.
Wenn Sie beispielsweise anderen Google Cloud-Diensten wie BigQuery Zugriff auf Daten in Cloud SQL gewähren und diese Daten über eine interne Verbindung abfragen möchten, maximieren Sie die Gruppe Verbindungen und deaktivieren Sie dann das Kästchen Öffentliche IP-Adressen.
- Klicken Sie auf Replikat erstellen.
Cloud SQL erstellt bei Bedarf eine Sicherung und das Replikat. Sie werden dann zur Instanzseite der primären Instanz zurückgeleitet.
gcloud
- Prüfen Sie den Status der primären Instanz:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Wenn das Attribut
databaseReplicationEnabled
den Werttrue
hat, ist die Instanz ein Replikat. Sie können kein Replikat eines Replikats erstellen. - Wenn das Attribut
enabled
unterbackupConfiguration
den Wertfalse
hat, aktivieren Sie jetzt die Sicherungen für die primäre Instanz: Der Parametergcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
backup-start-time
wird im 24-Stunden-Format in der Zeitzone UTC±00 festgelegt und definiert den Beginn eines vierstündigen Sicherungszeitraums. Die Sicherungen können zu einer beliebigen Zeit innerhalb dieses Sicherungszeitraums gestartet werden. - Wenn das Attribut
binaryLogEnabled
den Wertfalse
hat, aktivieren Sie binäre Logs auf der primären Instanz: Durch Aktivierung der binären Logs wird die Instanz neu gestartet.gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
- Erstellen Sie das Replikat:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
Bei Bedarf können Sie mithilfe des Parameters
--tier
eine andere Ebenengröße angeben. Wenn Sie ein Replikat aus einer primären Instanz für MySQL 8.4 oder höher erstellen und die Cloud SQL-Version der Instanz entweder Enterprise oder Enterprise Plus ist, müssen Sie keinen Wert für diesen Parameter angeben. Dem Replikat wird der Maschinentyp der primären Instanz zugewiesen.Mit dem Parameter
--region
können Sie eine andere Region angeben.Sie können weitere Parameter für andere Instanzeinstellungen hinzufügen: Weitere Informationen finden Sie unter gcloud sql instances create.
Wenn die primäre Instanz nur eine interne IP-Adresse hat und Sie anderen Google Cloud-Diensten wie BigQuery Zugriff auf Daten in Cloud SQL gewähren und Abfragen für diese Daten über eine interne Verbindung ausführen möchten, dann fügen Sie dem Befehl den Parameter
--enable-google-private-path
hinzu.Sie müssen das Replikat im selben VPC-Netzwerk wie die primäre Instanz erstellen. Sie können in diesem VPC-Netzwerk auch
allocated-ip-range-name
angeben. Wenn kein Bereich angegeben ist, wird das Replikat in einem zufällig ausgewählten Bereich erstellt.
-
Binäres Logging wird für Lesereplikatinstanzen unterstützt (nur MySQL 5.7 und höher). Wird auf Legacy-HA-Failover-Replikaten nicht unterstützt.) Aktivieren Sie binäres Logging in einem Replikat mit demselben
gcloud CLI
-Befehl. Verwenden Sie dabei den Instanznamen des Replikats anstelle des Instanznamens der primären Instanz.gcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
Die Langlebigkeit des binären Loggings im Replikat (aber nicht auf der primären Instanz) kann mit dem Flag
sync_binlog
festgelegt werden. Damit wird gesteuert, wie oft der MySQL-Server das binäre Log mit dem Laufwerk synchronisiert.Sicherungen können nicht auf Replikatinstanzen aktiviert werden. Binäres Logging kann jedoch im Gegensatz zur primären Instanz auch dann für ein Replikat aktiviert werden, wenn Sicherungen deaktiviert sind.
Die binlog-Aufbewahrungsdauer für Replikatinstanzen wird automatisch auf einen Tag eingestellt, im Gegensatz zu sieben Tagen bei primären Instanzen.
Terraform
Verwenden Sie zum Erstellen eines Lesereplikats die Terraform-Ressource.
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
- Aktuelle Sicherungskonfiguration abrufen
Mit der Methode
get
der Instanzressource rufen Sie die Datenbankversion und die aktuelle Sicherungskonfiguration für die primäre Instanz ab.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- 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:
- Festlegung der Replikationsfelder prüfen
Wenn entweder
enabled
oderpointInTimeEnabled
den Wertfalse
hat, verwenden Sie die Methodepatch
der Instanzressource, um beide Parameter zu aktivieren. Legen Sie in der Anfrage die Attribute der Sicherungskonfiguration fest, die Sie ändern möchten.Setzen Sie zum Aktivieren von Sicherungen
enabled
auftrue
undstartTime
auf eine Tageszeit im FormatHH:MM
. Der ParameterstartTime
wird im 24-Stunden-Format in der Zeitzone UTC±00 festgelegt und definiert den Beginn eines vierstündigen Sicherungszeitraums. Die Sicherungen können zu einem beliebigen Zeitpunkt innerhalb dieses Sicherungszeitraums gestartet werden.Wenn Sie die Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren möchten, legen Sie für
pointInTimeEnabled
den Werttrue
fest.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
- START_TIME: die Uhrzeit (in Stunden und Minuten)
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "binaryLogEnabled": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
- Lesereplikat erstellen
Mit der Methode
insert
der Instanzressource erstellen Sie das Lesereplikat. Das AttributdatabaseVersion
muss mit der primären Instanz übereinstimmen. Wenn die primäre Instanz eine interne IP-Adresse verwendet, können Sie einenallocatedIpRange
so angeben wie beim Erstellen einer primären Instanz. Wenn kein Bereich angegeben ist, wird das Replikat in einem zufällig ausgewählten Bereich erstellt. Legen Sie für ein regionenübergreifendes Lesereplikat eine andere Region als die Region der primären Instanz fest.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- database-version: String der Enum-Version (z. B. MYSQL_8_0)
- primary-instance-name: Der Name der primären Instanz
- primary-instance-region: Die Region der primären Instanz
- replica-region: Die Region der Replikatinstanz
- replica-name: der Name der Replikatinstanz
- machine-type: Enum-String des Maschinentyps Beispiel: „db-custom-1-3840”
- private-network: Das autorisierte Netzwerk, das Sie hinzufügen oder auswählen, um eine private Verbindung zu erstellen.
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", "settingsVersion": 0, "ipConfiguration": { object (IpConfiguration) }, { "ipv4Enabled": false, "privateNetwork": private-network, "requireSsl": boolean, "authorizedNetworks": [ { object (AclEntry) } ], "allocatedIpRange": string } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
REST v1beta4
- Aktuelle Sicherungskonfiguration abrufen
Mit der
get
-Methode der Instanzressource rufen Sie die Datenbankversion und die aktuelle Sicherungskonfiguration für den Master ab.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- primary-instance-name: Der Name der primären Instanz
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/sql/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:
- Festlegung der Replikationsfelder prüfen
Wenn entweder
enabled
oderbinaryLogEnabled
auf der primären Instanz den Wertfalse
hat, verwenden Sie diepatch
-Methode der Instanzressource, um beide auszuwählen. Geben Sie in der Anfrage alle Attribute der Sicherungskonfiguration an, die Sie ändern möchten.Geben Sie zum Aktivieren von Sicherungen für
enabled
den Werttrue
und fürstartTime
eine Tageszeit im FormatHH:MM
an. Der ParameterstartTime
wird im 24-Stunden-Format in der Zeitzone UTC±00 festgelegt und definiert den Beginn eines vierstündigen Sicherungszeitraums. Die Sicherungen können zu einem beliebigen Zeitpunkt innerhalb dieses Sicherungszeitraums gestartet werden.Wenn Sie die Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren möchten, legen Sie für
binaryLogEnabled
den Werttrue
auf der primären Instanz fest.Binäres Logging wird für Lesereplikatinstanzen unterstützt (nur MySQL 5.7 und höher). Aktivieren Sie binäres Logging in einem Replikat mit derselben API. Verwenden Sie dabei die Instanz-ID des Replikats anstelle der Instanz-ID der primären Instanz.
Die Langlebigkeit des binären Loggings im Replikat (aber nicht auf der primären Instanz) kann mit dem Flag
sync_binlog
festgelegt werden. Damit wird gesteuert, wie oft der MySQL-Server das binäre Log mit dem Laufwerk synchronisiert.Sicherungen können nicht auf Replikatinstanzen aktiviert werden. Binäres Logging kann jedoch im Gegensatz zur primären Instanz auch dann für ein Replikat aktiviert werden, wenn Sicherungen deaktiviert sind.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
- START_TIME: die Uhrzeit (in Stunden und Minuten)
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "binaryLogEnabled": true } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
- Lesereplikat erstellen
Mit der Methode
insert
der Instanzressource erstellen Sie das Lesereplikat. Das AttributdatabaseVersion
muss mit der primären Instanz übereinstimmen. Wenn die primäre Instanz eine interne IP-Adresse verwendet, können Sie einenallocatedIpRange
so angeben wie beim Erstellen einer primären Instanz. Legen Sie für ein regionenübergreifendes Lesereplikat eine andere Region als die Region der primären Instanz fest.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- database-version: String der Enum-Version (z. B. MYSQL_8_0)
- primary-instance-name: Der Name der primären Instanz
- primary-instance-region: Die Region der primären Instanz
- replica-region: Die Region der Replikatinstanz
- replica-name: der Name der Replikatinstanz
- machine-type: Enum-String des Maschinentyps Beispiel: „db-custom-1-3840”
- private-network: Das autorisierte Netzwerk, das Sie hinzufügen oder auswählen, um eine private Verbindung zu erstellen.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/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", "settingsVersion": 0, "ipConfiguration": { object (IpConfiguration) }, { "ipv4Enabled": false, "privateNetwork": private-network, "requireSsl": boolean, "authorizedNetworks": [ { object (AclEntry) } ], "allocatedIpRange": string } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Lesereplikat einer Instanz mit aktiviertem Private Service Connect erstellen
Wenn Sie ein Lesereplikat einer Instanz mit aktiviertem Private Service Connect erstellen möchten, verwenden Sie gcloud CLI oder die API. Sie können dieses Replikat entweder in derselben Region oder in einer anderen Region als die primäre Instanz (regionenübergreifendes Lesereplikat) erstellen.
Das Lesereplikat kann nicht aus einer Instanz mit einem anderen Verbindungstyp repliziert werden. Beispielsweise kann eine Instanz mit aktiviertem Private Service Connect nur aus einer anderen Private Service Connect-Instanz repliziert werden. Außerdem kann kein Replikat von einer Instanz aus einer Instanz erstellt werden, die externe IP-Verbindungen unterstützt, oder von einer Instanz, die mit Zugriff auf private Dienste konfiguriert ist.
gcloud
Verwenden Sie den Befehl gcloud sql instances create
, um eine Lesereplik einer Instanz zu erstellen:
gcloud sql instances create REPLICA_INSTANCE_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip
Ersetzen Sie die folgenden Werte:
- REPLICA_INSTANCE_NAME: der Name der Replikatinstanz
- PRIMARY_INSTANCE_NAME: Der Name der primären Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält.
- REGION_NAME: der Name der Region für die Replikatinstanz.
ALLOWED_PROJECTS: eine Liste zulässiger Projekt-IDs oder -Nummern, durch Kommas getrennt. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie es nicht verwenden, um eine Instanz zu erstellen und Private Service Connect dafür zu aktivieren.
Cloud SQL kopiert die zulässigen Projekte für die primäre Instanz nicht in das Replikat. Für jedes Replikat müssen Sie einen Private Service Connect-Endpunkt erstellen. Wenn Sie den Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors verwenden, müssen Sie eine DNS-Zone und einen DNS-Eintrag für die Replikate erstellen.
- AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.ZONAL
: keine Failover-Funktion bereitstellen Dies ist der Standardwert.
Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.
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, das die Instanz enthält.
- REPLICA_INSTANCE_NAME: der Name der Replikatinstanz
- REGION_NAME: der Name der Region für die Replikatinstanz.
- MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
- AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.ZONAL
: keine Failover-Funktion bereitstellen Dies ist der Standardwert.
Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.
ALLOWED_PROJECTS: eine Liste zulässiger Projekt-IDs oder -Nummern, durch Kommas getrennt. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie es nicht verwenden, um eine Instanz zu erstellen und Private Service Connect dafür zu aktivieren.
Cloud SQL kopiert die zulässigen Projekte für die primäre Instanz nicht in das Replikat. Für jedes Replikat müssen Sie einen Private Service Connect-Endpunkt erstellen. Wenn Sie den Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors verwenden, müssen Sie eine DNS-Zone und einen DNS-Eintrag für die Replikate erstellen.
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": "MYSQL_8_0", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
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, das die Instanz enthält.
- REPLICA_INSTANCE_NAME: der Name der Replikatinstanz
- REGION_NAME: der Name der Region für die Replikatinstanz.
- MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
- AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.ZONAL
: keine Failover-Funktion bereitstellen Dies ist der Standardwert.
Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.
ALLOWED_PROJECTS: eine Liste zulässiger Projekt-IDs oder -Nummern, durch Kommas getrennt. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie es nicht verwenden, um eine Instanz zu erstellen und Private Service Connect dafür zu aktivieren.
Cloud SQL kopiert die zulässigen Projekte für die primäre Instanz nicht in das Replikat. Für jedes Replikat müssen Sie einen Private Service Connect-Endpunkt erstellen. Wenn Sie den Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors verwenden, müssen Sie eine DNS-Zone und einen DNS-Eintrag für die Replikate erstellen.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "MYSQL_8_0", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Lesereplikate für die IAM-Datenbankauthentifizierung konfigurieren
Bei Lesereplikaten ist das Flagcloudsql_iam_authentication
nicht automatisch aktiviert, wenn es auf der primären Instanz aktiviert wird.
So konfigurieren Sie ein Lesereplikat für die Authentifizierung einer IAM-Datenbank:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Suchen Sie in der Konfigurationskachel nach dem Flag
cloudsql_iam_authentication
. Wenn das Flag nicht in der Liste enthalten ist, ist es nicht nötig, das Flag im Lesereplikat zu aktivieren. Befindet sich das Flag in der Liste, müssen Sie das Flag für das Lesereplikat aktivieren. Wenn Sie das Flag für das Lesereplikat aktivieren müssen, fahren Sie mit dem nächsten Schritt fort. - Wählen Sie im SQL-Navigationsmenü die Option Replikate aus.
- Klicken Sie auf den Namen des Replikats, das Sie bearbeiten möchten.
- Klicken Sie auf Bearbeiten.
- Maximieren Sie im Bereich Konfigurationsoptionen den Eintrag Flags.
- Wählen Sie + Hinzufügen aus.
- Geben Sie als Flag-Namen
cloudsql_iam_authentication
ein. Achten Sie darauf, dass für dieses Flag An ausgewählt ist. - Klicken Sie auf Speichern.
Kaskadierende Replikate erstellen
In diesem Abschnitt wird beschrieben, wie Sie kaskadierende Replikate erstellen und verwalten.
Informationen zur Funktionsweise von kaskadierenden Replikaten finden Sie unter kaskadierende Replikate.
Schritte zum Erstellen eines kaskadierenden Replikats
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Aktivieren Sie für MySQL 5.7 oder höher die Replikation.
- Klicken Sie auf den Tab Replikate für das Replikat, das als übergeordnetes Element für das Replikat fungieren soll, das Sie erstellen möchten.
- Klicken Sie auf Replikat erstellen.
- Aktualisieren Sie auf der Seite Lesereplikat erstellen die Instanz-ID sowie alle anderen Konfigurationsoptionen, einschließlich Name, Region und Zone.
- Klicken Sie auf Erstellen.
Cloud SQL erstellt ein Replikat. Sie werden dann zur Instanzseite des übergeordneten Replikats zurückgeleitet.
- Führen Sie die Schritte 4 bis 6 für jedes neue kaskadierende Replikat aus, das Sie erstellen möchten.
gcloud
- Wenn Sie MySQL Version 5.7 oder höher verwenden, aktivieren Sie binlogs für das primäre Replikat des neuen Replikats:
Ersetzen Sie PARENT_REPLICA_NAME durch den Namen des übergeordneten Replikats.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Erstellen Sie das neue Replikat. Geben Sie dazu mit dem Flag
--master-instance-name
die primäre Replikatdatenbank als primäre Instanz an: - REPLICA_NAME ist die eindeutige ID des Replikats, das Sie erstellen
- PARENT_REPLICA_NAME: der Name des übergeordneten Replikats.
- Nachdem Sie das kaskadierende Replikat erstellt haben, können Sie sehen, dass die an der primären Instanz vorgenommenen Änderungen für alle Replikate in der Kette der kaskadierenden Replikate übernommen werden.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
curl
- Wenn Sie MySQL Version 5.7 oder höher verwenden, aktivieren Sie binäres Logging:
Speichern Sie zum Aktivieren des binären Loggings den folgenden JSON-Code in einer Datei mit dem Namen „request.JSON“ und rufen Sie dann den curl-Befehl auf, um binäres Logging zu aktivieren.
{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Zum Erstellen eines Replikats unter dem übergeordneten Replikat bearbeiten Sie das folgende JSON-Codebeispiel und speichern es in einer Datei mit dem Namen
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Führen Sie dazu diesen Befehl aus:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
Fehlerbehebung
Problem | Fehlerbehebung |
---|---|
Beim Erstellen hat das Lesereplikat nicht repliziert. | Möglicherweise finden Sie in den Logdateien einen spezifischen Fehler. Prüfen Sie die Logs in Cloud Logging, um den tatsächlichen Fehler zu finden. |
Lesereplikat kann nicht erstellt werden – invalidFlagValue-Fehler | Eines der Flags in der Anfrage ist ungültig. Dies kann ein Flag sein, das Sie explizit angegeben haben, oder ein Flag, für das ein Standardwert festgelegt wurde.
Prüfen Sie als Erstes, ob der Wert des Flags Wenn das Flag |
Lesereplikat kann nicht erstellt werden – unbekannter Fehler. | Möglicherweise finden Sie in den Logdateien einen spezifischen Fehler.
Prüfen Sie die Logs in Cloud Logging, um den tatsächlichen Fehler zu finden.
Lautet der Fehler |
Laufwerk ist voll. | Das Laufwerk der primären Instanz kann während der Replikaterstellung zu voll werden. Bearbeiten Sie die primäre Instanz, um sie auf ein größeres Laufwerk zu aktualisieren. |
Die Replikatinstanz verwendet zu viel Arbeitsspeicher. | Das Replikat verwendet temporären Speicher zum Speichern häufig angeforderter Lesevorgänge im Cache, was dazu führen kann, dass es mehr Speicher als die primäre Instanz verwendet.
Starten Sie die Replikatinstanz neu, um den temporären Speicherplatz freizugeben. |
Replikation gestoppt. | Das maximale Speicherlimit wurde erreicht und die automatische Speichererweiterung ist nicht aktiviert.
Bearbeiten Sie die Instanz, um |
Replikationsverzögerung ist durchgehend hoch. | Die Schreiblast ist für das Replikat zu hoch. Die Replikationsverzögerung tritt auf, wenn der SQL-Thread auf einem Replikat nicht mit dem E/A-Thread Schritt halten kann. Einige Arten von Abfragen oder Arbeitslasten können vorübergehend oder dauerhaft zu einer hohen Replikationsverzögerung für ein bestimmtes Schema führen. Typische Ursachen für Replikationsverzögerungen sind:
Hier einige mögliche Lösungen:
|
Die Replikationsverzögerung steigt plötzlich stark an. | Dies wird durch lang andauernde Transaktionen verursacht. Wenn ein Commit einer Transaktion (einzelne oder mehrere Anweisungen) auf der Quellinstanz durchgeführt wird, wird die Startzeit der Transaktion im binären Log aufgezeichnet. Wenn das Replikat dieses binlog-Ereignis empfängt, vergleicht es den Zeitstempel mit dem aktuellen Zeitstempel, um die Replikationsverzögerung zu berechnen. Eine lang andauernde Transaktion in der Quelle würde daher zu einer sofortigen großen Replikationsverzögerung auf dem Replikat führen. Wenn die Menge der Zeilenänderungen in der Transaktion groß ist, würde das Replikat auch viel Zeit für die Ausführung benötigen. Während der Zeit erhöht sich die Replikationsverzögerung. Sobald das Replikat diese Transaktion abgeschlossen hat, hängt die Aufholphase von der Schreibarbeitslast auf der Quelle und der Verarbeitungsgeschwindigkeit des Replikats ab.
So vermeiden Sie lange Transaktionen z. B.:
|
Das Ändern der Flags für die parallele Replikation führt zu einem Fehler. | Für mindestens eines dieser Flags wurde ein falscher Wert festgelegt.
Legen Sie in der primären Instanz, die die Fehlermeldung anzeigt, die Flags für die parallele Replikation fest:
|
Die Replikaterstellung schlägt bei Zeitüberschreitung fehl. | Langlaufende Transaktionen ohne Commit auf der primären Instanz können dazu führen, dass die Lesereplikaterstellung fehlschlägt.
Erstellen Sie das Replikat neu, nachdem alle laufenden Abfragen beendet sind. |
Nächste Schritte
- Replikate verwalten
- Informationen zu regionsübergreifenden Replikaten