Übersicht
Auf dieser Seite wird gezeigt, wie Sie einen Schreibendpunkt verwenden, um von Clients in Ihrem Virtual Private Cloud-Netzwerk (VPC) aus eine Verbindung zu einer Cloud SQL-Instanz herzustellen, indem Sie den Zugriff auf private Dienste (Private Services Access, PSA)nutzen.
Ein Schreibendpunkt ist ein globaler DNS-Name (Domain Name Service), der automatisch in die IP-Adresse der aktuellen primären Instanz aufgelöst wird. Im Falle eines Replikats Failovers oder Switchovers leitet dieser Schreibendpunkt eingehende Verbindungen automatisch zur neuen primären Instanz um. Sie können den Schreibendpunkt in einer SQL-Verbindungszeichenfolge zur Cloud SQL-Instanz verwenden, anstatt eine IP-Adresse zu verwenden. Wenn Sie einen Schreibendpunkt verwenden, müssen Sie keine Änderungen an der Anwendungsverbindung vornehmen, wenn Sie ein Failover oder Switchover des Replikats zur Wiederherstellung nach einem regionalen Ausfall oder für eine Notfallwiederherstellungsübung durchführen.
Jede infrage kommende Cloud SQL-Instanz hat einen einzelnen integrierten Schreibendpunkt, dessen Name, Erstellung und Aktualisierung von Cloud SQL verwaltet werden. Das folgende Beispiel veranschaulicht das Format:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
Der Schreibendpunkt endet immer mit dem Suffix .global.sql-psa.goog..
Sie können den Namen oder das Format dieses von Cloud SQL verwalteten Schreibendpunkts nicht ändern.
Sie können den Schreibendpunkt für alle Schreibvorgänge in der primären Instanz verwenden, einschließlich Einfügungen, Aktualisierungen, Löschungen und DDL-Änderungen. Sie können den Schreibendpunkt auch für Lesevorgänge wie Abfragen verwenden. Die private IP-Adresse, auf die der Schreibendpunkt verweist, wird von Cloud SQL automatisch geändert, wenn Sie ein Failover oder Switchover des Replikats durchführen, um eine Replikatinstanz zur neuen primären Instanz zu befördern.
Schreibendpunkt generieren
Wenn Sie eine neue Cloud SQL-Instanz erstellen, erstellt Cloud SQL den Schreibendpunkt automatisch, wenn die folgenden Voraussetzungen erfüllt sind:
- Die folgenden APIs müssen in dem Projekt aktiviert sein, in dem sich Ihre Cloud SQL-Instanz befindet: Google Cloud
- Compute Engine API
- Cloud DNS API
Wenn Sie die Cloud DNS API im Projekt nicht aktivieren, kann die Peering-DNS-Zone nicht erstellt werden, wodurch die DNS-Namen unbrauchbar werden.
Sobald die Peering-DNS-Zone erstellt wurde, darf sie nicht mehr geändert werden. Alle Änderungen, einschließlich des Löschens, machen das DNS für die Datenbankverbindung unbrauchbar.
- Die Cloud SQL-Instanz muss die Cloud SQL Enterprise Plus-Version sein.
- Die Cloud SQL-Instanz muss für die Verwendung einer privaten IP-Adresse konfiguriert sein, wobei der Zugriff auf private Dienste (Private Services Access, PSA) aktiviert sein muss.
- Für die Funktion sind Instanzen in der neuen Netzwerkarchitektur erforderlich. In den meisten Fällen werden neue Instanzen mit der neuen Architektur erstellt. Prüfen Sie dazu, die Netzwerkarchitektur Ihrer Instanz.
Wenn Sie eine vorhandene Cloud SQL Enterprise-Instanz auf eine Cloud SQL Enterprise Plus-Instanz aktualisieren, generiert Cloud SQL den Schreibendpunkt automatisch, wenn die zuvor aufgeführten Voraussetzungen erfüllt sind. Wenn sich Ihre vorhandene Instanz in der alten Netzwerk architektur befindet, müssen Sie die Instanz zuerst auf die neue Netzwerkarchitektur aktualisieren, um den Schreibendpunkt zu erhalten.
Schreibendpunkt ansehen
gcloud
Verwenden Sie den folgenden gcloud CLI-Befehl, um den Schreibendpunkt zu finden:
gcloud sql instances describe INSTANCE_NAME \ | grep writeEndpoint
Ersetzen Sie die folgenden Werte:
INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
Schreibendpunkte enden immer mit dem Suffix .global.sql-psa.goog., ähnlich dem folgenden Beispiel:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
Wenn der Schreibendpunkt für eine infrage kommende Instanz nicht angezeigt wird, lesen Sie den Abschnitt zur Fehlerbehebung.
Verbindung zu einer Cloud SQL-Instanz über einen Schreibendpunkt herstellen
sqlcmd
Führen Sie den folgenden Befehl aus, um einen sqlcmd-Client über den Schreibendpunkt mit einer Cloud SQL-Instanz zu verbinden:
sqlcmd -S WRITE_ENDPOINT -U USERNAME -d DATABASE_NAME -P
Ersetzen Sie die folgenden Werte:
- DATABASE_NAME: Der Name der Datenbank. Beispiel:
main. - USERNAME: Der Nutzername. Beispiel:
sqlserver. - WRITE_ENDPOINT: Der DNS-Name oder Schreibendpunkt. Dieser alphanumerische
Wert endet immer mit dem
.global.sql-psa.goog.Suffix. Beispiel:primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog..
Beschränkungen
- Schreibendpunkte sind nicht für die Erstellung von Cloud SQL Enterprise-Instanzen verfügbar.
- Schreibendpunkte sind nicht für Instanzen verfügbar, die nur öffentliche IP-Adressen oder nur Private Service Connect verwenden.
Fehlerbehebung
In den folgenden Abschnitten wird die Architektur von Schreibendpunkten beschrieben und auf häufige Probleme bei der Fehlerbehebung eingegangen.
Architektur eines Schreibendpunkts
Wenn Sie eine infrage kommende Instanz erstellen, wird standardmäßig ein Schreibendpunkt generiert.
Um einen Schreibendpunkt zu erstellen, führt Cloud SQL die folgende Einrichtung durch:
- Erstellt eine private DNS-Zone im VPC-Netzwerk des Cloud SQL-Diensterstellers
- Erstellt eine Peering-DNS-Zone im VPC-Netzwerk des Kunden
- Erstellt einen DNS-Eintrag in der privaten DNS-Zone im Netzwerk des Diensterstellers
Das folgende Diagramm veranschaulicht diesen Prozess:
Probleme mit der DNS-Auflösung
Wenn die DNS-Auflösung nicht funktioniert, prüfen Sie die folgenden Punkte:
- Achten Sie darauf, dass alle Voraussetzungen erfüllt sind.
- Achten Sie darauf, dass sich die Clients, auf denen die Auflösung erwartet wird, in
demselben Netzwerk befinden, mit dem die Cloud SQL-Instanz verbunden ist. Verwenden Sie dazu den
gcloud compute instances listBefehl:gcloud compute instances list \ --format="table( name, zone.basename(), networkInterfaces[].network )" \ --project=PROJECT_NAME
Ersetzen Sie PROJECT_NAME durch den Namen des Projekts, in dem sich das DNS-Nutzerprojekt befindet.
- Prüfen Sie, ob die Peering-Zone vorhanden ist. Verwenden Sie dazu den
gcloud dns managed-zones listBefehl:gcloud dns managed-zones list \ --project=PROJECT_NAME
Ersetzen Sie PROJECT_NAME durch den Namen des Projekts, in dem sich das DNS-Nutzerprojekt befindet.
Neue Instanz hat keinen Schreibendpunkt
Wenn eine neu erstellte Instanz keinen Schreibendpunkt enthält, prüfen Sie die folgenden Punkte:
- Achten Sie darauf, dass alle Voraussetzungen erfüllt sind.
- Achten Sie darauf, dass keine übrig gebliebene Peering-DNS-Zone mit dem DNS-Namen
sql-psa.goog.vorhanden ist.Eine Peering-DNS-Zone ist eine übrig gebliebene DNS-Zone, wenn das mit der DNS-Zone verknüpfte Netzwerk kein VPC-Peering mit der Peer-Projekt-ID der Peering-DNS-Zone hat.
Wenn eine übrig gebliebene Peering-DNS-Zone mit dem
sql-psa.goog.Suffix vorhanden ist, löschen Sie sie.Verwenden Sie den
gcloud dns managed-zones listBefehl, um nach übrig gebliebenen Peering-DNS-Zonen zu suchen:gcloud dns managed-zones list \ --project=PROJECT_NAME
Ersetzen Sie PROJECT_NAME durch den Namen des Projekts, in dem sich das DNS-Nutzerprojekt befindet.
Wenn eine DNS-Zone mit dem Suffix
sql-psa.goog.vorhanden ist, löschen Sie die DNS-Zone, nachdem Sie noch einmal geprüft haben, ob es sich um eine übrig gebliebene Peering-DNS-Zone handelt.Verwenden Sie den Befehl
gcloud dns managed-zones delete, um eine DNS-Zone zu löschen:gcloud dns managed-zones delete ZONE_NAME
Ersetzen Sie ZONE_NAME durch den DNS-Zonennamen, der mit den Schreibendpunkten verknüpft ist. Die Werte sind alphanumerisch und haben das folgende Format:
cloud-sql-psa-dns-1234567890.
Nächste Schritte
- Weitere Informationen zur Fehlerbehebung in Cloud SQL