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.
Sie können die Replikation zwischen einer RDS for My SQL - oder MariaDB-DB-Instance und einer My- SQL oder MariaDB-Instance, die sich außerhalb von Amazon befindet, RDS mithilfe der binären Protokolldateireplikation einrichten.
Themen
Bevor Sie beginnen
Sie konfigurieren die Replikation mithilfe der Position der Binärprotokolldatei von replizierten Transaktionen.
Die zum Starten der Replikation auf einer Amazon RDS DB-Instance erforderlichen Berechtigungen sind eingeschränkt und stehen Ihrem RDS Amazon-Master-Benutzer nicht zur Verfügung. Stellen Sie daher sicher, dass Sie die mysql.rds_start_replication Befehle Amazon RDS oder, und verwenden, um die Replikation zwischen Ihrer Live-Datenbank und Ihrer RDS Amazon-Datenbank einzurichten.
Um das binäre Protokollierungsformat für eine My SQL - oder MariaDB-Datenbank festzulegen, aktualisieren Sie den binlog_format
Parameter. Wenn Ihre DB-Instance die standardmäßige DB-Instance-Parametergruppe verwendet, erstellen Sie eine neue DB-Parametergruppe, um den binlog_format
Parameter zu ändern. In MariaDB und My SQL 8.0 und niedrigeren Versionen ist binlog_format
standardmäßig. 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. In My SQL 8.4 und höheren Versionen ist standardmäßig. binlog_format
ROW
Informationen zum Einstellen des Parameters binlog_format
erhalten Sie unter Konfiguration von für My SQL Binary Logging. Informationen zu den Auswirkungen der verschiedenen Typen von Meine SQL Replikation finden Sie unter Vor- und Nachteile der anweisungsbasierten und zeilenbasierten Replikation
Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance
Folgen Sie diesen Richtlinien, wenn Sie eine externe Quell-Instance und ein Replikat bei Amazon RDS einrichten:
Überwachen Sie Failover-Ereignisse für die Amazon RDS 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.
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.
Aktivieren Sie automatische Backups auf Ihrer Amazon RDS DB-Instance. 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 point-in-time Backups und Wiederherstellungen finden Sie unterDaten sichern, wiederherstellen und exportieren.
Konfigurieren Sie die Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance wie folgt:
-
Machen Sie die My SQL - oder MariaDB-Quellinstanz schreibgeschützt.
mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
-
Führen Sie den
SHOW MASTER STATUS
Befehl auf der My SQL - oder MariaDB-Quellinstanz aus, um den Binlog-Speicherort zu ermitteln.Sie erhalten eine Ausgabe, ähnlich der im folgenden Beispiel.
File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
-
Kopieren Sie die Datenbank von der externen Instance in die Amazon RDS DB-Instance mit
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 \ -ulocal_user
\ -plocal_password
| mysql \ --host=hostname \ --port=3306 \ -uRDS_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 ^ -ulocal_user
^ -plocal_password
| mysql ^ --host=hostname ^ --port=3306 ^ -uRDS_user_name
^ -pRDS_password
Anmerkung
Zwischen der Option
-p
und dem eingegebenen Passwort darf kein Leerzeichen vorhanden sein.Um den Hostnamen, den Benutzernamen, den Port und das Passwort für die Verbindung mit Ihrer RDS Amazon-DB-Instance anzugeben
--host
--user (-u)
, verwenden Sie die-p
Optionen,--port
und immysql
Befehl. Der Hostname ist beispielsweise der Name des Domain Name Service (DNS) vom RDS Amazon-DB-Instance-Endpunktmyinstance.123456789012.us-east-1.rds.amazonaws.com
. Sie finden den Endpunktwert in den Instance-Details in der AWS Management Console. -
Machen Sie die My SQL - oder MariaDB-Quellinstanz wieder beschreibbar.
mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
Weitere Informationen zum Erstellen von Backups zur Verwendung bei der Replikation finden Sie in der
Dokumentation Meine. SQL -
Fügen Sie im die IP-Adresse des Servers AWS Management Console, der die externe Datenbank hostet, zur Sicherheitsgruppe Virtual Private Cloud (VPC) für die RDS Amazon-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.
Möglicherweise müssen Sie auch Ihr lokales Netzwerk so konfigurieren, dass Verbindungen von der IP-Adresse Ihrer RDS Amazon-DB-Instance aus zugelassen werden. Sie tun dies, damit Ihr lokales Netzwerk mit Ihrer externen My SQL - oder MariaDB-Instance kommunizieren kann. Verwenden Sie den
host
Befehl, um die IP-Adresse der RDS Amazon-DB-Instance zu ermitteln.host
db_instance_endpoint
Der Hostname ist der DNS Name des RDS Amazon-DB-Instance-Endpunkts.
-
-
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 CLIENT
undREPLICATION SLAVE
für Ihren Replikationsbenutzer. Erteilen Sie beispielsweise die SonderrechteREPLICATION CLIENT
undREPLICATION 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
'; -
Machen Sie die Amazon RDS DB-Instance zum Replikat. Stellen Sie dazu zunächst als Master-Benutzer eine Verbindung zur Amazon RDS DB-Instance her. Identifizieren Sie dann die externe My SQL - oder MariaDB-Datenbank als Quellinstanz, indem Sie den Befehl or verwenden. Verwenden Sie den Namen und die Position der Protokolldatei, die Sie in Schritt 2 festgelegt haben. Die folgenden Befehle sind Beispiele.
Mein SQL 8.4
CALL mysql.rds_set_external_source ('
mysourceserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,1
);MariaDB und My SQL 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
RDSBei My können Sie wählenSQL, ob Sie die verzögerte Replikation verwenden möchten, indem Sie stattdessen die mysql.rds_set_external_source_with_delay (für meine Hauptversionen 8.4 und höher) RDS SQL oder die mysql.rds_set_external_master_with_delay (für MariaDB und für meine Hauptversionen 8.0 und niedriger) RDS RDS SQL gespeicherte Prozedur ausführen. Ein Grund RDS für SQL die Verwendung der verzögerten Replikation ist die Aktivierung der Notfallwiederherstellung mit der gespeicherten Prozedur. Derzeit RDS unterstützt MariaDB verzögerte Replikation, unterstützt das Verfahren jedoch nicht.
mysql.rds_start_replication_until
-
Geben Sie auf der Amazon RDS DB-Instance den mysql.rds_start_replication Befehl ein, um die Replikation zu starten.
CALL mysql.rds_start_replication;