Konfiguration der GTID basierten Replikation mit einer externen Quellinstanz - 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.

Konfiguration der GTID basierten Replikation mit einer externen Quellinstanz

Sie können die Replikation basierend auf globalen Transaktions-Identifikatoren (GTIDs) von einer externen MariaDB-Instance der Version 10.0.24 oder höher in eine RDS for MariaDB-DB-Instance einrichten. Folgen Sie diesen Richtlinien, wenn Sie eine externe Quell-Instance und ein Replikat bei 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.

  • Aktivieren Sie automatische Backups auf Ihrer MariaDB-DB-Instance bei Amazon. RDS 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. Informationen zu Backups und Point-In-Time Restore finden Sie unter. Daten sichern, wiederherstellen und exportieren

Anmerkung

Die zum Starten der Replikation auf einer MariaDB-DB-Instance erforderlichen Berechtigungen sind eingeschränkt und stehen Ihrem RDS Amazon-Master-Benutzer nicht zur Verfügung. Aus diesem Grund müssen Sie die Amazon RDS mysql.rds_set_external_master_gtid - und mysql.rds_start_replication -Befehle verwenden, um die Replikation zwischen Ihrer Live-Datenbank und Ihrer RDS für MariaDB-Datenbank einzurichten.

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

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. Ruft den aktuellen Stand GTID der externen MariaDB-Instanz 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 ist formatiert als. <domain-id>-<server-id>-<sequence-id> Ein typisches GTID sieht ungefähr so 0-1234510749-1728 aus. Weitere Informationen zu GTIDs und ihren Bestandteilen 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 Import von Daten in eine Amazon RDS for MySQL MySQL-Datenbank mit reduzierter Ausfallzeit.

    Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder 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

    Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. 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 beispielsweise der DNS Name des MariaDB-DB-Instance-Endpunkts. myinstance.123456789012.us-east-1.rds.amazonaws.com Sie finden den Endpunktwert in den Instance-Details in der Amazon RDS Management Console.

  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 Management Console die IP-Adresse des Servers, der die externe MariaDB-Datenbank hostet, zur VPC Sicherheitsgruppe für die MariaDB-DB-Instance hinzu. Weitere Informationen zum Ändern einer VPC Sicherheitsgruppe finden Sie unter Sicherheitsgruppen für Sie VPC im Amazon Virtual Private Cloud 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 Hostname ist der DNS Name des MariaDB-DB-Instance-Endpunkts.

  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 denGTID, den 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', 1);
    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;