Konfigurieren der Replikation der Binärprotokolldateiposition mit 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 Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance

Sie können eine Replikation zwischen einer RDS for MySQL- oder MariaDB-DB-Instance und einer MySQL- oder MariaDB-Instance, die außerhalb von Amazon RDS ausgeführt wird, mit der Binärprotokolldatei-Replikation einrichten.

Bevor Sie beginnen

Sie konfigurieren die Replikation mithilfe der Position der Binärprotokolldatei von replizierten Transaktionen.

Die erforderlichen Berechtigungen für das Starten einer Replikation in einer Amazon RDS-DB-Instance sind beschränkt und für Ihre Amazon RDS-Hauptbenutzer nicht verfügbar. Stellen Sie deshalb sicher, dass Sie die Amazon RDS-Befehle mysql.rds_set_external_master und mysql.rds_start_replication verwenden, um eine Replikation zwischen Ihrer Live-Datenbank und Ihrer Amazon RDS-Datenbank einzurichten.

Aktualisieren Sie den Parameter binlog_format, um das binäre Protokollierungsformat für eine MySQL- oder MariaDB-Datenbank festzulegen. Erstellen Sie zum Ändern der binlog_format-Einstellungen eine neue DB-Parametergruppe, wenn Ihre DB-Instance die standardmäßige DB-Instance-Parametergruppe verwendet. Wir empfehlen, die Standardeinstellung für binlog_format zu verwenden. Diese lautet MIXED. Sie können binlog_format jedoch auch auf ROW oder STATEMENT einstellen, wenn Sie ein spezifisches Format des Binärprotokolls (binlog) benötigen. Starten Sie Ihre DB-Instance neu, damit die Änderungen übernommen werden.

Informationen zum Einstellen des Parameters binlog_format erhalten Sie unter Konfigurieren der MySQL-Binärprotokollierung. Informationen über die Auswirkungen der Verwendung unterschiedlicher MySQL-Replikationstypen finden Sie unter Vor- und Nachteile einer auf Anweisungen und einer auf Zeilen basierenden Replikation in der MySQL-Dokumentation.

Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance

Befolgen Sie diese Richtlinien, wenn Sie eine externe Quellinstance und ein Replikat auf Amazon RDS einrichten:

  • Überwachen Sie Failover-Ereignisse für die Amazon RDS-DB-Instance, die Ihr Replica 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 Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen.

  • Bewahren Sie die Binärprotokolle auf Ihrer Quell-Instance auf, bis Sie sichergestellt haben, 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 Amazon RDS-DB-Instance ein. Das Einschalten automatischer Sicherungen stellt sicher, dass Sie Ihr Replikat zu einem bestimmten Zeitpunkt wiederherstellen können, wenn Sie die Quell-Instance und das Replikat neu synchronisieren müssen. Informationen zu Sicherungen und point-in-time Wiederherstellungen finden Sie unter Sichern, Wiederherstellen und Exportieren von Daten.

Konfigurieren Sie die Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance wie folgt:
  1. Legen Sie die Quell-MySQL- oder MariaDB-Instance als schreibgeschützt fest.

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Führen Sie den Befehl SHOW MASTER STATUS in der MySQL- oder MariaDB-Quell-Instance aus, um die Position des Binärprotokolls zu ermitteln.

    Sie erhalten eine Ausgabe, ähnlich der im folgenden Beispiel.

    File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
  3. Kopieren Sie die Datenbank aus der externen Instance in die Amazon RDS-DB-Instance mithilfe von 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.

    Zum Festlegen von Host-Name, Benutzername, Port und Passwort für die Verbindung mit Ihrer Amazon RDS-DB-Instance verwenden Sie die Optionen --host, --user (-u), --port und -p im Befehl mysql. Der Hostname ist der DNS-Name (Domain Name Service) aus dem Endpunkt der Amazon-RDS-DB-Instance, z. B myinstance.123456789012.us-east-1.rds.amazonaws.com. Sie finden den Endpunktwert in den Instance-Details in der AWS Management Console.

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

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;

    Weitere Informationen zum Erstellen von Backups zur Verwendung mit der Replikation finden Sie unter in der MySQL-Dokumentation.

  5. Fügen Sie in der AWS Management Console die IP-Adresse des Servers, der die externe Datenbank hostet, zu der Virtual-Private-Cloud(VPC)-Sicherheitsgruppe dieser Amazon-RDS-DB-Instance hinzu. Weitere Informationen zum Ändern 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 Amazon RDS-DB-Instance zulässt. Sie tun dies, damit Ihr lokales Netzwerk mit Ihrer externen MySQL- oder MariaDB-Instance kommunizieren kann. Verwenden Sie den Befehl host, um die IP-Adresse Ihrer Amazon RDS-DB-Instance herauszufinden.

    host db_instance_endpoint

    Der Hostname ist der DNS-Name aus dem Endpunkt der Amazon RDS-DB-Instance.

  6. Stellen Sie mit einem Client Ihrer Wahl eine Verbindung zur Quell-Instance her und erstellen Sie den für die Replikation zu verwendenden Benutzer. Verwenden Sie dieses Konto ausschließlich für die Replikation und beschränken Sie es auf Ihre Domäne, 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 Instance die Sonderrechte 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 Amazon RDS-DB-Instance zum Replica. Stellen Sie dazu zunächst als Master-Benutzer eine Verbindung zur Amazon RDS-DB-Instance her. Identifizieren Sie dann die externe MySQL- oder MariaDB-Datenbank als Quell-Instance mithilfe des Befehls mysql.rds_set_external_master. Verwenden Sie den Namen und die Position der Protokolldatei, die Sie in Schritt 2 festgelegt haben. Im Folgenden wird ein Beispiel gezeigt.

    CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
    Anmerkung

    Unter RDS for MySQL können Sie stattdessen die Verwendung der verzögerten Replikation wählen, indem Sie die gespeicherte Prozedur mysql.rds_set_external_master_with_delay ausführen. Unter RDS for MySQL besteht ein Grund für die Verwendung einer verzögerten Replikation darin, die Notfallwiederherstellung mit der gespeicherten Prozedur mysql.rds_start_replication_until zu aktivieren. Derzeit unterstützt RDS for MariaDB verzögerte Replikation, aber nicht die mysql.rds_start_replication_until-Prozedur.

  9. Verwenden Sie für die Amazon RDS-DB-Instance den Befehl mysql.rds_start_replication, um die Replikation zu starten.

    CALL mysql.rds_start_replication;