Auf dieser Seite wird gezeigt, wie ein Lesereplikat für eine Cloud SQL-Instanz erstellt wird.
Informationen zum Einrichten einer Cloud SQL-Instanz, die als Publisher für einen externen Abonnenten fungieren soll, finden Sie unter Externe Replikate konfigurieren.
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
Sie können pro primäre Instanz maximal acht Lesereplikate 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
ganz rechts neben der Liste. - Wählen Sie Lesereplikat erstellen aus.
Wenn diese Option nicht verfügbar ist, handelt es sich bei der Instanz um ein Replikat. Sie können kein Replikat eines Replikats erstellen.
Ändern Sie im Bereich Instanz anpassen die Einstellungen für Ihr Replikat. Klicken Sie zuerst auf KONFIGURATIONSOPTIONEN EINBLENDEN, um die Gruppe der Einstellungen aufzurufen. Erweitern 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.
- 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
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.
Mit dem Parameter --region
können Sie eine andere Region angeben.
Wenn die primäre Instanz nur eine interne IP-Adresse hat, fügen Sie dem Befehl den Parameter --no-assign-ip
hinzu.
Sie können weitere Parameter für andere Instanzeinstellungen hinzufügen: Weitere Informationen finden Sie unter gcloud sql instances create.
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.
Terraform
Verwenden Sie zum Erstellen eines Lesereplikats eine Terraform-Ressource.
REST v1beta4
Verwenden Sie zum Erstellen des Lesereplikats die Methode insert
der Instanzressource. Die Attribute „region“ und „databaseVersion“ müssen mit denen der Masterinstanz identisch sein.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die Projekt-ID
- database-version: Enum-Versionsstring (z. B. SQLSERVER_2017_ENTERPRISE)
- 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”
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, } }
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
Um ein Lesereplikat einer Instanz mit aktiviertem Private Service Connect zu erstellen, verwenden Sie die 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 zum Erstellen eines Lesereplikats einer Instanz den Befehl gcloud sql instances create
:
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": "SQLSERVER_2019_STANDARD", "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": "SQLSERVER_2019_STANDARD", "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" }
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 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