mysql.rds_set_external_master_gtid - Amazon Relational Database Service

mysql.rds_set_external_master_gtid

Konfiguriert die GTID-basierte Replikation einer MariaDB-Instance, die außerhalb von Amazon RDS ausgeführt wird, zu einer Amazon RDS-MariaDB-DB-Instance. Diese gespeicherte Prozedur wird nur unterstützt, wenn die externe MariaDB-Instance Version 10.0.24 oder höher ist. Wenn Sie die Replikation einrichten, bei der eine oder beide Instances keine globalen Transaktionskennungen (GTIDs) von MariaDB unterstützen, verwenden Sie mysql.rds_set_external_master.

Durch die Verwendung von GTIDs für die Replikation werden Absturzsicherheitsfunktionen bereitgestellt, die von der binären Protokollreplikation nicht angeboten werden. Daher empfehlen wir es in den Fällen, in denen die Replikations-Instances dies unterstützen.

Syntax

CALL mysql.rds_set_external_master_gtid( host_name , host_port , replication_user_name , replication_user_password , gtid , ssl_encryption );

Parameter

host_name

Zeichenfolge. Der Hostname bzw. die IP-Adresse der außerhalb von Amazon RDS ausgeführten MariaDB-Instance, die als Quell-Instance festgelegt werden soll.

host_port

Ganzzahl. Der Port, der von der außerhalb von Amazon RDS ausgeführten MariaDB-Instance verwendet wird, die als Quell-Instance konfiguriert werden soll. Wenn Ihre Netzwerkkonfiguration die Replikation von SSH-Ports einschließt, welche die Portnummer konvertiert, geben Sie für diesen Parameter die von SSH offengelegte Portnummer an.

replication_user_name

Zeichenfolge. Die Kennung eines Benutzers mit REPLICATION SLAVE-Berechtigungen in der MariaDB-DB-Instance, die als Lesereplikat konfiguriert werden soll.

replication_user_password

Zeichenfolge. Das zu der für den Parameter replication_user_name angegebenen Benutzer-Kennung gehörige Passwort.

gtid

Zeichenfolge. Die globale Transaktionskennung für die Quell-Instance, von der aus die Replikation gestartet werden soll.

Sie können @@gtid_current_pos verwenden, um die aktuelle GTID zu erhalten, wenn die Quell-Instance gesperrt wurde, während Sie die Replikation konfigurieren. Das Binärprotokoll ändert sich also nicht zwischen den Punkten, wenn Sie die GTID erhalten und wenn die Replikation startet.

Andernfalls können Sie, wenn Sie mysqldump-Version 10.0.13 oder neuer für das Befüllen der Replikat-Instance vor der Replikation verwenden, die GTID-Position in der Ausgabe erhalten, indem Sie die Optionen --master-data oder --dump-slave verwenden. Wenn Sie mysqldump-Version 10.0.13 oder neuer verwenden, können Sie SHOW MASTER STATUS ausführen oder dieselben mysqldump-Optionen verwenden, um den Namen und die Position der Binärprotokolldatei zu erhalten und diese anschließend in eine GTID konvertieren, indem Sie BINLOG_GTID_POS auf der externen MariaDB-Instance ausführen:

SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);

Weitere Informationen über die Implementierung von GTIDs in MariaDB finden Sie unter Global Transaction ID in der MariaDB-Dokumentation.

ssl_encryption

Ein Wert, der angibt, ob die SSL-Verschlüsselung (Secure Socket Layer) für die Replikationsverbindung verwendet wird. 1 = SSL-Verschlüsselung, 0 = keine Verschlüsselung. 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_gtid muss vom Hauptbenutzer ausgeführt werden. Sie muss auf der MariaDB-DB-Instance ausgeführt werden, die Sie als Replikat einer MariaDB-Instance konfigurieren, die extern zu Amazon RDS ausgeführt wird. Bevor Sie mysql.rds_set_external_master_gtid ausführen, müssen Sie die Instance von MariaDB, die außerhalb von Amazon RDS ausgeführt wird, als Quell-Instance konfiguriert haben. Weitere Informationen finden Sie unter Importieren von Daten in eine MariaDB-DB-Instance.

Warnung

Verwenden Sie nicht mysql.rds_set_external_master_gtid, um Replikation zwischen zwei Amazon RDS-DB-Instances zu verwalten. Verwenden Sie diese Option nur, wenn Sie mit einer MariaDB-Instance replizieren, die extern zu RDS ausgeführt wird. Informationen zur Verwaltung der Replikation zwischen Amazon RDS-DB-Instances finden Sie unter Arbeiten mit Lesereplikaten.

Nachdem Sie mysql.rds_set_external_master_gtid aufgerufen haben, um eine Amazon RDS-DB-Instance zum Verwenden als Lesereplikat zu konfigurieren, starten Sie durch Aufrufen von mysql.rds_start_replication den Replikationsvorgang für das Replikat. Zudem haben Sie die Möglichkeit, mit einem Aufruf von mysql.rds_reset_external_master die Lesereplikat-Konfiguration zu entfernen.

Beim Aufrufen von mysql.rds_set_external_master_gtid werden Uhrzeit, Benutzer und eine „set master“-Aktion von Amazon RDS in den Tabellen mysql.rds_history und mysql.rds_replication_status protokolliert.

Beispiele

Bei der Ausführung auf einer MariaDB-DB-Instance wird das folgende Beispiel als Replikat einer Instance von MariaDB konfiguriert, die extern zu Amazon RDS ausgeführt wird.

call mysql.rds_set_external_master_gtid ('Sourcedb.some.com',3306,'ReplicationUser','SomePassW0rd','0-123-456',0);