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

mysql.rds_set_external_master

MySQL DB インスタンスを、Amazon RDS の外部で動作する MySQL インスタンスのリードレプリカとして設定します。

注記

外部マスターおよび遅延レプリケーションを設定するには、mysql.rds_set_external_master_with_delay ストアドプロシージャを使用できます。

構文

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

Parameters

host_name

レプリケーションマスターとなる、Amazon RDS の外部で動作する MySQL インスタンスのホスト名または IP アドレス。

host_port

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

replication_user_name

Amazon RDS の外部で実行される MySQL インスタンスの REPLICATION CLIENT および REPLICATION SLAVE アクセス権限を持つユーザーの ID。外部インスタンスのレプリケーション専用のアカウントを使用することをお勧めします。

replication_user_password

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

mysql_binary_log_file_name

レプリケーション情報が含まれるレプリケーションマスター上のバイナリログの名前。

mysql_binary_log_file_location

mysql_binary_log_file_name バイナリログ内の場所。レプリケーションでは、この場所からレプリケーション情報の読み取りを開始します。

ssl_encryption

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

注記

このパラメータは現在、MySQL と互換性がある Amazon Aurora でのみ実装されています。MySQL DB インスタンスでは、デフォルトのみが許可されます。

使用に関する注意事項

mysql.rds_set_external_master プロシージャは、マスターユーザーが実行してください。また、このストアドプロシージャは、Amazon RDS の外部で動作する MySQL インスタンスのリードレプリカとして設定される MySQL DB インスタンス上で実行する必要があります。

mysql.rds_set_external_master を実行する前に、Amazon RDS の外部で動作する MySQL インスタンスをレプリケーションマスターとして必ず設定してください。Amazon RDS の外部で動作する MySQL インスタンスに接続するには、MySQL の外部インスタンスの REPLICATION CLIENT および REPLICATION SLAVE アクセス権限を持つレプリケーションユーザーを示す replication_user_name および replication_user_password の値を指定する必要があります。

MySQL の外部インスタンスをレプリケーションマスターとして設定するには

  1. 選択した MySQL クライアントを使用して、MySQL の外部インスタンスに接続し、レプリケーションに使用されるユーザーアカウントを作成します。次に例を示します。

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password'
  2. MySQL の外部インスタンスで、REPLICATION CLIENTREPLICATION SLAVE の特権をレプリケーションユーザーに付与します。次の例では、ドメインの 「repl_user」ユーザーに、すべてのデータベースの REPLICATION CLIENT および REPLICATION SLAVE 特権を付与します。

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password'

詳細については、「Amazon RDS の外部で実行される MySQL または MariaDB インスタンスとのレプリケーション」を参照してください。

暗号化レプリケーションを使用するには、SSL 接続を使用するようにマスターを設定します。また、mysql.rds_import_binlog_ssl_material 手順を使用して、DB インスタンスあるいは DB クラスターに認証機関証明書、クライアント証明書およびクライアントキーをインポートします。

注記

可能であれば、2 つの Amazon RDS DB インスタンス間のレプリケーションの管理にはリードレプリカを使用し、Amazon RDS DB インスタンス間のより複雑なレプリケーショントポロジーを有効にするには、これとその他のレプリケーション関連ストアドプロシージャのみを使用することをお勧めします。これらのストアドプロシージャは、主に Amazon RDS 外部で実行されている MySQL インスタンスのレプリケーションの有効化のために提供されています。Amazon RDS DB インスタンス間でのレプリケーションの管理の詳細については、「MariaDB、MySQL、および PostgreSQL DB インスタンスのリードレプリカの使用」を参照してください。

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

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

mysql.rds_set_external_master プロシージャは、以下のバージョンの Amazon RDS MySQL で利用できます。

  • MySQL 5.5

  • MySQL 5.6

  • MySQL 5.7

MySQL DB インスタンス上で実行すると、DB インスタンスが Amazon RDS の外部で動作する MySQL インスタンスのリードレプリカとして設定されます。次に例を示します。

call mysql.rds_set_external_master( 'Externaldb.some.com', 3306, 'repl_user'@'mydomain.com', 'password', 'mysql-bin-changelog.0777', 120, 0);

関連トピック