Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konvertieren einer vorhandenen DB-Instance in einen Aktiv/Aktiv-Cluster
Die DB-Engine-Version der DB-Instance, die Sie zu einem Aktiv/Aktiv-Cluster migrieren möchten, muss eine der folgenden Versionen sein:
-
Alle MySQL 8.4-Versionen
-
MySQL 8.0.35 und höhere Unterversionen
Informationen zum Upgrade der Engine-Version finden Sie unter Upgrades der DB-Engine von RDS für MySQL.
Wenn Sie einen Aktiv/Aktiv-Cluster mit DB-Instances in mehr als einer VPC einrichten, vergewissern Sie sich, dass die unter Vorbereitungen für einen VPC-übergreifenden Aktiv/Aktiv-Cluster angegebenen Voraussetzungen erfüllt sind.
Führen Sie die folgenden Schritte aus, um eine vorhandene DB-Instance zu einem Aktiv/Aktiv-Cluster von RDS für MySQL zu migrieren.
Themen
Schritt 4: Erstellen von zusätzlichen DB-Instances von RDS für MySQL für den Aktiv/Aktiv-Cluster
Schritt 5: Initialisieren der Gruppe auf der konvertierten DB-Instance
Schritt 6: Starten der Replikation auf den anderen DB-Instances im Aktiv/Aktiv-Cluster
Schritt 7: Überprüfen des Status des Aktiv/Aktiv-Clusters (empfohlen)
Schritt 1: Festlegen des Parameters für den Aktiv/Aktiv-Cluster in einer oder mehreren benutzerdefinierten Parametergruppen
Die DB-Instances von RDS für MySQL in einem Aktiv/Aktiv-Cluster müssen einer benutzerdefinierten Parametergruppe zugeordnet werden, die über die entsprechende Einstellung für die erforderlichen Parameter verfügt. Informationen zu den Parametern und ihren jeweiligen erforderlichen Einstellungen finden Sie unter Erforderliche Parametereinstellungen für Aktiv/Aktiv-Cluster.
Sie können diese Parameter in neuen oder vorhandenen Parametergruppen festlegen. Um jedoch zu verhindern, dass hierdurch versehentlich DB-Instances beeinträchtigt werden, die nicht zum Aktiv/Aktiv-Cluster gehören, empfehlen wir dringend, eine neue benutzerdefinierte Parametergruppe zu erstellen. Die DB-Instances in einem Aktiv/Aktiv-Cluster können derselben DB-Parametergruppe oder unterschiedlichen DB-Parametergruppen zugeordnet werden.
Sie können eine neue benutzerdefinierte Parametergruppe mithilfe der AWS Management Console oder AWS CLI erstellen. Weitere Informationen finden Sie unter Erstellen einer DB-Parametergruppe in Amazon RDS. Im folgenden Beispiel wird der AWS CLI-Befehl create-db-parameter-group ausgeführt, um die benutzerdefinierte DB-Parametergruppe von RDS für MySQL 8.0 zu erstellen:myactivepg
Für Linux, macOS oder Unix:
aws rds create-db-parameter-group \ --db-parameter-group-namemyactivepg\ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters"
Für Windows:
aws rds create-db-parameter-group ^ --db-parameter-group-namemyactivepg^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters"
Sie können auch die AWS Management Console oder die AWS CLI verwenden, um die Parameter in der benutzerdefinierten Parametergruppe festzulegen. Weitere Informationen finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Im folgenden Beispiel wird der AWS CLI-Befehl modify-db-parameter-group ausgeführt, um die Parameter von RDS für MySQL 8.0 festzulegen. Um dieses Beispiel mit RDS für MySQL 8.4 zu verwenden, ändern Sie slave_preserve_commit_order in replica_preserve_commit_order.
Für Linux, macOS oder Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-namemyactivepg\ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
Für Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
Schritt 2: Zuordnen der DB-Instance zu einer DB-Parametergruppe, für die die erforderlichen Gruppenreplikationsparameter festgelegt wurden
Ordnen Sie die DB-Instance einer Parametergruppe zu, die Sie im vorherigen Schritt erstellt oder geändert haben. Detaillierte Anweisungen finden Sie unter Verknüpfen einer DB-Parametergruppe mit einer DB-Instance in Amazon RDS.
Starten Sie die DB-Instance neu, damit die neuen Parametereinstellungen wirksam werden. Detaillierte Anweisungen finden Sie unter Neustarten einer DB-Instance.
Schritt 3: Erstellen des Aktiv/Aktiv-Clusters
Legen Sie den Parameter group_replication_group_seeds in der DB-Parametergruppe, die mit der DB-Instance verknüpft ist, auf den Endpunkt der konvertierten DB-Instance fest.
Sie können die AWS Management Console oder die AWS CLI zum Festlegen des Parameters verwenden. Sie müssen die DB-Instance nicht neu starten, nachdem Sie diesen Parameter festgelegt haben. Informationen zum Festlegen von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Im folgenden Beispiel wird der AWS CLI-Befehl modify-db-parameter-group ausgeführt, um die Parameter festzulegen:
Für Linux, macOS oder Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-namemyactivepg\ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
Für Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-namemyactivepg^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
Schritt 4: Erstellen von zusätzlichen DB-Instances von RDS für MySQL für den Aktiv/Aktiv-Cluster
Um zusätzliche DB-Instances für den Aktiv/Aktiv-Cluster zu erstellen, führen Sie eine zeitpunktbezogene Wiederherstellung auf der konvertierten DB-Instance durch. Detaillierte Anweisungen finden Sie unter Hinzufügen einer DB-Instance zu einem Aktiv/Aktiv-Cluster mithilfe von zeitpunktbezogener Wiederherstellung.
Ein Aktiv/Aktiv-Cluster kann bis zu neun DB-Instances enthalten. Führen Sie eine zeitpunktbezogene Wiederherstellung auf der DB-Instance durch, bis die Anzahl der DB-Instances erreicht wurde, die Sie für den Cluster benötigen. Wenn Sie eine zeitpunktbezogene Wiederherstellung durchführen, vergewissern Sie sich, dass die hinzugefügte DB-Instance mit einer DB-Parametergruppe verknüpft ist, für die rds.group_replication_enabled auf 1 festgelegt ist. Andernfalls wird die Gruppenreplikation auf der neu hinzugefügten DB-Instance nicht gestartet.
Schritt 5: Initialisieren der Gruppe auf der konvertierten DB-Instance
Initialisieren Sie die Gruppe und starten Sie die Replikation:
-
Stellen Sie für einen SQL-Client eine Verbindung mit der konvertierten DB-Instance her. Weitere Informationen zum Herstellen einer Verbindung mit einer DB-Instance von RDS für MySQL finden Sie unter Herstellen einer Verbindung mit Ihrer MySQL-DB-Instance.
-
Führen Sie für den SQL-Client die folgenden gespeicherten Prozeduren aus und ersetzen Sie
group_replication_user_passworddurch das Passwort für den Benutzerrdsgrprepladmin. Der Benutzerrdsgrprepladminist für Gruppenreplikationsverbindungen in einem Aktiv/Aktiv-Cluster reserviert. Das Passwort für diesen Benutzer muss auf allen DB-Instances in einem Aktiv/Aktiv-Cluster identisch sein.call mysql.rds_set_configuration('binlog retention hours',168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(1);In diesem Beispiel wird der Wert
binlog retention hoursauf168festgelegt, was bedeutet, dass Binärprotokolldateien sieben Tage lang auf der DB-Instance beibehalten werden. Sie können diesen Wert an Ihre Anforderungen anpassen.In diesem Beispiel wird
1in der gespeicherten Prozedurmysql.rds_group_replication_startfestgelegt, um eine neue Gruppe mit der aktuellen DB-Instance zu initialisieren.Weitere Informationen zu den im Beispiel aufgerufenen gespeicherten Prozeduren finden Sie unter Verwalten von Aktiv/Aktiv-Clustern.
Schritt 6: Starten der Replikation auf den anderen DB-Instances im Aktiv/Aktiv-Cluster
Verwenden Sie für alle DB-Instances im Aktiv/Aktiv-Cluster einen SQL-Client, um eine Verbindung mit der Instance herzustellen, und führen Sie die folgenden gespeicherten Prozeduren aus. Ersetzen Sie group_replication_user_password durch das Passwort für den Benutzer rdsgrprepladmin.
call mysql.rds_set_configuration('binlog retention hours',168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(0);
In diesem Beispiel wird der Wert binlog retention hours auf 168 festgelegt, was bedeutet, dass Binärprotokolldateien sieben Tage lang auf der jeweiligen DB-Instance beibehalten werden. Sie können diesen Wert an Ihre Anforderungen anpassen.
In diesem Beispiel wird 0 in der gespeicherten Prozedur mysql.rds_group_replication_start festgelegt, um die aktuelle DB-Instance einer vorhandenen Gruppe hinzuzufügen.
Tipp
Achten Sie darauf, dass Sie diese gespeicherten Prozeduren auf allen anderen DB-Instances im Aktiv/Aktiv-Cluster ausführen.
Schritt 7: Überprüfen des Status des Aktiv/Aktiv-Clusters (empfohlen)
Um sich zu vergewissern, dass jedes Mitglied des Clusters korrekt konfiguriert ist, überprüfen Sie den Status des Clusters, indem Sie eine Verbindung mit einer DB-Instance im Aktiv/Aktiv-Cluster herstellen und den folgenden SQL-Befehl ausführen:
SELECT * FROM performance_schema.replication_group_members;
Für die Ausgabe sollte ONLINE für MEMBER_STATE der jeweiligen DB-Instance wie in der folgenden Beispielausgabe angezeigt werden:
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
Informationen zu den möglichen MEMBER_STATE-Werten finden Sie unter Gruppenreplikations-Serverstatus