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);