mysql.rds_set_external_master_gtid - Amazon Relational Database Service

mysql.rds_set_external_master_gtid

Amazon RDS 外部で動作する MariaDB インスタンスから MariaDB DB インスタンスに対して、GTID ベースのレプリケーションを設定します。このストアドプロシージャは、外部の MariaDB インスタンスのバージョンが 10.0.24 以降である場合のみサポートされます。1 つまたは両方のインスタンスが MariaDB のグローバルトランザクション識別子 (GTID) をサポートしていない場合にレプリケーションを設定する際は、「mysql.rds_set_external_master」を使用します。

レプリケーションで GTID を使用すると、クラッシュのリスクがない安全性機能が実現されます。これはバイナリログのレプリケーションでは提供されません。したがって、レプリケーションのインスタンスがサポートしている場合は、GTID の使用を推奨します。

構文

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

パラメータ

host_name

文字列。Amazon RDS の外部で動作する MariaDB インスタンス (ソースインスタンス) のホスト名または IP アドレス。

host_port

整数. Amazon RDS の外部で動作する MariaDB インスタンス (ソースインスタンス) で使用されるポート。ポート番号を変換する SSH ポートのレプリケーションがネットワーク設定に含まれる場合、SSH によって公開されるポート番号を指定します。

replication_user_name

文字列。リードレプリカとして設定される MariaDB DB インスタンスでの REPLICATION SLAVE アクセス許可を持つユーザーの ID。

replication_user_password

文字列。replication_user_name で指定されたユーザー ID のパスワード。

gtid

文字列。レプリケーションが開始されるソースインスタンスのグローバルトランザクション ID。

レプリケーションの設定中にソースインスタンスがロックされている場合は、@@gtid_current_pos を使用して現在の GTID を入手できます。したがって、GTID の取得時とレプリケーションの開始時点の間では、バイナリログは変更されません。

それ以外の場合、mysqldump のバージョン 10.0.13 以降を使用しているか、レプリケーションを開始する前にレプリカインスタンスを入力している場合は、--master-data オプションまたは --dump-slave オプションを使用して、出力の GTID の場所を取得できます。mysqldump のバージョン 10.0.13 以降を使用していない場合は、SHOW MASTER STATUS を実行するか、または同じ mysqldump オプションを使用してバイナリログファイル名と場所を取得できます。次に外部 MariaDB インスタンスで BINLOG_GTID_POS を実行して、それを GTID に変換します。

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

GTID の MariaDB 実装の詳細については、MariaDB ドキュメントの「グローバルトランザクション ID」を参照してください。

ssl_encryption

レプリケーション接続で Secure Socket Layer (SSL) 暗号化を使用するかどうかを指定する値。1 は SSL 暗号化を使用することを指定し、0 は暗号化を使用しないことを指定します。デフォルトは 0 です。

注記

MASTER_SSL_VERIFY_SERVER_CERT オプションはサポートされていません。このオプションは 0 に設定されます。つまり、接続は暗号化されますが、証明書は検証されません。

使用に関する注意事項

mysql.rds_set_external_master_gtid プロシージャは、マスターユーザーが実行してください。Amazon RDS の外部で動作する MariaDB インスタンスのレプリカとして設定される、MariaDB DB インスタンスで実行する必要があります。mysql.rds_set_external_master_gtid を実行する前に、Amazon RDS の外部で動作する MariaDB インスタンスをソースインスタンスとして必ず設定してください。詳細については、「MariaDB DB インスタンスへのデータのインポート」を参照してください。

警告

2 つの Amazon RDS DB インスタンス間でレプリケーションを管理するために mysql.rds_set_external_master_gtid を使用しないでください。このストアドプロシージャは、RDS の外部で動作する 1 つの MariaDB インスタンスでレプリケーションする場合にのみ使用します。Amazon RDS DB インスタンス間でのレプリケーションの管理の詳細については、「DB インスタンスのリードレプリカの操作」を参照してください。

mysql.rds_set_external_master_gtid を呼び出し、Amazon RDS DB インスタンスをリードレプリカとして設定した後で、レプリカで mysql.rds_start_replication を呼び出してレプリケーションプロセスを開始できます。mysql.rds_reset_external_master を呼び出して、リードレプリカの設定を削除することもできます。

mysql.rds_set_external_master_gtid が呼び出されると、Amazon RDS では、時刻、ユーザー、"マスターの設定" アクションが mysql.rds_history テーブルと mysql.rds_replication_status テーブルに記録されます。

MariaDB DB インスタンスで動作させる場合は、次の例にあるように、Amazon RDS の外部で動作する MariaDB のインスタンスのレプリカとして設定します。

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