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, Starten und Stoppen der Binärprotokollreplikation (Binlog)
Die folgenden gespeicherten Prozeduren steuern, wie Transaktionen von einer externen Datenbank in RDS für My oder von RDS for My SQL SQL in eine externe Datenbank repliziert werden.
Wenn Sie diese gespeicherten Prozeduren verwenden, um die Replikation mit einem mit konfigurierten Replikationsbenutzer zu verwaltencaching_sha2_password
, müssen Sie TLS bei der Konfiguration Folgendes angebenSOURCE_SSL=1
: caching_sha2_password
ist das Standard-Authentifizierungs-Plug-In RDS für My SQL 8.4. Weitere Informationen finden Sie unterVerschlüsseln mit/SSLTLS.
Informationen zur Konfiguration, Verwendung und Verwaltung von Read Replicas finden Sie unterMit My SQL Read Replicas arbeiten.
Themen
- mysql.rds_set_external_master_with_auto_position (für meine Hauptversionen 8.0 und niedriger) RDS SQL
- mysql.rds_set_external_source_with_auto_position (für meine Hauptversionen 8.4 und höher) RDS SQL
- mysql.rds_set_external_master_with_delay (für MariaDB und für meine Hauptversionen 8.0 und niedriger) RDS RDS SQL
- mysql.rds_set_external_source_with_delay (für meine Hauptversionen 8.4 und höher) RDS SQL
- mysql.rds_set_external_source_gtid_purged
- mysql.rds_set_source_delay
- mysql.rds_skip_repl_error
- mysql.rds_start_replication
- mysql.rds_stop_replication
Ändert die Protokollposition der Quelldatenbankinstance in den Anfang des nächsten Binärprotokolls auf der Quelldatenbankinstance. Verwenden Sie diese Prozedur nur dann, wenn Sie für ein Lesereplikat bei der Replikation einen I/O-Fehler mit der Fehlernummer 1236 erhalten.
Syntax
CALL mysql.rds_next_master_log(
curr_master_log
);
Parameter
-
curr_master_log
-
Der Index der aktuellen Master-Protokolldatei. Der Index ist im Dateinamen codiert. Eine aktuelle Datei mit dem Namen
mysql-bin-changelog.012345
hat beispielsweise den Index 12345. Um den Namen der aktuellen Master-Protokolldatei zu ermitteln, führen Sie den BefehlSHOW REPLICA STATUS
aus. Sie finden den Namen anschließend im FeldMaster_Log_File
.
Nutzungshinweise
Die Prozedur mysql.rds_next_master_log
muss vom Hauptbenutzer ausgeführt werden.
Warnung
mysql.rds_next_master_log
sollte nur dann aufgerufen werden, wenn die Replikation nach einem Failover einer als Replikationsquelle fungierenden Multi-AZ-DB-Instance fehlschlägt und das Feld Last_IO_Errno
im von SHOW REPLICA STATUS
zurückgegebenen Ergebnis einen I/O-Fehler mit der Nummer 1236 meldet.
Ein Aufruf von mysql.rds_next_master_log
kann zu Datenverlust im Lesereplikat führen, falls Transaktionen in der Quell-Instance nicht in das binäre Protokoll auf der Festplatte geschrieben wurden, bevor das Failover-Ereignis auftrat. Sie können die Wahrscheinlichkeit verringern, dass dies passiert, indem Sie die Quellinstanzparameter und auf festlegen, auch wenn dies die Leistung beeinträchtigen könnte. sync_binlog
innodb_support_xa
1
Weitere Informationen finden Sie unter Behebung eines My SQL Read Replica-Problems.
Beispiele
Gehen Sie davon aus, dass die Replikation auf einer RDSfür My SQL Read Replica fehlschlägt. Die Ausführung von SHOW REPLICA STATUS\G
für das Lesereplikat gibt das folgende Ergebnis zurück:
*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Master: NULL Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976
Den Angeben im Feld Last_IO_Errno
ist zu entnehmen, dass die Instance eine I/O-Fehlermeldung mit der Nummer 1236 erhalten hat. Dem Feld Master_Log_File
ist zudem zu entnehmen, dass die betroffene Protokolldatei den Namen mysql-bin-changelog.012345
aufweist und ihr Index folglich 12345
lautet. Zur Behebung des Fehlers können Sie dann mysql.rds_next_master_log
mit dem folgenden Parameter aufrufen:
CALL mysql.rds_next_master_log(12345);
Ändert die Protokollposition der Quelldatenbankinstance in den Anfang des nächsten Binärprotokolls auf der Quelldatenbankinstance. Verwenden Sie diese Prozedur nur dann, wenn Sie für ein Lesereplikat bei der Replikation einen I/O-Fehler mit der Fehlernummer 1236 erhalten.
Syntax
CALL mysql.rds_next_source_log(
curr_source_log
);
Parameter
-
curr_source_log
-
Der Index der aktuellen Quell-Protokolldatei. Der Index ist im Dateinamen codiert. Eine aktuelle Datei mit dem Namen
mysql-bin-changelog.012345
hat beispielsweise den Index 12345. Um den Namen der aktuellen Quell-Protokolldatei zu ermitteln, führen Sie den BefehlSHOW REPLICA STATUS
aus. Sie finden den Namen anschließend im FeldSource_Log_File
.
Nutzungshinweise
Der Administrator muss das mysql.rds_next_source_log
-Verfahren ausführen.
Warnung
mysql.rds_next_source_log
sollte nur dann aufgerufen werden, wenn die Replikation nach einem Failover einer als Replikationsquelle fungierenden Multi-AZ-DB-Instance fehlschlägt und das Feld Last_IO_Errno
im von SHOW REPLICA STATUS
zurückgegebenen Ergebnis einen I/O-Fehler mit der Nummer 1236 meldet.
Ein Aufruf von mysql.rds_next_source_log
kann zu Datenverlust im Lesereplikat führen, falls Transaktionen in der Quell-Instance nicht in das binäre Protokoll auf der Festplatte geschrieben wurden, bevor das Failover-Ereignis auftrat. Sie können die Wahrscheinlichkeit verringern, dass dies passiert, indem Sie die Quellinstanzparameter sync_binlog
und auf festlegen, auch wenn dies die Leistung beeinträchtigen könnte. innodb_support_xa
1
Weitere Informationen finden Sie unter Behebung eines My SQL Read Replica-Problems.
Beispiele
Gehen Sie davon aus, dass die Replikation auf einer RDSfür My SQL Read Replica fehlschlägt. Die Ausführung von SHOW REPLICA STATUS\G
für das Lesereplikat gibt das folgende Ergebnis zurück:
*************************** 1. row *************************** Replica_IO_State: Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: MasterUser Source_Port: 3306 Connect_Retry: 10 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: relaylog.012340 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 30223232 Relay_Log_Space: 5248928866 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Source_SSL_Allowed: No Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: NULL Source_SSL_Verify_Server_Cert: No Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 67285976
Den Angeben im Feld Last_IO_Errno
ist zu entnehmen, dass die Instance eine I/O-Fehlermeldung mit der Nummer 1236 erhalten hat. Dem Feld Source_Log_File
ist zudem zu entnehmen, dass die betroffene Protokolldatei den Namen mysql-bin-changelog.012345
aufweist und ihr Index folglich 12345
lautet. Zur Behebung des Fehlers können Sie dann mysql.rds_next_source_log
mit dem folgenden Parameter aufrufen:
CALL mysql.rds_next_source_log(12345);
Konfiguriert eine My SQL DB-Instance RDSfür My SQL neu, sodass sie keine Read Replica einer My-Instance mehr ist, die außerhalb von SQL Amazon ausgeführt wird. RDS
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_reset_external_master;
Nutzungshinweise
Die Prozedur mysql.rds_reset_external_master
muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer SQL My-Instance entfernt werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Weitere Informationen zur Verwendung der Replikation zum Importieren von Daten aus einer Instance von My, die außerhalb von Amazon SQL ausgeführt wirdRDS, finden Sie unterKonfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Konfiguriert eine My SQL DB-Instance RDSfür My SQL neu, sodass sie keine Read Replica einer My-Instance mehr ist, die außerhalb von SQL Amazon ausgeführt wird. RDS
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_reset_external_source;
Nutzungshinweise
Der Administrator muss das mysql.rds_reset_external_source
-Verfahren ausführen. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer SQL My-Instance entfernt werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden.
Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten. Weitere Informationen zur Verwendung der Replikation zum Importieren von Daten aus einer Instance von My, die außerhalb von Amazon SQL ausgeführt wirdRDS, finden Sie unterKonfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Konfiguriert eine RDSMy SQL DB-Instance als Read Replica einer My-Instance, die außerhalb von Amazon SQL ausgeführt wird. RDS
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Anmerkung
Sie können die gespeicherte Prozedur mysql.rds_set_external_master_with_delay (für MariaDB und für meine Hauptversionen 8.0 und niedriger) RDS RDS SQL zum Konfigurieren einer externer Quelldatenbank-Instance und einer verzögerten Replikation verwenden.
Syntax
CALL mysql.rds_set_external_master (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und die Quelldatenbank-Instance werden RDS soll.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die außerhalb von Amazon ausgeführt wirdRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine Secure Shell (SSH) -Portreplikation beinhaltet, die die Portnummer konvertiert, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
mysql_binary_log_file_name
-
Der Name des Binärprotokolls auf der Quelldatenbank-Instance, die die Replikationsinformationen enthält.
-
mysql_binary_log_file_location
-
Die Position in der binären Protokolldatei
mysql_binary_log_file_name
, ab der bei der Replikation die Replikationsinformationen gelesen werden.Sie können den Namen und den Speicherort der Binlog-Datei ermitteln, indem Sie
SHOW MASTER STATUS
auf der Quelldatenbankinstanz starten. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
MASTER_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden.
Nutzungshinweise
Die Prozedur mysql.rds_set_external_master
muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer My SQL Instance konfiguriert werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Vor der Ausführung mysql.rds_set_external_master
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie replication_user_password
Werte angebenreplication_user_name
, die auf einen Replikationsbenutzer hinweisen, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instance von My SQL als Quelldatenbank-Instance zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.
Mein SQL 5.7
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '
password
';Meine SQL 8,0
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY '
password
';Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem Benutzer 'repl_user' für Ihre Domäne die BerechtigungenREPLICATION CLIENT
undREPLICATION SLAVE
für alle Datenbanken erteilt.Mein SQL 5.7
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY '
password
';Meine SQL 8,0
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
Um die verschlüsselte Replikation zu verwenden, konfigurieren Sie die Quelldatenbank-Instance für die Verwendung von SSL Verbindungen.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Nach dem Aufruf mysql.rds_set_external_master
zur Konfiguration einer Amazon RDS DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn aufgerufen mysql.rds_set_external_master
wird, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Beispiele
Wenn sie auf einer My SQL DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS
call mysql.rds_set_external_master( 'Externaldb.some.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 1);
Konfiguriert eine RDSMy SQL DB-Instance als Read Replica einer My-Instance, die außerhalb von Amazon SQL ausgeführt wird. RDS
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_source (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und die Quelldatenbank-Instance werden RDS soll.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die außerhalb von Amazon ausgeführt wirdRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine Secure Shell (SSH) -Portreplikation beinhaltet, die die Portnummer konvertiert, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
mysql_binary_log_file_name
-
Der Name des Binärprotokolls auf der Quelldatenbank-Instance, die die Replikationsinformationen enthält.
-
mysql_binary_log_file_location
-
Die Position in der binären Protokolldatei
mysql_binary_log_file_name
, ab der bei der Replikation die Replikationsinformationen gelesen werden.Sie können den Namen und den Speicherort der Binlog-Datei ermitteln, indem Sie
SHOW MASTER STATUS
auf der Quelldatenbankinstanz starten. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
SOURCE_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden.
Nutzungshinweise
Der Administrator muss das mysql.rds_set_external_source
-Verfahren ausführen. Dieses Verfahren muss auf der DB-Instance ausgeführt werden, um sie als Read Replica einer SQL My-Instance zu konfigurieren, die außerhalb von Amazon RDS ausgeführt wird.
Vor der Ausführung mysql.rds_set_external_source
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie replication_user_password
Werte angebenreplication_user_name
, die auf einen Replikationsbenutzer hinweisen, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instance von My SQL als Quelldatenbank-Instance zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. 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.
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem Benutzer 'repl_user' für Ihre Domäne die BerechtigungenREPLICATION CLIENT
undREPLICATION SLAVE
für alle Datenbanken erteilt.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
Um die verschlüsselte Replikation zu verwenden, konfigurieren Sie die Quelldatenbankinstanz für die Verwendung von SSL Verbindungen. Importieren Sie außerdem mit der Prozedur mysql.rds_import_binlog_ssl_material das Zertifizierungsstellenzertifikat, das Clientzertifikat und den Clientschlüssel in die DB-Instance bzw. den DB-Cluster.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Nach einem Aufruf mysql.rds_set_external_source
zur Konfiguration einer for My SQL DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn aufgerufen mysql.rds_set_external_source
wird, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Beispiele
Wenn sie auf einer DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer My-Instance, die außerhalb von SQL Amazon läuft. RDS
call mysql.rds_set_external_source( 'Externaldb.some.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 1);
mysql.rds_set_external_master_with_auto_position (für meine Hauptversionen 8.0 und niedriger) RDS SQL
Konfiguriert eine RDS for My SQL DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Bei diesem Verfahren werden auch verzögerte Replikation und Replikation auf der Grundlage globaler Transaktions-Identifikatoren () konfiguriert. GTIDs
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_master_with_auto_position (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und die Quelldatenbank-Instance werden RDS soll.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die außerhalb von Amazon ausgeführt wirdRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine Secure Shell (SSH) -Portreplikation beinhaltet, die die Portnummer konvertiert, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
MASTER_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden. -
delay
-
Die Mindestanzahl von Sekunden, um die Replikation von der Quelldatenbank-Instance zu verzögern.
Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).
Nutzungshinweise
Die Prozedur mysql.rds_set_external_master_with_auto_position
muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer My SQL Instance konfiguriert werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Dieses Verfahren wird für alle Versionen von My SQL 5.7 und RDS RDS für My SQL 8.0.26 und höhere Versionen 8.0 unterstützt.
Vor der Ausführung mysql.rds_set_external_master_with_auto_position
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie Werte für replication_user_name
und angebenreplication_user_password
. Diese Werte müssen einen Replikationsbenutzer angeben, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instanz von My SQL als Quelldatenbankinstanz zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem BenutzerREPLICATION CLIENT
für Ihre Domäne die BerechtigungenREPLICATION SLAVE
und'repl_user'
für alle Datenbanken erteilt.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Weitere Informationen finden Sie unter Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Stellen Sie vor dem Aufrufen sichermysql.rds_set_external_master_with_auto_position
, dass Sie die gtid_purged
Systemvariable aufrufen, mysql.rds_set_external_source_gtid_purged um sie auf einen bestimmten GTID Bereich aus einer externen Quelle festzulegen.
Nach dem Aufruf mysql.rds_set_external_master_with_auto_position
zur Konfiguration einer Amazon RDS DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn Sie anrufenmysql.rds_set_external_master_with_auto_position
, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Für die Notfallwiederherstellung können Sie diese Prozedur mit der gespeicherten Prozedur oder verwenden. Um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen, können Sie die Prozedur mysql.rds_set_external_master_with_auto_position
ausführen. Nachdem die Prozedur mysql.rds_start_replication_until_gtid
die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance).
Um das mysql.rds_rds_start_replication_until_gtid
Verfahren verwenden zu können, muss die GTID basierte Replikation aktiviert sein. Um eine bestimmte GTID basierte Transaktion zu überspringen, von der bekannt ist, dass sie zu einem Notfall führt, können Sie die gespeicherte Prozedur verwenden. Weitere Informationen zum Arbeiten mit der GTID basierten Replikation finden Sie unterVerwenden der GTID basierten Replikation.
Beispiele
Wenn sie auf einer My SQL DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Es legt die minimale Replikationsverzögerung auf der My SQL DB-Instance auf eine Stunde (3.600 Sekunden) fest. Eine Änderung gegenüber der My SQL Source Database-Instance, die extern zu Amazon ausgeführt wird, wird mindestens eine Stunde lang RDS nicht auf die My SQL DB-Instance-Lesereplik angewendet.
call mysql.rds_set_external_master_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 1, 3600);
mysql.rds_set_external_source_with_auto_position (für meine Hauptversionen 8.4 und höher) RDS SQL
Konfiguriert eine RDS for My SQL DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Bei diesem Verfahren werden auch verzögerte Replikation und Replikation auf der Grundlage globaler Transaktions-Identifikatoren () konfiguriert. GTIDs
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_source_with_auto_position (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und die Quelldatenbank-Instance werden RDS soll.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die außerhalb von Amazon ausgeführt wirdRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine Secure Shell (SSH) -Portreplikation beinhaltet, die die Portnummer konvertiert, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
SOURCE_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden. -
delay
-
Die Mindestanzahl von Sekunden, um die Replikation von der Quelldatenbank-Instance zu verzögern.
Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).
Nutzungshinweise
Der Administrator muss das mysql.rds_set_external_source_with_auto_position
-Verfahren ausführen. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer My SQL Instance konfiguriert werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Vor der Ausführung mysql.rds_set_external_source_with_auto_position
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie Werte für replication_user_name
und angebenreplication_user_password
. Diese Werte müssen einen Replikationsbenutzer angeben, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instanz von My SQL als Quelldatenbankinstanz zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem BenutzerREPLICATION CLIENT
für Ihre Domäne die BerechtigungenREPLICATION SLAVE
und'repl_user'
für alle Datenbanken erteilt.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Weitere Informationen finden Sie unter Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Stellen Sie vor dem Aufrufen sichermysql.rds_set_external_source_with_auto_position
, dass Sie die gtid_purged
Systemvariable aufrufen, mysql.rds_set_external_source_gtid_purged um sie auf einen bestimmten GTID Bereich aus einer externen Quelle festzulegen.
Nach dem Aufruf mysql.rds_set_external_source_with_auto_position
zur Konfiguration einer Amazon RDS DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn Sie anrufenmysql.rds_set_external_source_with_auto_position
, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Für die Notfallwiederherstellung können Sie diese Prozedur mit der gespeicherten Prozedur oder verwenden. Um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen, können Sie die Prozedur mysql.rds_set_external_source_with_auto_position
ausführen. Nachdem die Prozedur mysql.rds_start_replication_until_gtid
die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance).
Um das mysql.rds_rds_start_replication_until_gtid
Verfahren verwenden zu können, muss die GTID basierte Replikation aktiviert sein. Um eine bestimmte GTID basierte Transaktion zu überspringen, von der bekannt ist, dass sie zu einem Notfall führt, können Sie die gespeicherte Prozedur verwenden. Weitere Informationen zum Arbeiten mit der GTID basierten Replikation finden Sie unterVerwenden der GTID basierten Replikation.
Beispiele
Wenn sie auf einer My SQL DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Es legt die minimale Replikationsverzögerung auf der My SQL DB-Instance auf eine Stunde (3.600 Sekunden) fest. Eine Änderung gegenüber der My SQL Source Database-Instance, die extern zu Amazon ausgeführt wird, wird mindestens eine Stunde lang RDS nicht auf die My SQL DB-Instance-Lesereplik angewendet.
call mysql.rds_set_external_source_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 1, 3600);
mysql.rds_set_external_master_with_delay (für MariaDB und für meine Hauptversionen 8.0 und niedriger) RDS RDS SQL
Konfiguriert eine RDS for My SQL DB-Instance als Read Replica einer My-Instance, die außerhalb von Amazon SQL läuft, RDS und konfiguriert die verzögerte Replikation.
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_master_with_delay(
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und RDS die Quelldatenbank-Instance wird.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die außerhalb von Amazon ausgeführt wirdRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine SSH Portreplikation beinhaltet, bei der die Portnummer konvertiert wird, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
mysql_binary_log_file_name
-
Der Name des Binärprotokolls auf der Quelldatenbank-Instance, die die Replikationsinformationen enthält.
-
mysql_binary_log_file_location
-
Die Position innerhalb der für
mysql_binary_log_file_name
angegebenen binären Protokolldatei, ab der bei der Replikation die Replikationsinformationen gelesen werden.Sie können den Namen und den Speicherort der Binlog-Datei ermitteln, indem Sie
SHOW MASTER STATUS
auf der Quelldatenbankinstanz starten. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
MASTER_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden. -
delay
-
Die Mindestanzahl von Sekunden, um die Replikation von der Quelldatenbank-Instance zu verzögern.
Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).
Nutzungshinweise
Die Prozedur mysql.rds_set_external_master_with_delay
muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer My SQL Instance konfiguriert werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Vor der Ausführung mysql.rds_set_external_master_with_delay
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie Werte für replication_user_name
und angebenreplication_user_password
. Diese Werte müssen einen Replikationsbenutzer angeben, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instanz von My SQL als Quelldatenbankinstanz zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem BenutzerREPLICATION CLIENT
für Ihre Domäne die BerechtigungenREPLICATION SLAVE
und'repl_user'
für alle Datenbanken erteilt.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Weitere Informationen finden Sie unter Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Nach dem Aufruf mysql.rds_set_external_master_with_delay
zur Konfiguration einer Amazon RDS DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn Sie anrufenmysql.rds_set_external_master_with_delay
, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Für die Notfallwiederherstellung können Sie diese Prozedur mit der gespeicherten Prozedur oder verwenden. Um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen, können Sie die Prozedur mysql.rds_set_external_master_with_delay
ausführen. Nachdem die Prozedur mysql.rds_start_replication_until
die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance).
Um das mysql.rds_rds_start_replication_until_gtid
Verfahren verwenden zu können, muss die GTID basierte Replikation aktiviert sein. Um eine bestimmte GTID basierte Transaktion zu überspringen, von der bekannt ist, dass sie zu einem Notfall führt, können Sie die gespeicherte Prozedur verwenden. Weitere Informationen zum Arbeiten mit der GTID basierten Replikation finden Sie unterVerwenden der GTID basierten Replikation.
Das mysql.rds_set_external_master_with_delay
Verfahren ist in diesen Versionen von RDS for My verfügbarSQL:
-
Meine SQL 8.0.26 und höhere 8.0-Versionen
-
Alle 5.7-Versionen
Beispiele
Wenn sie auf einer My SQL DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Es legt die minimale Replikationsverzögerung auf der My SQL DB-Instance auf eine Stunde (3.600 Sekunden) fest. Eine Änderung gegenüber der My SQL Source Database-Instance, die extern zu Amazon ausgeführt wird, wird mindestens eine Stunde lang RDS nicht auf die My SQL DB-Instance-Lesereplik angewendet.
call mysql.rds_set_external_master_with_delay( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 'mysql-bin-changelog.000777', 120, 1, 3600);
mysql.rds_set_external_source_with_delay (für meine Hauptversionen 8.4 und höher) RDS SQL
Konfiguriert eine RDS for My SQL DB-Instance als Read Replica einer My-Instance, die außerhalb von Amazon SQL läuft, RDS und konfiguriert die verzögerte Replikation.
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_source_with_delay (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
);
Parameter
-
host_name
-
Der Hostname oder die IP-Adresse der SQL My-Instance, die außerhalb von Amazon ausgeführt wird und RDS die Quelldatenbank-Instance wird.
-
host_port
-
Der Port, der von der SQL My-Instance verwendet wird, die extern zu Amazon läuftRDS, um als Quelldatenbank-Instance konfiguriert zu werden. Wenn Ihre Netzwerkkonfiguration eine SSH Portreplikation beinhaltet, bei der die Portnummer konvertiert wird, geben Sie die Portnummer an, die von verfügbar gemacht wirdSSH.
-
replication_user_name
-
Die ID eines Benutzers mit
REPLICATION CLIENT
undREPLICATION SLAVE
Berechtigungen für die My SQL Instance, die außerhalb von Amazon ausgeführt wirdRDS. Es wird empfohlen, ein Benutzerkonto bereitzustellen, das ausschließlich für die Replikation mit der externen Instance genutzt wird. -
replication_user_password
-
Das zu dem in
replication_user_name
angegebenen User-ID gehörige Passwort. -
mysql_binary_log_file_name
-
Der Name des Binärprotokolls auf der Quelldatenbank-Instance, die die Replikationsinformationen enthält.
-
mysql_binary_log_file_location
-
Die Position innerhalb der für
mysql_binary_log_file_name
angegebenen binären Protokolldatei, ab der bei der Replikation die Replikationsinformationen gelesen werden.Sie können den Namen und den Speicherort der Binlog-Datei ermitteln, indem Sie
SHOW MASTER STATUS
auf der Quelldatenbankinstanz starten. -
ssl_encryption
-
Ein Wert, der angibt, ob die Secure Socket Layer (SSL) -Verschlüsselung für die Replikationsverbindung verwendet wird. 1 gibt an, dass SSL Verschlüsselung verwendet wird, 0 gibt an, dass keine Verschlüsselung verwendet wird. Der Standardwert ist 0.
Anmerkung
Die Option
SOURCE_SSL_VERIFY_SERVER_CERT
wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden. -
delay
-
Die Mindestanzahl von Sekunden, um die Replikation von der Quelldatenbank-Instance zu verzögern.
Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).
Nutzungshinweise
Der Administrator muss das mysql.rds_set_external_source_with_delay
-Verfahren ausführen. Dieses Verfahren muss auf der My SQL DB-Instance ausgeführt werden, die als Read Replica einer My SQL Instance konfiguriert werden soll, die außerhalb von Amazon RDS ausgeführt wird.
Vor der Ausführung mysql.rds_set_external_source_with_delay
müssen Sie die Instance von My SQL running external RDS to Amazon als Quelldatenbank-Instance konfigurieren. Um eine Verbindung mit der SQL My-Instance herzustellen, die außerhalb von Amazon ausgeführt wirdRDS, müssen Sie Werte für replication_user_name
und angebenreplication_user_password
. Diese Werte müssen einen Replikationsbenutzer angeben, der über REPLICATION SLAVE
Berechtigungen für die externe Instance von My verfügt REPLICATION CLIENT
SQL.
Um eine externe Instanz von My SQL als Quelldatenbankinstanz zu konfigurieren
-
Stellen Sie mit dem SQL My-Client Ihrer Wahl eine Verbindung zur externen Instanz von My her SQL und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.
CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
-
REPLICATION CLIENT
Erteilen Sie Ihrem Replikationsbenutzer auf der externen Instanz von My SQLREPLICATION SLAVE
Rechte. Im folgenden Beispiel werden dem BenutzerREPLICATION CLIENT
für Ihre Domäne die BerechtigungenREPLICATION SLAVE
und'repl_user'
für alle Datenbanken erteilt.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
Weitere Informationen finden Sie unter Konfigurieren der Replikation der Binärprotokolldateiposition mit einer externen Quell-Instance.
Anmerkung
Wir empfehlen, wenn möglich, Read Replicas zu verwenden, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu verwalten. In diesem Fall sollten Sie nur diese und andere replikationsbezogene gespeicherte Prozeduren verwenden. Diese Methoden ermöglichen komplexere Replikationstopologien zwischen RDS Amazon-DB-Instances. Wir bieten diese gespeicherten Prozeduren hauptsächlich an, um die Replikation mit SQL My-Instances zu ermöglichen, die außerhalb von Amazon ausgeführt RDS werden. Informationen zur Verwaltung der Replikation zwischen RDS Amazon-DB-Instances finden Sie unterArbeiten mit DB-Instance-Lesereplikaten.
Nach dem Aufruf mysql.rds_set_external_source_with_delay
zur Konfiguration einer Amazon RDS DB-Instance als Read Replica können Sie die Read Replica aufrufenmysql.rds_start_replication, um den Replikationsprozess zu starten. Zudem haben Sie die Möglichkeit, mit einem Aufruf von die Lesereplikat-Konfiguration zu entfernen.
Wenn Sie anrufenmysql.rds_set_external_source_with_delay
, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set master
in den mysql.rds_replication_status
Tabellen mysql.rds_history
und auf.
Für die Notfallwiederherstellung können Sie diese Prozedur mit der gespeicherten Prozedur oder verwenden. Um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen, können Sie die Prozedur mysql.rds_set_external_source_with_delay
ausführen. Nachdem die Prozedur mysql.rds_start_replication_until
die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance).
Um das mysql.rds_rds_start_replication_until_gtid
Verfahren verwenden zu können, muss die GTID basierte Replikation aktiviert sein. Um eine bestimmte GTID basierte Transaktion zu überspringen, von der bekannt ist, dass sie zu einem Notfall führt, können Sie die gespeicherte Prozedur verwenden. Weitere Informationen zum Arbeiten mit der GTID basierten Replikation finden Sie unterVerwenden der GTID basierten Replikation.
Beispiele
Wenn sie auf einer My SQL DB-Instance ausgeführt wird, konfiguriert das folgende Beispiel die DB-Instance als Read Replica einer Instance von My, die außerhalb von SQL Amazon läuft. RDS Es legt die minimale Replikationsverzögerung auf der My SQL DB-Instance auf eine Stunde (3.600 Sekunden) fest. Eine Änderung gegenüber der My SQL Source Database-Instance, die extern zu Amazon ausgeführt wird, wird mindestens eine Stunde lang RDS nicht auf die My SQL DB-Instance-Lesereplik angewendet.
call mysql.rds_set_external_source_with_delay( 'Externaldb.some.com', 3306, 'repl_user', 'SomePassW0rd', 'mysql-bin-changelog.000777', 120, 1, 3600);
mysql.rds_set_external_source_gtid_purged
Setzt die Systemvariable gtid_purged auf einen angegebenen Bereich aus einer externen Quelle.gtid_purged
Wert ist für die Konfiguration der GTID basierten Replikation erforderlich, um die Replikation mithilfe der auto Positionierung wieder aufzunehmen.
Wichtig
Um diese Prozedur auszuführen, muss autocommit
aktiviert sein. Um dies zu aktivieren, setzen Sie den autocommit
-Parameter auf 1
. Weitere Informationen zum Ändern von Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon RDS.
Syntax
CALL mysql.rds_set_external_source_gtid_purged(
server_uuid
,start_pos
,end_pos
);
Parameter
-
server_uuid
-
Die universell eindeutige Kennung (UUID) des externen Servers, von dem der GTID Bereich importiert wird.
-
start_pos
-
Die Startposition des GTID festzulegenden Bereichs.
-
end_pos
-
Die Endposition des festzulegenden GTID Bereichs.
Nutzungshinweise
Das mysql.rds_set_external_source_gtid_purged
Verfahren ist nur in den Versionen My SQL 8.0.37 und höher 8.0 verfügbar.
Rufen Sie an, mysql.rds_set_external_source_gtid_purged
bevor Sie anrufenmysql.rds_set_external_master_with_auto_position (für meine Hauptversionen 8.0 und niedriger) RDS SQL,mysql.rds_set_external_source_with_auto_position (für meine Hauptversionen 8.4 und höher) RDS SQL, oder. mysql.rds_set_external_source_with_auto_position_for_channel
Stellen Sie vor dem Anruf sichermysql.rds_set_external_source_gtid_purged
, dass alle aktiven Replikationskanäle für die Datenbank gestoppt sind. Um den Status eines Kanals zu überprüfen, verwenden Sie die SQL Anweisung SHOW REPLICA STATUS
My. Um die Replikation auf einem Kanal zu beenden, rufen Sie anmysql.rds_stop_replication_for_channel.
Der GTID Bereich, den Sie angeben, muss eine Obermenge des vorhandenen GTID_PURGED
Werts sein. Diese gespeicherte Prozedur überprüft die folgenden Werte, bevor sie den GTID_PURGED
Wert festlegt:
-
Das
server_uuid
ist gültig. -
Der Wert von
start_pos
ist größer als0
und kleiner als der Wert vonend_pos
. -
Der Wert von
end_pos
ist größer oder gleich dem Wert vonstart_pos
.
Wenn der GTID Satz auf Ihrem externen Server mehrere Wertebereiche enthält, sollten Sie erwägen, die Prozedur mehrmals mit unterschiedlichen GTID festgelegten Werten aufzurufen.
Wenn Sie anrufenmysql.rds_set_external_source_gtid_purged
, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set gtid_purged
in der mysql.rds_history
Tabelle auf.
Wenn Sie den gtid_purged
Wert für das Backup, das Sie für die Replikation verwenden, nicht angemessen festlegen, kann dies dazu führen, dass während des Replikationsvorgangs Transaktionen fehlen oder doppelt vorhanden sind. Führen Sie die folgenden Schritte aus, um den richtigen gtid_purged
Wert festzulegen.
Um den gtid_purged-Wert für das Replikat festzulegen
-
Ermitteln Sie den Zeitpunkt oder die spezifische Sicherungsdatei, die als Ausgangspunkt für die Replikation verwendet werden soll. Dies kann ein logisches Backup (eine Mysqldump-Datei) oder ein physisches Backup (ein RDS Amazon-Snapshot) sein.
-
Ermitteln Sie den Wert.
gtid_executed
Dieser Wert stellt die Menge aller Daten darGTIDs, die auf dem Server festgeschrieben wurden. Gehen Sie auf der Quellinstanz wie folgt vor, um diesen Wert abzurufen:-
Führen Sie die SQL Anweisung
SELECT @@GLOBAL.GTID_EXECUTED;
zu dem Zeitpunkt aus, zu dem das Backup erstellt wurde. -
Wenn das jeweilige Backup-Hilfsprogramm verwandte Optionen enthält, extrahieren Sie den Wert aus der Backup-Datei. Weitere Informationen finden Sie unter Meine SQL Dokumentation zu dieser set-gtid-purged
Option.
-
-
Ermitteln Sie den
gtid_purged
Wert, der für den Aufruf von verwendet werden sollmysql.rds_set_external_source_gtid_purged
. Dergtid_purged
Wert sollte alle Elemente enthaltenGTIDs, die auf der Quellinstanz ausgeführt wurden und nicht mehr für die Replikation benötigt werden. Daher sollte dergtid_purged
Wert eine Teilmenge desgtid_executed
Werts sein, den Sie im vorherigen Schritt abgerufen haben.Um den
gtid_purged
Wert zu ermitteln, identifizieren Sie diejenigen, GTIDs die nicht in der Sicherung enthalten sind und nicht mehr für die Replikation benötigt werden. Sie können dies tun, indem Sie die Binärprotokolle analysieren oder ein Tool wie mysqlbinlog verwenden, um diejenigen zu findenGTIDs, die aus den Binärprotokollen gelöscht wurden.Wenn Sie über ein konsistentes Backup verfügen, das alle Binärprotokolle bis zum Backup-Punkt umfasst, können Sie den Wert alternativ so einstellen, dass er dem
gtid_purged
gtid_executed
Wert am Backup-Punkt entspricht. -
Nachdem Sie den entsprechenden
gtid_purged
Wert ermittelt haben, der mit Ihrem Backup konsistent ist, rufen Sie diemysql.rds_set_external_source_gtid_purged
gespeicherte Prozedur auf Ihrer RDS for My SQL DB-Instance auf, um den Wert festzulegen.
Beispiele
Bei der Ausführung auf einer My SQL DB-Instance legt das folgende Beispiel den GTID Bereich von einem externen SQL My-Server mit der UUID 12345678-abcd-1234-efgh-123456789abc
Startposition und der 1
Endposition von fest100
. Der resultierende GTID Wert ist auf gesetzt+12345678-abcd-1234-efgh-123456789abc:1-100
.
CALL mysql.rds_set_external_source_gtid_purged('12345678-abcd-1234-efgh-123456789abc', 1, 100);
Legt fest, dass der Replikationsmodus entweder auf binären Protokolldateipositionen oder auf globalen Transaktions-Identifikatoren (GTIDs) basiert.
Syntax
CALL mysql.rds_set_master_auto_position (
auto_position_mode
);
Parameter
-
auto_position_mode
-
Ein Wert, der angibt, ob die Positionsreplikation der Protokolldatei oder die GTID basierte Replikation verwendet werden soll:
-
0
– Verwendung der auf der Binärprotokolldateiposition basierenden Replikationsmethode. Der Standardwert ist0
. -
1
— Verwenden Sie die GTID basierte Replikationsmethode.
-
Nutzungshinweise
Die Prozedur mysql.rds_set_master_auto_position
muss vom Hauptbenutzer ausgeführt werden.
Dieses Verfahren wird RDS für alle Versionen von My SQL 5.7 und RDS für My SQL 8.0.26 und höher 8.0 unterstützt.
Legt fest, dass der Replikationsmodus entweder auf binären Protokolldateipositionen oder auf globalen Transaktions-Identifikatoren () GTIDs basiert.
Syntax
CALL mysql.rds_set_source_auto_position (
auto_position_mode
);
Parameter
auto_position_mode
-
Ein Wert, der angibt, ob die Positionsreplikation der Protokolldatei oder die GTID basierte Replikation verwendet werden soll:
-
0
– Verwendung der auf der Binärprotokolldateiposition basierenden Replikationsmethode. Der Standardwert ist0
. -
1
— Verwenden Sie die GTID basierte Replikationsmethode.
-
Nutzungshinweise
Der Administrator muss das mysql.rds_set_source_auto_position
-Verfahren ausführen.
mysql.rds_set_source_delay
Legt die Mindestanzahl von Sekunden fest, in der die Replikation von der Quelldatenbankinstance auf das aktuelle Lesereplikat verzögert werden soll. Verwenden Sie diese Prozedur, wenn Sie mit einem Lesereplikat verbunden sind, um die Replikation von der zugehörigen Quelldatenbankinstance zu verzögern.
Syntax
CALL mysql.rds_set_source_delay(
delay
);
Parameter
-
delay
-
Die Mindestanzahl von Sekunden, um die Replikation von der Quelldatenbank-Instance zu verzögern.
Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).
Nutzungshinweise
Die Prozedur mysql.rds_set_source_delay
muss vom Hauptbenutzer ausgeführt werden.
Für die Notfallwiederherstellung können Sie diese Prozedur mit der gespeicherten Prozedur oder verwenden. Um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen, können Sie die Prozedur mysql.rds_set_source_delay
ausführen. Nachdem die Prozedur mysql.rds_start_replication_until
oder mysql.rds_start_replication_until_gtid
die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance).
Um das mysql.rds_rds_start_replication_until_gtid
Verfahren verwenden zu können, muss die GTID basierte Replikation aktiviert sein. Um eine bestimmte GTID basierte Transaktion zu überspringen, von der bekannt ist, dass sie zu einem Notfall führt, können Sie die gespeicherte Prozedur verwenden. Weitere Informationen zur GTID basierten Replikation finden Sie unterVerwenden der GTID basierten Replikation.
Das mysql.rds_set_source_delay
Verfahren ist in diesen Versionen von RDS for My verfügbarSQL:
-
Alles RDS für meine SQL 8.4-Versionen
-
Meine SQL 8.0.26 und höhere 8.0-Versionen
-
Alle 5.7-Versionen
Beispiele
Um die Replikation von der Quelldatenbankinstance zum aktuellen Lesereplikat um mindestens eine Stunde (3.600 Sekunden) zu verzögern, können Sie mysql.rds_set_source_delay
mit dem folgenden Parameter aufrufen:
CALL mysql.rds_set_source_delay(3600);
mysql.rds_skip_repl_error
Überspringt und löscht einen Replikationsfehler in einer My DB-Read Replica. SQL
Syntax
CALL mysql.rds_skip_repl_error;
Nutzungshinweise
Der Hauptbenutzer muss die Prozedur mysql.rds_skip_repl_error
auf einem Lesereplikat ausführen. Weitere Informationen zu dieser Prozedur finden Sie unter Aufrufen der Prozedur mysql.rds_skip_repl_error.
Führen Sie den Befehl My aus, um festzustellen, ob Fehler vorliegen. SQL SHOW REPLICA STATUS\G
Wenn ein Replikationsfehler nicht als kritisch eingestuft, ist, können Sie mysql.rds_skip_repl_error
ausführen, um den Fehler zu überspringen. Wenn mehrere Fehler aufgetreten sind, löscht mysql.rds_skip_repl_error
den ersten Fehler und weist darauf hin, dass weitere Fehlermeldungen anhängig sind. In diesem Fall können Sie mithilfe von SHOW REPLICA STATUS\G
die angemessene Vorgehensweise bei der Handhabung des nächsten Fehlers ermitteln. Informationen zu den zurückgegebenen Werten finden Sie in der SHOWREPLICASTATUSErklärung
Weitere Informationen zur Behebung von Replikationsfehlern mit Amazon RDS finden Sie unterBehebung eines My SQL Read Replica-Problems.
Fehler „Replication stopped (Replikation gestoppt)“
Wenn Sie die Prozedur mysql.rds_skip_repl_error
aufrufen, wird möglicherweise eine Fehlermeldung angezeigt, die besagt, dass das Replikat ausgefallen oder deaktiviert ist.
Diese Fehlermeldung wird angezeigt, wenn Sie die Prozedur auf der primären Instance statt auf dem Lesereplikat ausführen. Sie müssen diese Prozedur auf dem Lesereplikat ausführen, damit sie funktioniert.
Diese Fehlermeldung wird möglicherweise auch angezeigt, wenn Sie die Prozedur zwar auf dem Lesereplikat ausführen, die Replikation jedoch nicht neu gestartet werden kann.
Wenn Sie eine größere Anzahl von Fehlern überspringen müssen, kann die Dauer der Replikationsverzögerung den standardmäßigen Aufbewahrungszeitraum für binäre Protokolldateien (binlog) überschreiten. In diesem Fall kann ein schwerwiegender Fehler auftreten, da Binlogdateien gelöscht werden, bevor sie auf der Read Replica wiedergegeben wurden. Diese Bereinigung führt zur Beendigung der Replikation, und Sie können den Befehl mysql.rds_skip_repl_error
nicht mehr aufrufen, um Replikationsfehler zu überspringen und zu ignorieren.
Sie können dieses Problem verringern, indem Sie die Anzahl der Stunden erhöhen, die die Binärprotokolldateien auf Ihrer Quelldatenbankinstance aufbewahrt werden. Nachdem Sie die Aufbewahrungsdauer für binäre Protokolldateien verlängert haben, können Sie die Replikation neu starten und nach Bedarf den Befehl mysql.rds_skip_repl_error
aufrufen.
Verwenden Sie zur Festlegung der Aufbewahrungszeit für Binärprotokolldateien die Prozedur mysql.rds_set_configuration und legen Sie einen Konfigurationsparameter für 'binlog retention hours'
zusammen mit der Stundenanzahl für die Aufbewahrung der Binärprotokolldateien im DB-Cluster fest. Beim folgenden Beispiel wird die Aufbewahrungszeit für binäre Protokolle auf 48 Stunden festgelegt.
CALL mysql.rds_set_configuration('binlog retention hours', 48);
mysql.rds_start_replication
Initiiert die Replikation von einem aus.
Anmerkung
Syntax
CALL mysql.rds_start_replication;
Nutzungshinweise
Die Prozedur mysql.rds_start_replication
muss vom Hauptbenutzer ausgeführt werden.
Um Daten von einer Instance von My SQL external nach Amazon zu importierenRDS, rufen Sie die Read Replica mysql.rds_start_replication
auf, um den Replikationsprozess nach dem Aufruf zu starten oder die Replikationskonfiguration zu erstellen. Weitere Informationen finden Sie unter Wiederherstellung eines Backups in einer Amazon RDS for My SQL DB-Instance.
Um Daten in eine Instance von My SQL external to Amazon zu exportierenRDS, rufen Sie mysql.rds_start_replication
und mysql.rds_stop_replication
auf der Read Replica auf, um einige Replikationsaktionen zu steuern, z. B. das Löschen von Binärprotokollen. Weitere Informationen finden Sie unter Exportieren von Daten aus einer My SQL DB-Instance mithilfe von Replikation.
Darüber hinaus können Sie mysql.rds_start_replication
für das Lesereplikat aufrufen, um einen zuvor durch einen Aufruf von mysql.rds_stop_replication
gestoppten Replikationsprozess wieder zu starten. Weitere Informationen finden Sie unter Arbeiten mit DB-Instance-Lesereplikaten.
Initiiert die Replikation von einem und stoppt die Replikation am angegebenen Speicherort der binären Protokolldatei.
Syntax
CALL mysql.rds_start_replication_until (
replication_log_file
,replication_stop_point
);
Parameter
-
replication_log_file
-
Der Name des Binärprotokolls auf der Quelldatenbank-Instance, die die Replikationsinformationen enthält.
-
replication_stop_point
-
Die Position im
replication_log_file
-Binärprotokoll, an der die Replikation stoppt.
Nutzungshinweise
Die Prozedur mysql.rds_start_replication_until
muss vom Hauptbenutzer ausgeführt werden.
Das mysql.rds_start_replication_until
Verfahren ist in diesen Versionen von RDS for My SQL verfügbar:
-
Alles RDS für meine SQL 8.4-Versionen
-
Meine SQL 8.0.26 und höhere 8.0-Versionen
-
Alle 5.7-Versionen
Sie können diese Prozedur mit verzögerter Replikation für die Notfallwiederherstellung verwenden. Wenn Sie die verzögerte Replikation konfiguriert haben, können Sie diese Prozedur verwenden, um alle Änderungen bis zu einem Zeitpunkt unmittelbar vor Eintreten des Notfalls in einem verzögerten Lesereplikat wiederherzustellen. Nachdem diese Prozedur die Replikation gestoppt hat, können Sie das Lesereplikat zur neuen primären DB-Instance hochstufen (siehe die Anleitung unter Hochstufen eines Lesereplikats zur eigenständigen DB-Instance.
Sie können die verzögerte Replikation mit den folgenden gespeicherten Prozeduren konfigurieren:
Der für den Parameter replication_log_file
angegebene Dateiname muss mit dem Binlogdateinamen der Quelldatenbankinstance übereinstimmen.
Wenn der Parameter replication_stop_point
eine Stoppposition angibt, die in der Vergangenheit liegt, wird die Replikation sofort gestoppt.
Beispiele
Das folgende Beispiel initiiert die Replikation und repliziert die Änderungen, bis die Position 120
in der Binärprotokolldatei mysql-bin-changelog.000777
erreicht wird.
call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);
mysql.rds_stop_replication
Stoppt die Replikation von einer My SQL DB-Instance aus.
Syntax
CALL mysql.rds_stop_replication;
Nutzungshinweise
Die Prozedur mysql.rds_stop_replication
muss vom Hauptbenutzer ausgeführt werden.
Wenn Sie die Replikation so konfigurieren, dass Daten aus einer Instance von My importiert werden, die extern zu Amazon SQL läuftRDS, rufen Sie die Read Replica mysql.rds_stop_replication
auf, um den Replikationsvorgang nach Abschluss des Imports zu beenden. Weitere Informationen finden Sie unter Wiederherstellung eines Backups in einer Amazon RDS for My SQL DB-Instance.
Wenn Sie die Replikation so konfigurieren, dass Daten in eine Instance von My SQL external to Amazon exportiert werdenRDS, rufen Sie mysql.rds_start_replication
und mysql.rds_stop_replication
auf der Read Replica auf, um einige Replikationsaktionen zu steuern, z. B. das Löschen von Binärprotokollen. Weitere Informationen finden Sie unter Exportieren von Daten aus einer My SQL DB-Instance mithilfe von Replikation.
Sie können es auch verwendenmysql.rds_stop_replication
, um die Replikation zwischen zwei RDS Amazon-DB-Instances zu beenden. In der Regel wird eine Replikation gestoppt, um eine länger dauernde Operation im Lesereplikat – zum Beispiel das Erstellen eines umfangreichen Indexes – durchzuführen. Ein gestoppter Replikationsvorgang kann durch Aufruf von mysql.rds_start_replication für das Lesereplikat wieder gestartet werden. Weitere Informationen finden Sie unter Arbeiten mit DB-Instance-Lesereplikaten.