メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

mysql.rds_set_external_master_gtid

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

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

構文

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

Parameters

host_name

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

host_port

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

replication_user_name

文字列。 リードレプリカとして設定される MariaDB インスタンスでの 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 に変換します。

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

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

ssl_encryption

整数. このオプションは、現在実装されていません。 デフォルトは 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 インスタンス間でのレプリケーションの管理の詳細については、「PostgreSQL、MySQL、および MariaDB リードレプリカの使用」を参照してください。

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 のインスタンスのレプリケーションスレーブとして設定します。

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

関連トピック