Verwaltung der Replikation mehrerer Quellen - 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.

Verwaltung der Replikation mehrerer Quellen

Mit den folgenden gespeicherten Prozeduren werden Replikationskanäle auf einem SQL Multiquellen-Replikat RDS für My eingerichtet und verwaltet. Weitere Informationen finden Sie unter Konfiguration multi-source-replication für RDS for MySQL.

Diese gespeicherten Prozeduren sind nur RDS für My SQL DB-Instances verfügbar, auf denen die folgenden Engine-Versionen ausgeführt werden:

  • Nebenversionen 8.0.35 und höher

  • Nebenversionen 5.7.44 und höher

Anmerkung

Obwohl sich diese Dokumentation auf Quell-DB-Instances wie RDS auf My SQL DB-Instances bezieht, funktionieren diese Verfahren auch für My SQL Instances, die außerhalb von Amazon ausgeführt RDS werden.

mysql.rds_next_source_log_for_channel

Ändert die Protokollposition der Quell-DB-Instance auf den Anfang des nächsten Binärprotokolls auf der Quell-DB-Instance für den Kanal. Verwenden Sie dieses Verfahren nur, wenn Sie den Replikations-I/O-Fehler 1236 auf einem Replikat mit mehreren Quellen erhalten.

Syntax

CALL mysql.rds_next_source_log_for_channel( curr_master_log, channel_name );

Parameter

curr_master_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 Befehl SHOW REPLICA STATUS FOR CHANNEL 'channel_name' aus. Sie finden den Namen anschließend im Feld Source_Log_File.

Anmerkung

Frühere Versionen von My SQL wurden anstelle von verwendetSHOW SLAVE STATUS. SHOW REPLICA STATUS Wenn Sie eine SQL Version von My vor 8.0.23 verwenden, verwenden Sie. SHOW SLAVE STATUS

channel_name

Der Name des Replikationskanals auf dem Multiquellen-Replikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_next_source_log_for_channel muss vom Hauptbenutzer ausgeführt werden. Wenn beispielsweise ein IO_Thread-Fehler auftritt, können Sie dieses Verfahren verwenden, um alle Ereignisse in der aktuellen Binärprotokolldatei zu überspringen und die Replikation mit der nächsten binären Protokolldatei für den in angegebenen Kanal fortzusetzen. channel_name

Beispiel

Gehen Sie davon aus, dass die Replikation auf einem Kanal auf einem Replikat mit mehreren Quellen fehlschlägt. Die Ausführung SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G auf dem Multiquellen-Replikat gibt das folgende Ergebnis zurück:

mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: ReplicationUser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: replica-relay-bin.000003 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB:. . . 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: . . Channel_name: channel_1 . . -- Some fields are omitted in this example output

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. Um den Fehler zu beheben, können Sie mysql.rds_next_source_log_for_channel mit den folgenden Parametern aufrufen:

CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
Anmerkung

Frühere Versionen von My SQL verwendeten SHOW SLAVE STATUS stattSHOW REPLICA STATUS. Wenn Sie eine SQL Version von My vor 8.0.23 verwenden, verwenden Sie. SHOW SLAVE STATUS

mysql.rds_reset_external_source_for_channel

Stoppt den Replikationsvorgang auf dem angegebenen Kanal und entfernt den Kanal und die zugehörigen Konfigurationen aus dem Multiquellenreplikat.

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_for_channel (channel_name);

Parameter

channel_name

Der Name des Replikationskanals auf dem Multiquellenreplikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_reset_external_source_for_channel muss vom Hauptbenutzer ausgeführt werden. Bei diesem Verfahren werden alle Relay-Logs gelöscht, die zu dem zu entfernenden Kanal gehören.

mysql.rds_set_external_source_for_channel

Konfiguriert einen Replikationskanal auf einer RDS for My SQL DB-Instance, um die Daten von einer anderen RDS für My DB-Instance zu replizieren. SQL

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 stattdessen die mysql.rds_set_external_source_with_delay_for_channel gespeicherte Prozedur verwenden, um diesen Kanal mit verzögerter Replikation zu konfigurieren.

Syntax

CALL mysql.rds_set_external_source_for_channel ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption , channel_name );

Parameter

host_name

Der Hostname oder die IP-Adresse der RDS für Meine SQL Quell-DB-Instance.

host_port

Der von der RDS for My SQL Source DB-Instance verwendete Port. Wenn Ihre Netzwerkkonfiguration die 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 und REPLICATION SLAVE Berechtigungen RDS für die „Meine SQL Quell-DB-Instance“. Wir empfehlen, dass Sie ein Konto angeben, das ausschließlich für die Replikation mit der Quell-DB-Instance verwendet 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 Quell-DB-Instance, das 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 sie SHOW MASTER STATUS auf der Quell-DB-Instance ausführen.

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.

channel_name

Der Name des Replikationskanals. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_set_external_source_for_channel muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf dem Ziel RDS für My SQL DB-Instance ausgeführt werden, auf dem Sie den Replikationskanal erstellen.

Konfigurieren Sie vor der Ausführung mysql.rds_set_external_source_for_channel einen Replikationsbenutzer auf der Quell-DB-Instance mit den für das Multisource-Replikat erforderlichen Rechten. Um das Multisource-Replikat mit der Quell-DB-Instance zu verbinden, müssen Sie die replication_user_password Werte replication_user_name und Werte eines Replikationsbenutzers angeben, der über REPLICATION SLAVE Berechtigungen für die Quell-DB-Instance verfügtREPLICATION CLIENT.

Um einen Replikationsbenutzer auf der Quell-DB-Instance zu konfigurieren
  1. Stellen Sie mit dem My SQL Client Ihrer Wahl eine Verbindung zur Quell-DB-Instance her und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.

    Wichtig

    Aus Sicherheitsgründen sollten Sie ein anderes Passwort als den in den folgenden Beispielen gezeigten Platzhalterwert angeben.

    Mein 8.0 SQL

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    Mein SQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. REPLICATION CLIENTErteilen Sie Ihrem Replikationsbenutzer auf der Quell-DB-Instance REPLICATION SLAVE Rechte. Im folgenden Beispiel werden dem Benutzer 'repl_user' für Ihre Domäne die Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE für alle Datenbanken erteilt.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';

Um die verschlüsselte Replikation zu verwenden, konfigurieren Sie die Quell-DB-Instance für die Verwendung von SSL Verbindungen.

Nach dem Aufruf mysql.rds_set_external_source_for_channel zur Konfiguration dieses Replikationskanals können Sie das Replikat aufrufenmysql.rds_start_replication_for_channel, um den Replikationsprozess auf dem Kanal zu starten. Sie können aufrufenmysql.rds_reset_external_source_for_channel, um die Replikation auf dem Kanal zu beenden und die Kanalkonfiguration aus dem Replikat zu entfernen.

Wenn Sie anrufenmysql.rds_set_external_source_for_channel, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set channel source in der mysql.rds_history Tabelle ohne kanalspezifische Details und in der mysql.rds_replication_status Tabelle mit dem Kanalnamen auf. Diese Informationen werden nur für interne Zwecke und zu Überwachungszwecken aufgezeichnet. Um den gesamten Verfahrensaufruf zu Prüfungszwecken aufzuzeichnen, sollten Sie je nach den spezifischen Anforderungen Ihrer Anwendung die Aktivierung von Auditprotokollen oder allgemeinen Protokollen in Betracht ziehen.

Beispiele

Bei der Ausführung auf einer RDS for My SQL DB-Instance konfiguriert das folgende Beispiel einen Replikationskanal, der nach dieser DB-Instance benannt channel_1 ist, so, dass Daten aus der durch Host sourcedb.example.com und Port angegebenen Quelle repliziert werden. 3306

call mysql.rds_set_external_source_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.0777', 120, 0, 'channel_1');

mysql.rds_set_external_source_with_auto_position_for_channel

Konfiguriert einen Replikationskanal auf einer RDS for My SQL DB-Instance mit einer optionalen Replikationsverzögerung. Die Replikation basiert auf globalen Transaktions-Identifikatoren ()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_for_channel ( host_name , host_port , replication_user_name , replication_user_password , ssl_encryption , delay , channel_name );

Parameter

host_name

Der Hostname oder die IP-Adresse der RDS für Meine SQL Quell-DB-Instance.

host_port

Der von der RDS for My SQL Source DB-Instance verwendete Port. Wenn Ihre Netzwerkkonfiguration die 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 und REPLICATION SLAVE Berechtigungen RDS für die „Meine SQL Quell-DB-Instance“. Wir empfehlen, dass Sie ein Konto angeben, das ausschließlich für die Replikation mit der Quell-DB-Instance verwendet 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 Quell-DB-Instance aus zu verzögern.

Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).

channel_name

Der Name des Replikationskanals. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_set_external_source_with_auto_position_for_channel muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf dem Ziel RDS für My SQL DB-Instance ausgeführt werden, auf dem Sie den Replikationskanal erstellen.

Konfigurieren Sie vor der Ausführung rds_set_external_source_with_auto_position_for_channel einen Replikationsbenutzer auf der Quell-DB-Instance mit den für das Multisource-Replikat erforderlichen Rechten. Um das Multisource-Replikat mit der Quell-DB-Instance zu verbinden, müssen Sie die replication_user_password Werte replication_user_name und Werte eines Replikationsbenutzers angeben, der über REPLICATION SLAVE Berechtigungen für die Quell-DB-Instance verfügtREPLICATION CLIENT.

Um einen Replikationsbenutzer auf der Quell-DB-Instance zu konfigurieren
  1. Stellen Sie mit dem My SQL Client Ihrer Wahl eine Verbindung zur Quell-DB-Instance her und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.

    Wichtig

    Aus Sicherheitsgründen sollten Sie ein anderes Passwort als den in den folgenden Beispielen gezeigten Platzhalterwert angeben.

    Mein 8.0 SQL

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    Mein SQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. REPLICATION CLIENTErteilen Sie Ihrem Replikationsbenutzer auf der Quell-DB-Instance REPLICATION SLAVE Rechte. Im folgenden Beispiel werden dem Benutzer 'repl_user' für Ihre Domäne die Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE für alle Datenbanken erteilt.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';

Um die verschlüsselte Replikation zu verwenden, konfigurieren Sie die Quell-DB-Instance für die Verwendung von SSL Verbindungen.

Stellen Sie vor dem Aufruf sichermysql.rds_set_external_source_with_auto_position_for_channel, 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 zu setzen.

Nachdem Sie aufgerufen habenmysql.rds_set_external_source_with_auto_position_for_channel, um eine RDS Amazon-DB-Instance als Read Replica auf einem bestimmten Channel zu konfigurieren, können Sie die Read Replica aufrufenmysql.rds_start_replication_for_channel, um den Replikationsprozess auf diesem Kanal zu starten.

Nach einem Aufruf mysql.rds_set_external_source_with_auto_position_for_channel zur Konfiguration dieses Replikationskanals können Sie das Replikat aufrufenmysql.rds_start_replication_for_channel, um den Replikationsprozess auf dem Kanal zu starten. Sie können aufrufenmysql.rds_reset_external_source_for_channel, um die Replikation auf dem Kanal zu beenden und die Kanalkonfiguration aus dem Replikat zu entfernen.

Beispiele

Bei der Ausführung auf einer RDS for My SQL DB-Instance konfiguriert das folgende Beispiel einen Replikationskanal, der nach dieser DB-Instance benannt channel_1 ist, so, dass er Daten aus der durch Host sourcedb.example.com und Port angegebenen Quelle repliziert. Die minimale Replikationsverzögerung 3306 wird auf eine Stunde (3.600 Sekunden) festgelegt. Das bedeutet, dass eine Änderung gegenüber der Quelle RDS für Meine SQL DB-Instance mindestens eine Stunde lang nicht auf das Multiquellen-Replikat angewendet wird.

call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 0, 3600, 'channel_1');

mysql.rds_set_external_source_with_delay_for_channel

Konfiguriert einen Replikationskanal auf einer RDS for My SQL DB-Instance mit einer bestimmten Replikationsverzögerung.

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_for_channel ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption , delay , channel_name );

Parameter

host_name

Der Hostname oder die IP-Adresse der RDS für Meine SQL Quell-DB-Instance.

host_port

Der von der RDS for My SQL Source DB-Instance verwendete Port. Wenn Ihre Netzwerkkonfiguration die 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 und REPLICATION SLAVE Berechtigungen RDS für die „Meine SQL Quell-DB-Instance“. Wir empfehlen, dass Sie ein Konto angeben, das ausschließlich für die Replikation mit der Quell-DB-Instance verwendet 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 Quell-DB-Instance enthält die Replikationsinformationen.

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 Quell-DB-Instance aus zu verzögern.

Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).

channel_name

Der Name des Replikationskanals. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_set_external_source_with_delay_for_channel muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren muss auf dem Ziel RDS für My SQL DB-Instance ausgeführt werden, auf dem Sie den Replikationskanal erstellen.

Konfigurieren Sie vor der Ausführung mysql.rds_set_external_source_with_delay_for_channel einen Replikationsbenutzer auf der Quell-DB-Instance mit den für das Multisource-Replikat erforderlichen Rechten. Um das Multisource-Replikat mit der Quell-DB-Instance zu verbinden, müssen Sie die replication_user_password Werte replication_user_name und Werte eines Replikationsbenutzers angeben, der über REPLICATION SLAVE Berechtigungen für die Quell-DB-Instance verfügtREPLICATION CLIENT.

Um einen Replikationsbenutzer auf der Quell-DB-Instance zu konfigurieren
  1. Stellen Sie mit dem My SQL Client Ihrer Wahl eine Verbindung zur Quell-DB-Instance her und erstellen Sie ein Benutzerkonto, das für die Replikation verwendet werden soll. Im Folgenden wird ein Beispiel gezeigt.

    Wichtig

    Aus Sicherheitsgründen sollten Sie ein anderes Passwort als den in den folgenden Beispielen gezeigten Platzhalterwert angeben.

    Mein 8.0 SQL

    CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY 'password';

    Mein SQL 5.7

    CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
  2. REPLICATION CLIENTErteilen Sie Ihrem Replikationsbenutzer auf der Quell-DB-Instance REPLICATION SLAVE Rechte. Im folgenden Beispiel werden dem Benutzer 'repl_user' für Ihre Domäne die Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE für alle Datenbanken erteilt.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';

Um die verschlüsselte Replikation zu verwenden, konfigurieren Sie die Quell-DB-Instance für die Verwendung von SSL Verbindungen.

Nach dem Aufruf mysql.rds_set_external_source_with_delay_for_channel zur Konfiguration dieses Replikationskanals können Sie das Replikat aufrufenmysql.rds_start_replication_for_channel, um den Replikationsprozess auf dem Kanal zu starten. Sie können aufrufenmysql.rds_reset_external_source_for_channel, um die Replikation auf dem Kanal zu beenden und die Kanalkonfiguration aus dem Replikat zu entfernen.

Wenn Sie anrufenmysql.rds_set_external_source_with_delay_for_channel, RDS zeichnet Amazon die Uhrzeit, den Benutzer und eine Aktion von set channel source in der mysql.rds_history Tabelle ohne kanalspezifische Details und in der mysql.rds_replication_status Tabelle mit dem Kanalnamen auf. Diese Informationen werden nur für interne Zwecke und zu Überwachungszwecken aufgezeichnet. Um den gesamten Verfahrensaufruf zu Prüfungszwecken aufzuzeichnen, sollten Sie je nach den spezifischen Anforderungen Ihrer Anwendung die Aktivierung von Auditprotokollen oder allgemeinen Protokollen in Betracht ziehen.

Beispiele

Bei der Ausführung auf einer RDS For My SQL DB-Instance konfiguriert das folgende Beispiel einen Replikationskanal, der channel_1 auf dieser DB-Instance benannt ist, so, dass Daten aus der durch Host sourcedb.example.com und Port angegebenen Quelle repliziert werden. Die minimale Replikationsverzögerung 3306 wird auf eine Stunde (3.600 Sekunden) festgelegt. Das bedeutet, dass eine Änderung gegenüber der Quelle RDS für Meine SQL DB-Instance mindestens eine Stunde lang nicht auf das Multiquellen-Replikat angewendet wird.

call mysql.rds_set_external_source_with_delay_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000777', 120, 0, 3600, 'channel_1');

mysql.rds_set_source_auto_position_for_channel

Legt fest, dass der Replikationsmodus für den angegebenen Kanal entweder auf den Positionen der binären Protokolldateien oder auf globalen Transaktions-Identifikatoren (GTIDs) basiert.

Syntax

CALL mysql.rds_set_source_auto_position_for_channel ( auto_position_mode , channel_name );

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 ist 0.

  • 1— Verwenden Sie die GTID basierte Replikationsmethode.

channel_name

Der Name des Replikationskanals auf dem Multiquellenreplikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_set_source_auto_position_for_channel muss vom Hauptbenutzer ausgeführt werden. Dieses Verfahren startet die Replikation auf dem angegebenen Kanal neu, um den angegebenen Modus für die auto Positionierung anzuwenden.

Beispiele

Im folgenden Beispiel wird der auto Positionierungsmodus für channel_1 so eingestellt, dass er die GTID basierte Replikationsmethode verwendet.

call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');

mysql.rds_set_source_delay_for_channel

Legt die Mindestanzahl von Sekunden fest, um die Replikation von der Quelldatenbank-Instance zum Multiquellen-Replikat für den angegebenen Kanal zu verzögern.

Syntax

CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);

Parameter

delay

Die Mindestanzahl von Sekunden, um die Replikation von der Quell-DB-Instance aus zu verzögern.

Die Obergrenze für diesen Parameter beträgt einen Tag (86 400 Sekunden).

channel_name

Der Name des Replikationskanals auf dem Multiquellen-Replikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_set_source_delay_for_channel muss vom Hauptbenutzer ausgeführt werden. Um dieses Verfahren zu verwenden, rufen Sie zuerst auf, mysql.rds_stop_replication_for_channel um die Replikation zu beenden. Rufen Sie dann diese Prozedur auf, um den Wert für die Replikationsverzögerung festzulegen. Wenn die Verzögerung festgelegt ist, rufen Sie auf, mysql.rds_start_replication_for_channel um die Replikation neu zu starten.

Beispiele

Im folgenden Beispiel wird die Verzögerung für die Replikation von der Quelldatenbank-Instance auf dem channel_1 Multiquellen-Replikat auf mindestens eine Stunde (3.600 Sekunden) festgelegt.

CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');

mysql.rds_skip_repl_error_for_channel

Überspringt ein binäres Protokollereignis und löscht einen Replikationsfehler auf einem My SQL DB-Replikat mit mehreren Quellen für den angegebenen Kanal.

Syntax

CALL mysql.rds_skip_repl_error_for_channel(channel_name);

Parameter

channel_name

Der Name des Replikationskanals auf dem Multiquellenreplikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Der Hauptbenutzer muss die Prozedur mysql.rds_skip_repl_error_for_channel auf einem Lesereplikat ausführen. Sie können dieses Verfahren auf ähnliche Weise mysql.rds_skip_repl_error verwenden, um einen Fehler in einer Read Replica zu überspringen. Weitere Informationen finden Sie unter Aufrufen der Prozedur mysql.rds_skip_repl_error.

Anmerkung

Um Fehler bei der GTID basierten Replikation zu überspringen, empfehlen wir, stattdessen das Verfahren zu verwenden.

Führen Sie den SQL SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G Befehl My aus, um festzustellen, ob Fehler vorliegen. Wenn ein Replikationsfehler nicht als kritisch eingestuft, ist, können Sie mysql.rds_skip_repl_error_for_channel ausführen, um den Fehler zu überspringen. Wenn mehrere Fehler vorliegen, mysql.rds_skip_repl_error_for_channel löscht der erste Fehler auf dem angegebenen Replikationskanal und warnt dann, dass weitere Fehler vorhanden sind. In diesem Fall können Sie mithilfe von SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G die angemessene Vorgehensweise bei der Handhabung des nächsten Fehlers ermitteln. Informationen zu den zurückgegebenen Werten finden Sie in der SHOWREPLICASTATUSErklärung unter Meine SQL Dokumentation.

mysql.rds_start_replication_for_channel

Initiiert die Replikation von einer RDS For My SQL DB-Instance zu einem Multisource-Replikat auf dem angegebenen Kanal.

Anmerkung

Sie können die mysql.rds_start_replication_until_gtid_for_channel gespeicherte Prozedur mysql.rds_start_replication_until_for_channel oder verwenden, um die Replikation von einer RDS for My SQL DB-Instance aus zu initiieren und die Replikation am angegebenen Speicherort der Binärprotokolldatei zu beenden.

Syntax

CALL mysql.rds_start_replication_for_channel(channel_name);

Parameter

channel_name

Der Name des Replikationskanals auf dem Multiquellenreplikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_start_replication_for_channel muss vom Hauptbenutzer ausgeführt werden. Nachdem Sie die Daten aus der Quelle RDS für Meine SQL DB-Instance importiert haben, führen Sie diesen Befehl für das Multiquellen-Replikat aus, um die Replikation auf dem angegebenen Kanal zu starten.

Beispiele

Im folgenden Beispiel wird die Replikation auf dem channel_1 Multiquellen-Replikat gestartet.

CALL mysql.rds_start_replication_for_channel('channel_1');

mysql.rds_start_replication_until_for_channel

Initiiert die Replikation von einer RDS for My SQL DB-Instance auf dem angegebenen Kanal und stoppt die Replikation am angegebenen Speicherort der binären Protokolldatei.

Syntax

CALL mysql.rds_start_replication_until_for_channel ( replication_log_file , replication_stop_point , channel_name );

Parameter

replication_log_file

Der Name des Binärprotokolls auf der Quell-DB-Instance enthält die Replikationsinformationen.

replication_stop_point

Die Position im replication_log_file-Binärprotokoll, an der die Replikation stoppt.

channel_name

Der Name des Replikationskanals auf dem Multiquellen-Replikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_start_replication_until_for_channel muss vom Hauptbenutzer ausgeführt werden. Bei diesem Verfahren wird die Replikation gestartet und dann beendet, wenn die angegebene Position der Binlogdatei erreicht ist. Bei Version 8.0 stoppt das Verfahren nur dieSQL_Thread. Bei Version 5.7 stoppt das Verfahren sowohl die als SQL_Thread auch dieIO_Thread.

Der für den replication_log_file Parameter angegebene Dateiname muss mit dem Binlog-Dateinamen der Quell-DB-Instance übereinstimmen.

Wenn der replication_stop_point Parameter einen Stopp angibt, der in der Vergangenheit liegt, wird die Replikation sofort gestoppt.

Beispiele

Das folgende Beispiel initiiert die Replikation am und repliziert die Änderungenchannel_1, bis sie den Speicherort 120 in der mysql-bin-changelog.000777 Binärprotokolldatei erreichen.

call mysql.rds_start_replication_until_for_channel( 'mysql-bin-changelog.000777', 120, 'channel_1' );

mysql.rds_start_replication_until_gtid_for_channel

Initiiert die Replikation auf dem angegebenen Kanal von einer RDS for My SQL DB-Instance aus und stoppt die Replikation an der angegebenen globalen Transaktions-ID ()GTID.

Syntax

CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);

Parameter

gtid

GTIDDanach soll die Replikation beendet werden.

channel_name

Der Name des Replikationskanals auf dem Multiquellenreplikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_start_replication_until_gtid_for_channel muss vom Hauptbenutzer ausgeführt werden. Das Verfahren startet die Replikation auf dem angegebenen Kanal und wendet alle Änderungen bis zum angegebenen GTID Wert an. Anschließend wird die Replikation auf dem Kanal beendet.

Wenn der Parameter gtid eine Transaktion angibt, die bereits von dem Replikat ausgeführt wurde, wird die Replikation sofort gestoppt.

Bevor Sie dieses Verfahren ausführen, müssen Sie die Multithread-Replikation deaktivieren, indem Sie den Wert replica_parallel_workers oder slave_parallel_workers auf 0 setzen.

Beispiele

Im folgenden Beispiel wird die Replikation am initiiert und die Änderungen repliziertchannel_1, bis der Wert erreicht ist. GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23

call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');

mysql.rds_stop_replication_for_channel

Stoppt die Replikation von einer My SQL DB-Instance auf dem angegebenen Kanal.

Syntax

CALL mysql.rds_stop_replication_for_channel(channel_name);

Parameter

channel_name

Der Name des Replikationskanals auf dem Multiquellen-Replikat. Jeder Replikationskanal empfängt die binären Protokollereignisse von einer einzigen Quelle RDS für My SQL DB-Instance, die auf einem bestimmten Host und Port ausgeführt wird.

Nutzungshinweise

Die Prozedur mysql.rds_stop_replication_for_channel muss vom Hauptbenutzer ausgeführt werden.

Beispiele

Im folgenden Beispiel wird die Replikation channel_1 eines Replikats mit mehreren Quellen beendet.

CALL mysql.rds_stop_replication_for_channel('channel_1');