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 für 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.
Themen
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. Achten Sie daher darauf, dass Sie die Amazon-RDS-Befehle mysql.rds_set_external_master (RDS-für-MariaDB- und RDS-für-MySQL-Hauptversionen 8.0 und niedriger) oder mysql.rds_set_external_source (RDS-für-MySQL-Hauptversionen 8.4 und höher) 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. Wenn Ihre DB-Instance die standardmäßige DB-Instance-Parametergruppe verwendet, erstellen Sie eine neue DB-Parametergruppe, um den Parameter binlog_format zu ändern. In MariaDB sowie MySQL 8.0 und früheren Versionen ist binlog_format standardmäßig auf MIXED festgelegt. 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. In MySQL 8.4 und höheren Versionen ist binlog_format standardmäßig auf ROW festgelegt.
Informationen zum Einstellen des Parameters binlog_format erhalten Sie unter Konfigurieren der Binärprotokollierung für RDS für MySQL für Single-AZ-Datenbanken. Informationen über die Auswirkungen der Verwendung unterschiedlicher MySQL-Replikationstypen finden Sie unter Vor- und Nachteile einer auf Anweisungen und einer auf Zeilen basierenden Replikation
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 unterSichern, Wiederherstellen und Exportieren von Daten.
Konfigurieren Sie die Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance wie folgt:
-
Legen Sie die Quell-MySQL- oder MariaDB-Instance als schreibgeschützt fest.
mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON; -
Führen Sie den Befehl
SHOW MASTER STATUSin 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 ------------------------------------ -
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 Datenbank von Amazon RDS für MySQL mit reduzierter Ausfallzeit.Für Linux, macOS oder Unix:
mysqldump --databasesdatabase_name\ --single-transaction \ --compress \ --order-by-primary \ -ulocal_user\ -plocal_password| mysql \ --host=hostname \ --port=3306 \ -uRDS_user_name\ -pRDS_passwordFür Windows:
mysqldump --databasesdatabase_name^ --single-transaction ^ --compress ^ --order-by-primary ^ -ulocal_user^ -plocal_password| mysql ^ --host=hostname ^ --port=3306 ^ -uRDS_user_name^ -pRDS_passwordAnmerkung
Zwischen der Option
-pund 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),--portund-pim Befehlmysql. Der Hostname ist der DNS-Name (Domain Name Service) aus dem Endpunkt der Amazon-RDS-DB-Instance, z. Bmyinstance.123456789012.us-east-1.rds.amazonaws.com. Sie finden den Endpunktwert in den Instance-Details in der AWS-Managementkonsole. -
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
. -
Fügen Sie im die IP-Adresse des Servers AWS-Managementkonsole, der die externe Datenbank hostet, der Sicherheitsgruppe Virtual Private Cloud (VPC) für die 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.hostdb_instance_endpointDer Hostname ist der DNS-Name aus dem Endpunkt der Amazon-RDS-DB-Instance.
-
-
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.
-
Erteilen Sie für die externe Instance die Sonderrechte
REPLICATION CLIENTundREPLICATION SLAVEfür Ihren Replikationsbenutzer. Erteilen Sie beispielsweise die SonderrechteREPLICATION CLIENTundREPLICATION SLAVEin 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'; -
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 mithilfe des Befehls mysql.rds_set_external_source (RDS-für-MySQL-Hauptversionen 8.4 und höher) oder mysql.rds_set_external_master (RDS-für-MariaDB- und RDS-für-MySQL-Hauptversionen 8.0 und niedriger) als Quell-Instance. Verwenden Sie den Namen und die Position der Protokolldatei, die Sie in Schritt 2 festgelegt haben. Die folgenden Befehle sind Beispiele.
MySQL 8.4
CALL mysql.rds_set_external_source ('mysourceserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031',107,1);MariaDB und MySQL 8.0 und 5.7
CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031',107,1);Anmerkung
Unter RDS für MySQL können Sie stattdessen die verzögerte Replikation wählen, indem Sie die gespeicherte Prozedur mysql.rds_set_external_source_with_delay (RDS-für-MySQL-Hauptversionen 8.4 und höher) oder mysql.rds_set_external_master_with_delay (RDS-für-MariaDB- und RDS-für-MySQL-Hauptversionen 8.0 und niedriger) ausführen. Unter RDS für 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 für MariaDB verzögerte Replikation, aber nicht die
mysql.rds_start_replication_until-Prozedur. -
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;