Lesereplikate erstellen

Auf dieser Seite wird gezeigt, wie ein Lesereplikat für eine Cloud SQL-Instanz erstellt wird.

Ein Lesereplikat ist die Kopie einer primären Instanz, die Änderungen der primären Instanz nahezu in Echtzeit abbildet. Sie erstellen ein Replikat, um die primäre Instanz von Leseanfragen oder Analysetraffic zu entlasten.

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.

Konsole

  1. Öffnen Sie in der Google Cloud Console die Seite "Cloud SQL-Instanzen".

    Zur Seite "Cloud SQL-Instanzen"

  2. Suchen Sie die Instanz, für die Sie ein Replikat erstellen möchten, und öffnen Sie das Menü more actions ganz rechts in der Liste.
  3. Wählen Sie Lesereplikat erstellen aus.

    Ist diese Option nicht vorhanden, ist die Instanz bereits ein Replikat. Sie können kein Replikat eines Replikats erstellen.

  4. Aktualisieren Sie auf der Seite Lesereplikat erstellen ggf. die Instanz-ID sowie alle anderen erforderlichen Konfigurationsoptionen, einschließlich Name, Region und Zone.
  5. Klicken Sie auf Erstellen.

    Cloud SQL erstellt das Replikat und bei Bedarf eine Sicherung. Sie werden dann zur Instanzseite der primären Instanz zurückgeleitet.

gcloud

  1. Prüfen Sie den Status der primären Instanz:
    gcloud sql instances describe [PRIMARY_INSTANCE_NAME]

    Wenn das Attribut databaseReplicationEnabled den Wert true hat, ist die Instanz ein Replikat. Sie können kein Replikat eines Replikats erstellen.

  2. Wenn das Attribut enabled unter backupConfiguration den Wert false hat, aktivieren Sie jetzt die Sicherungen für die primäre Instanz:
    gcloud sql instances patch [PRIMARY_INSTANCE_NAME] --backup-start-time [HH:MM]
    Der Parameter backup-start-time wird im 24-Stunden-Format in der Zeitzone UTC±00 angegeben und definiert den Beginn eines vierstündigen Sicherungszeitraums. Die Sicherungen können zu einem beliebigen Zeitpunkt innerhalb dieses Sicherungszeitraums gestartet werden.
  3. 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 private IP-Adresse hat, fügen Sie dem Befehl den Parameter --no-assign-ip hinzu.

REST

  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.

    Geben Sie für die Parameter folgende Werte an:

    • project-id: Die Projekt-ID
    • primary-instance-name: Der Name der primären Instanz

    HTTP-Methode und URL:

    GET https://www.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 in etwa folgende JSON-Antwort erhalten:

  2. Lesereplikat erstellen

    Mit der Methode insert der Instanzressource erstellen Sie das Lesereplikat. Das Attribut databaseVersion muss mit der primären Instanz übereinstimmen. Legen Sie für ein regionenübergreifendes Lesereplikat eine andere Region als die Region der primären Instanz fest.

    Geben Sie für die Parameter folgende Werte an:

    • project-id: Die Projekt-ID
    • 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: den Namen der Replikatinstanz
    • machine-type: Enum-String des Maschinentyps (Stufe) Beispiel: "db-n1-standard-4"

    HTTP-Methode und URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

    JSON-Text anfordern:

    {
      "masterInstanceName": "primary-instance-name",
      "project": "project-id",
      "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:

Fehlerbehebung

Klicken Sie auf die Links in der Tabelle, um weitere Informationen zu erhalten:

Problem Mögliche Ursache Lösungsvorschlag
Beim Erstellen hat das Lesereplikat nicht repliziert. Nachdem das Binärlogging aktiviert wurde, muss mindestens eine Sicherung erstellt worden sein. Warten Sie, bis mindestens eine Sicherung erstellt wurde, nachdem Sie binäre Logs aktiviert haben.
Lesereplikat kann nicht erstellt werden – unbekannter Fehler. Dies kann viele Ursachen haben. Weitere Informationen finden Sie in den Logs.
Laufwerk ist voll. Der Speicherplatz des Laufwerks der primären Instanz kann während der Replikaterstellung erschöpft werden. Aktualisieren Sie die primäre Instanz mit einem größeren Laufwerk.
Replikatinstanz verwendet zu viel Arbeitsspeicher. Replikate können häufig angeforderte Lesevorgänge im Cache speichern. Starten Sie die Replikatinstanz neu, um den temporären Speicherplatz freizugeben.
Replikation gestoppt. Der maximale Speicherplatz wurde erreicht und die automatische Speichererweiterung ist nicht aktiviert. Aktivieren Sie die automatische Speichererweiterung.
Replikationsverzögerung ist durchgehend hoch. Die kann viele verschiedene Ursachen haben. Hier finden Sie einige Lösungsvorschläge.

Beim Erstellen hat das Lesereplikat nicht repliziert

Beim Erstellen hat das Lesereplikat nicht repliziert.

Mögliche Ursache

Die primäre Instanz muss Bin-Logs von mindestens einer Woche haben, andernfalls können Replikate nicht repliziert werden.

Lösungsvorschlag

Warten Sie, bis genügend Bin-Logs vorhanden sind.


Lesereplikat kann nicht erstellt werden – unbekannter Fehler

Das Lesereplikat kann nicht erstellt werden – unknown error.

Mögliche Ursache

Möglicherweise finden Sie in den Logdateien einen spezifischen Fehler.

Lösungsvorschlag

Prüfen Sie die Logs in Cloud Logging, um den tatsächlichen Fehler zu finden. Lautet der Fehler set Service Networking service account as servicenetworking.serviceAgent role on consumer project, deaktivieren Sie die Service Networking API und aktivieren Sie sie dann wieder. Dadurch wird das Dienstkonto erstellt, das erforderlich ist, um den Prozess fortzusetzen.


Laufwerk ist voll

error: disk is full

Mögliche Ursache

Das Laufwerk der primären Instanz kann während der Replikaterstellung zu voll werden.

Lösungsvorschlag

Bearbeiten Sie die primäre Instanz, um sie auf ein größeres Laufwerk zu aktualisieren.


Replikatinstanz verwendet zu viel Arbeitsspeicher

Die Replikatinstanz verwendet zu viel Arbeitsspeicher.

Mögliche Ursache

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.

Lösungsvorschlag

Starten Sie die Replikatinstanz neu, um den temporären Speicherplatz freizugeben.


Replikation gestoppt

Die Replikation wurde gestoppt.

Mögliche Ursache

Das maximale Speicherlimit wurde erreicht und >automatic storage increase is disabled.

Lösungsvorschlag

Bearbeiten Sie die Instanz, um automatic storage increase zu aktivieren.


Replikationsverzögerung ist durchgehend hoch

Die Replikationsverzögerung ist durchgehend hoch.

Mögliche Ursache

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:

  • Langsame Abfragen des Replikats. Diese können Sie sichtbar machen, wenn Sie log_slow_slave_statements aktivieren. Dann können sie korrigiert werden.
  • Alle Tabellen müssen einen eindeutigen Schlüssel/Primärschlüssel haben. Jede Aktualisierung einer solchen Tabelle ohne eindeutigen bzw. Primärschlüssel führt zu vollständigen Tabellenscans auf dem Replikat.
  • Abfragen wie DELETE ... WHERE field < 50000000 führen bei der zeilenbasierten Replikation zu einer Replikationsverzögerung, da sich eine große Anzahl von Aktualisierungen auf dem Replikat ansammelt.

Lösungsvorschlag

Mögliche Lösungen:

  • Bearbeiten Sie die Instanz, um die Größe des Replikats zu erhöhen.
  • Reduzieren Sie die Belastung der Datenbank.
  • Indexieren Sie die Tabellen.
  • Ermitteln und beheben Sie langsame Abfragen.
  • Erstellen Sie das Replikat neu.

Weitere Informationen