Konfigurieren der GTID-basierten Replikation einer externen Quell-Instance - Amazon Relational Database Service

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.

Konfigurieren der GTID-basierten Replikation einer externen Quell-Instance

Sie können eine Replikation basierend auf globalen Transaktionskennungen (GTIDs) von einer externen MariaDB-Instance der Version 10.0.24 oder höher in einer RDS-for-MariaDB-DB-Instance einrichten. Befolgen Sie diese Richtlinien, wenn Sie eine externe Quellinstance und ein Replikat auf Amazon RDS einrichten:

  • Überwachen Sie Failover-Ereignisse für die RDS-for-MariaDB-DB-Instance, die Ihr Replikat ist. Tritt ein Failover auf, kann die DB-Instance, die Ihr Replikat ist, auf einem neuen Host mit einer anderen Netzwerkadresse wiederhergestellt werden. Weitere Informationen zum Überwachen von Failover-Ereignissen finden Sie unter Mit RDS Amazon-Event-Benachrichtigungen arbeiten.

  • Behalten Sie die Binärprotokolle auf Ihrer Quell-Instance, bis sichergestellt ist, dass sie auf das Replikat angewendet wurden. Durch das Aufbewahren können Sie sicherstellen, dass Sie Ihre Quell-Instance im Fall eines Ausfalls wiederherstellen können.

  • Schalten Sie automatische Backups in Ihrer MariaDB-DB-Instance auf Amazon RDS ein. Das Einschalten automatischer Backups stellt sicher, dass Sie Ihr Replikat zu einem bestimmten Zeitpunkt wiederherstellen können, wenn Sie den Master und das Replikat neu synchronisieren müssen. Weitere Informationen zu Backups und zur zeitbezogenen Wiederherstellung finden Sie unter Daten sichern, wiederherstellen und exportieren.

Anmerkung

Die erforderlichen Berechtigungen für das Starten einer Replikation in einer MariaDB-DB-instance sind beschränkt und für die Amazon RDS-Hauptbenutzer nicht verfügbar. Aus diesem Grund müssen Sie die Amazon-RDS-Befehle mysql.rds_set_external_master_gtid und mysql.rds_start_replication verwenden, um eine Replikation zwischen der Live-Datenbank und der RDS-for-MariaDB-Datenbank einzurichten.

Um die Replikation zwischen einer externen Quell-Instance und einer MariaDB DB-Instance auf Amazon RDS zu starten, gehen Sie wie folgt vor.

So starten Sie eine Replikation:
  1. Legen Sie die Quell-MariaDB-Instance als schreibgeschützt fest:

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Rufen Sie die aktuelle GTID der externen MariaDB-Instance ab. Sie können dies mithilfe von mysql oder mithilfe des Query Editors Ihrer Wahl tun, um SELECT @@gtid_current_pos; auszuführen.

    Das GTID-Format sieht folgendermaßen aus: <domain-id>-<server-id>-<sequence-id>. Eine GTID sieht typischerweise so aus 0-1234510749-1728. Weitere Informationen zu GTIDs und ihren Komponententeilen finden Sie unter Global Transaction ID in der MariaDB-Dokumentation.

  3. Kopieren Sie die Datenbank mithilfe von von der externen MariaDB-Instance in die MariaDB-DB-Instanc mysqldump. Für große Datenbanken empfiehlt es sich, die Prozedur in zu verwende Importieren von Daten in eine Amazon-RDS-MariaDB- oder MySQL-Datenbank mit reduzierter Ausfallzeit.

    Für Linux, macOSoder Unix:

    mysqldump \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    Windows:

    mysqldump ^ --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary \ -u local_user \ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    Anmerkung

    Zwischen der Option -p und dem eingegebenen Passwort darf kein Leerzeichen vorhanden sein.

    Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

    Verwenden Sie die Optionen --host, --user (-u), --port und -p im Befehl mysql, um Hostnamen, Benutzernamen, Port und Passwort für die Verbindung mit Ihrer MariaDB-DB-Instance festzulegen. Der Hostname ist der DNS-Name aus dem Endpunkt der MariaDB-DB-Instance, z. B. myinstance.123456789012.us-east-1.rds.amazonaws.com. Sie finden den Endpunktwert in den Instance-Details in der Amazon RDS-Managementkonsole.

  4. Legen Sie die Quell-MariaDB-Instance als wieder beschreibbar fest.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. Fügen Sie in der Amazon RDS-Managementkonsole die IP-Adresse des Servers, der die externe MariaDB-Datenbank hostet, zu der VPC-Sicherheitsgruppe dieser MariaDB-DB-Instance hinzu. Weitere Informationen zum Modifizieren einer VPC-Sicherheitsgruppe finden Sie unter Sicherheitsgruppen für Ihre VPC im Amazon Virtual Private Cloud-Benutzerhandbuch.

    Die IP-Adresse kann sich ändern, wenn die folgenden Bedingungen erfüllt sind:

    • Sie verwenden eine öffentliche IP-Adresse für die Kommunikation zwischen der externen Quell-Instance und der DB-Instance.

    • Die externe Quell-Instance wurde gestoppt und neu gestartet.

    Wenn diese Bedingungen erfüllt sind, überprüfen Sie die IP-Adresse, bevor Sie sie hinzufügen.

    Es könnte sein, dass Sie Ihr lokales Netzwerk so konfigurieren müssen, dass es Verbindungen von der IP-Adresse Ihrer MariaDB-DB-Instance zulässt, damit es mit Ihrer externen MariaDB-Instance kommunizieren kann. Verwenden Sie den Befehl host, um die IP-Adresse Ihrer MariaDB-DB-Instance zu herauszufinden.

    host db_instance_endpoint

    Der Host-Name ist der DNS-Name aus dem Endpunkt der MariaDB-DB-Instance.

  6. Verbinden Sie sich mithilfe eines Clients Ihrer Wahl mit der externen MariaDB-Instance und erstellen Sie einen MariaDB-Benutzer, der für die Replikation verwendet werden soll. Dieses Konto wird ausschließlich für die Replikation verwendet und muss auf Ihre Domäne beschränkt sein, um die Sicherheit zu erhöhen. Im Folgenden wird ein Beispiel gezeigt.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
    Anmerkung

    Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

  7. Erteilen Sie für die externe MariaDB-Instance die Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE für Ihren Replikationsbenutzer. Erteilen Sie beispielsweise die Sonderrechte REPLICATION CLIENT und REPLICATION SLAVE in allen Datenbank für den 'repl_user'-Benutzer für Ihre Domäne, mit dem folgenden Befehl.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
  8. Machen Sie die MariaDB-DB-Instance zum Replikat. Verbinden Sie sich als Masterbenutzer mit der MariaDB-DB-Instance und bestimmen Sie die externe MariaDB-Datenbank mithilfe des Befehls mysql.rds_set_external_master_gtid als Quell-Instance. Verwenden Sie die GTID, die Sie in Schritt 2 festgelegt haben. Im Folgenden wird ein Beispiel gezeigt.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'GTID', 0);
    Anmerkung

    Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

  9. Verwenden Sie auf der MariaDB-DB-Instance den Befehl mysql.rds_start_replication, um die Replikation zu starten:

    CALL mysql.rds_start_replication;