IBM Cloud Docs
Konfigurieren von Lese-Replikaten

Konfigurieren von Lese-Replikaten

Sie können Ihre IBM Cloud® Databases for MySQL Bereitstellung als Lese-Replikat einer anderen Databases for MySQL Bereitstellung einrichten.

Ein Lese-Replikat wird so eingerichtet, dass alle Daten von der Quellinstanz zur Replikatbereitstellung mit asynchroner Replikation repliziert werden. Wie der Name schon sagt, unterstützen Read Replicas Lesetransaktionen und können zum Ausgleich von Datenbanken verwendet werden, die sowohl schreib- als auch leselastige Operationen aufweisen. Sie können die Umstufung von Lesereplikaten auch für die Datenwiederherstellung verwenden, wenn die Quellendatenbankinstanz fehlschlägt. Die Lese-Replik verfügt über ein einzelnes MySQL Datenmitglied und wird zu den gleichen Verbrauchsraten pro Mitglied abgerechnet wie die Quelldatenbankinstanz.

Replik lesen Überlegungen

  • Eine Read Replica kann in der gleichen Region wie Ihre Quelldatenbankinstanz oder in einer anderen Region liegen, so dass Ihre Daten überregional repliziert werden können.

  • Ein Lese-Replikat muss dieselbe Hauptversion haben wie seine Quelldatenbankinstanz.

  • Sicherungen sind für Lesereplikate inaktiviert. Backups werden nur auf Quelldatenbankinstanzen erstellt.

  • Die Lesereplikation wird in die bzw. aus den EU Cloud-fähigen Regionen (derzeit eu-de) nicht unterstützt. Sie wird in diesen Regionen unterstützt.

  • Es gibt eine Grenze von fünf Lese-Replikaten pro Quellinstanz.

  • Die Read Replica nimmt nicht an den Wahlen für die Quelldatenbankinstanz teil und der Failover zur Read Replica ist nicht automatisiert. Die Umwandlung der Lesekopie in eine vollständige Bereitstellung ist eine manuelle, vom Benutzer initiierte Aufgabe.

  • Die Mindestgröße einer Lesekopie beträgt 2 GB RAM und 20 GB Festplattenkapazität. Dies gilt auch dann, wenn Ihre Quelldatenbankinstanz kleiner ist.

  • Lesereplikate passen sich nicht automatisch an die Quelldatenbankinstanz an. Wenn die von Ihnen gespeicherte Datenmenge die für Ihre Bereitstellungen zugewiesene Festplatte übersteigt, skalieren Sie die Festplatte auf den Read Replicas und dann die Quelldatenbankinstanz. Durch die Skalierung der Lese-Replikate wird sichergestellt, dass der Speicherplatz auf den Lese-Replikaten nicht knapp wird. Wenn Sie die Festplatte der Quelldatenbankinstanz wegen der Leistung und nicht wegen des Speicherplatzes skaliert haben, ist es nicht erforderlich, die Lesereplikate zu skalieren.

  • Die Replikation erfolgt asynchron und dabei kann es Verzögerungen geben. Standardmäßig gibt es keine Kommunikation zwischen der primären Bereitstellung und dem Replikat bezüglich der Konsistenz. Es ist möglich, dass eine Lesekopie so weit zurückfällt, dass sie neu synchronisiert werden muss. Die Verzögerung bei der Replikation kann größer sein, wenn sich das Replikat in einer Region befindet, die geografisch weit von der Quelldatenbankinstanz entfernt ist.

  • Eine Read Replica ist eine Bereitstellung mit einem einzigen Datenmitglied und verfügt über keine interne Hochverfügbarkeit. Es ergeben sich typischerweise temporäre Unterbrechungen und Ausfallzeiten während der Wartung. Wenn Sie Anwendungen haben, die auf Read Replicas angewiesen sind, sollten Sie eine Logik zur Wiederholung fehlgeschlagener Abfragen oder zum Lastausgleich über mehrere Read Replicas vorsehen.

  • Databases for MySQL Lesereplikate in Madrid (eu-es): Die Bereitstellung von Read Replicas in Madrid in der eu-es Region ist derzeit ausgesetzt. Aktuelle Informationen über die Verfügbarkeit werden so bald wie möglich bekannt gegeben.

Führende Bereitstellung

Auf der Registerkarte Read Replicas einer Databases for MySQL-Bereitstellung wird vor der Bereitstellung von Read Replicas im mittleren Bereich vermerkt, dass keine Read Replicas vorhanden sind, und eine Schaltfläche Create (Erstellen) bereitgestellt.

Replikationsbereich vor einer
vor einer

Wenn es sich bei einer Bereitstellung um eine führende Bereitstellung handelt, der bereits ein Lese-Replikat zugeordnet ist, enthält der Replikationsbereich eine Liste der Replikatbereitstellungen und einen Link zu jeder einzelnen.

Liste der Replikate, die mit einem Vorreiter verbunden
der Replikate, die mit einem
verbunden sind*

Bereitstellen einer Read Replica

Sie können eine Read Replica auf der Registerkarte Read Replicas des Leader bereitstellen, indem Sie auf Create Read Replica klicken. Die Quelleninstanz wird automatisch ausgefüllt. Der Name des Leseabbilds wird im Feld Dienstname automatisch generiert, Sie können ihn jedoch frei umbenennen. Sie können die Region auswählen, in der das Replikat bereitgestellt werden soll, und Sie können den anfangs zugeordneten Speicher auswählen. Festplattengröße, Version und öffentliche oder private Endpunkte werden automatisch so konfiguriert, dass sie mit den Einstellungen der Bereitstellung der Quelldatenbankinstanz übereinstimmen.

Wenn Sie Key Protect verwenden, wird "Bring Your Own Key" (BYOK) nur unterstützt, wenn die Einrichtung über die Befehlszeilenschnittstelle und die API erfolgt. Andernfalls wird die Lesekopie mit einem generierten Schlüssel verschlüsselt.

Einrichtung über API oder CLI vornehmen

Die Bereitstellung eines Lese-Replikats über die Befehlszeilenschnittstelle (CLI) und die API funktioniert ähnlich wie die Bereitstellung einer standardmäßigen Databases for MySQL-Bereitstellung. Der Einrichtungsvorgang wird vom Resource Controller verarbeitet und verwendet den Parameter {"remote_leader_id": "crn:v1:..."}, um die führende Bereitstellung des Replikats, das Sie einrichten, anzugeben.

Zum Beispiel, um eine Read Replica über die CLI bereitzustellen,

ibmcloud resource service-instance-create <replica_name> databases-for-mysql standard <region> \
-p \ '{
  "remote_leader_id": "crn:v1:bluemix:public:databases-for-mysql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71819::",
  "members_memory_allocation_mb": "2048",
  "members_disk_allocation_mb": "10240"
}'

Derselbe Parameter wird für die Bereitstellung eines Lese-Replikats über die API der Ressourcensteuerung verwendet.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "<replica_name>",
    "target": "<region>",
    "resource_group": "<your_resource_group_id>",
    "resource_plan_id": "databases-for-mysql-standard",
    "remote_leader_id": "crn:v1:bluemix:public:databases-for-mysql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71819::",
    "members_memory_allocation_mb": "2048",
    "members_disk_allocation_mb": "10240"
  }'

Sowohl für die CLI- als auch für die API-Befehle müssen Sie die RAM- und Plattenspeichergröße angeben und dabei bedenken, dass die Mindestgröße 2 GB RAM und 20 GB Plattenspeicherplatz beträgt. Sie können optional angeben, ob die Read Replica öffentliche oder private Endpunkte verwendet. Es ist nicht möglich, eine Version für die Lesekopie anzugeben. Die Version wird automatisch auf die gleiche Hauptversion wie die der Quelldatenbankinstanz gesetzt.

Die Lese-Replik

Auf der Registerkarte Read Replicas einer Read Replica enthält der Bereich Replication ihren Namen und ihre Region sowie den Namen und die Region ihrer Quelldatenbankinstanz. Außerdem gibt es Schaltflächen zur Neusynchronisierung der Lesekopie und zum Heraufstufen der Kopie.

Replikationsbereich einer
einer

Replikationsstatus prüfen

Der Replikationsstatus wird nicht automatisch überwacht. Sie müssen die Replikation überwachen.

Sie können den Replikationsstatus sowie die Replikationsverzögerung eines Lese-Replikats mit mysql aus seiner Quelldatenbankinstanz überprüfen. Verbinden Sie sich mit der Quelldatenbankinstanz mit mysql unter Verwendung der Admin-Zugangsdaten. Sobald Sie verbunden sind, führen Sie den folgenden Befehl aus:

mysql> SHOW SLAVE STATUS \G

Ein Schlüsselfeld aus dem Statusbericht des Befehls ist Seconds_Behind_Master: _. Dies ist die Anzahl der Sekunden, die der SQL-Replikationsthread hinter der Verarbeitung des Binärprotokolls der Quelle zurückliegt.

Weitere Informationen finden Sie in der MySQL-Dokumentation Replikationsstatus prüfen.

Replikat-Benutzer und -Privilegien lesen

  • Jeder Benutzer auf der Quelldatenbankinstanz, auch derjenige, der vor der Bereitstellung der Read Replica vorhanden war, kann sich bei einer Read Replica anmelden und mit denselben Rechten auf Objekte zugreifen, die er auf der Quelldatenbankinstanz hat.

  • Wenn Sie mehr als eine Read Replica haben, die mit einer Quelldatenbankinstanz verbunden ist, wird ein Benutzer, der auf der Quelle angelegt wird, auch auf allen anderen Read Replicas angelegt.

  • Benutzer, die auf der Quelldatenbankinstanz angelegt wurden, bleiben auf der Read Replica erhalten, wenn diese in eine eigenständige Bereitstellung umgewandelt wird, einschließlich des Benutzers admin. Beim Heraufstufen der Read Replica werden die Benutzer und Berechtigungen für alle Benutzer der Quelldatenbankinstanz auf die heraufgestufte Bereitstellung übertragen.

  • Schreiboperationen auf der Read Replica für alle Benutzer werden nicht gefiltert oder abgelehnt, sondern schlagen auf Datenbankebene fehl.

  • Read-Replica-Benutzer, die auf einem Read-Replica angelegt werden, können sich mit SELECT-Recht mit der Quelldatenbankinstanz verbinden.

Neusynchronisierung einer Read Replica

Wenn Sie eine Read Replica neu synchronisieren müssen, klicken Sie auf die Schaltfläche Resync Read Replica. Eine Neusynchronisierung ist ein störender Vorgang, bei dem die Daten in der Read Replica gelöscht und neu aufgebaut werden. Die Lese-Replik kann keine anderen Operationen oder Abfragen durchführen, während eine Neusynchronisierung läuft. Abfragen werden nicht an die Quelldatenbankinstanz umgeleitet, so dass alle Verbindungen zur Read Replica fehlschlagen, bis die Neusynchronisierung abgeschlossen ist.

Die Zeit, die für die Neusynchronisierung einer Read Replica benötigt wird, variiert, aber der Prozess kann sehr lange dauern.

Verwenden Sie den Befehl cdb read-replica-resync, um eine Resynchronisation über die Befehlszeilenschnittstelle zu starten.

ibmcloud cdb read-replica-resync <deployment name>

Um eine Resynchronisation über die API zu starten, senden Sie einen POST an den Endpunkt /deployments/{id}/remotes/resync.

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/remotes/resync \
  -H 'Authorization: Bearer <>'

Förderung einer Lese-Replik

Ein Lese-Replikat kann zu einem unabhängigen Cluster befördert werden, der sowohl Schreib- als auch Lesevorgänge annehmen kann. Wenn der Quelldatenbankinstanz etwas zustößt, kann die Read Replica zu einem eigenständigen Cluster befördert werden und Schreibvorgänge von Ihrer Anwendung annehmen.

Um eine Read Replica von der UI aus zu fördern, klicken Sie auf die Schaltfläche Promote Read Replica.

Bei der Heraufstufung beendet die Read Replica ihre Verbindung zur Quelldatenbankinstanz und wird zu einer eigenständigen Databases for MySQL Bereitstellung. Die Bereitstellung kann mit dem Akzeptieren und Ausführen von Lese- und Schreiboperationen beginnen, die Sicherungsfunktionalität wird aktiviert und die Bereitstellung erhält einen eigenen Administratorbenutzer. Ein neues Datenmember wird hinzugefügt, sodass die Bereitstellung zu einem Cluster mit drei Datenmembern wird. Dadurch erhöhen sich die Kosten, da sie mit derselben Memberverbrauchsrate in Rechnung gestellt werden, die Bereitstellung jetzt aber drei Member anstelle eines Members hat.

Wenn Sie eine Read Replica befördern, können Sie die erste Sicherung, die normalerweise bei der Beförderung durchgeführt wird, überspringen. Wenn Sie die Erstsicherung überspringen, wird Ihr Replikat schneller verfügbar, aber es ist keine sofortige Sicherung mehr verfügbar. Sobald der Hochstufungsprozess abgeschlossen ist, können Sie bei Bedarf eine Sicherung starten.

Sobald ein Lese-Replikat in eine unabhängige Bereitstellung umgewandelt wurde, ist es nicht möglich, es wieder in ein Lese-Replikat umzuwandeln oder es wieder in eine Quelldatenbankinstanz einzubinden.

Verwenden Sie den Befehl cdb read-replica-promote, um das Hochstufen über die Befehlszeilenschnittstelle auszuführen.

ibmcloud cdb read-replica-promote <deployment name>

Senden Sie einen POST an den Endpunkt /deployments/{id}/remotes/promotion, um das Hochstufen über die API auszuführen.

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{"promotion": {}}' \

Wenn Sie das Hochstufen durchführen und die Erstsicherung nach dem Hochstufen überspringen wollen, legen Sie außerdem skip_initial_backup im JSON-Hauptteil fest.

curl -X POST \
  https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/remotes/promotion \
  -H 'Authorization: Bearer <>'  \
 -H 'Content-Type: application/json' \
 -d '{"promotion": {"skip_initial_backup": true}}' \

Zeit bis zur Fertigstellung

Die Anleitung zur Hochstufung wird nur abgeschlossen, wenn die Datenbank hoch verfügbar ist. Die Lese-/Schreibverfügbarkeit erfolgt nach ungefähr 10 Minuten mit einem bedeutenden Vorbehalt: Die Datenbank ist erst dann hoch verfügbar, wenn die Anleitung abgeschlossen ist.

Die vollständige Dauer für die Hochstufung eines Lesereplikats bestimmt sich durch den Datenumfang auf zwei mögliche Arten:

  • Lesereplikate sind einzelne Member. Bei der Beförderung werden zwei zusätzliche Mitglieder als Replikate hinzugefügt. Die hierfür erforderliche Dauer hängt von der Größe der Daten ab. Wenn Datenbanken größer werden, kann die Erstellung sehr viel Zeit in Anspruch nehmen. Die Umstufungsoperation wird erst abgeschlossen, wenn die Erstellung beider Replikate abgeschlossen ist.
  • Wenn Sie sich für eine Sicherung als Teil der Hochstufung entscheiden, muss die Fertigstellung dieser Sicherung ebenfalls beendet sein, bevor die Anleitung abgeschlossen ist. Dies hängt wiederum von der Größe der Datenbank ab.

Denken Sie daran, dass es kein hochverfügbares Mitglied gibt, bevor das Rezept für die Beförderung abgeschlossen ist. Wenn Sie sich für eine Erstsicherung entschieden haben, gibt es ebenfalls erst dann eine Sicherung, wenn der zweite Punkt abgeschlossen ist oder wenn eine manuelle Sicherung erfolgt ist.