

# mysql.rds\_set\_external\_master\_gtid
<a name="mysql_rds_set_external_master_gtid"></a>

Amazon RDS 外部で動作する MariaDB インスタンスから MariaDB DB インスタンスに対して、GTID ベースのレプリケーションを設定します。このストアドプロシージャは、外部の MariaDB インスタンスのバージョンが 10.0.24 以降である場合のみサポートされます。1 つまたは両方のインスタンスが MariaDB のグローバルトランザクション識別子 (GTID) をサポートしていない場合にレプリケーションを設定する際は、「[mysql.rds\_set\_external\_master (RDS for MariaDB および RDS for MySQL メジャーバージョン 8.0 以前)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master)」を使用します。

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

## 構文
<a name="mysql_rds_set_external_master_gtid-syntax"></a>

 

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

## パラメータ
<a name="mysql_rds_set_external_master_gtid-parameters"></a>

 *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](http://mariadb.com/kb/en/mariadb/global-transaction-id/)」を参照してください。

 *ssl\_encryption*   
レプリケーション接続で Secure Socket Layer (SSL) 暗号化を使用するかどうかを指定する値。1 は SSL 暗号化を使用することを指定し、0 は暗号化を使用しないことを指定します。デフォルトは 0 です。  
`MASTER_SSL_VERIFY_SERVER_CERT` オプションはサポートされていません。このオプションは 0 に設定されます。つまり、接続は暗号化されますが、証明書は検証されません。

## 使用に関する注意事項
<a name="mysql_rds_set_external_master_gtid-usage-notes"></a>

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

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

`mysql.rds_set_external_master_gtid` を呼び出し、Amazon RDS DB インスタンスをリードレプリカとして設定した後で、レプリカで [mysql.rds\_start\_replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) を呼び出してレプリケーションプロセスを開始できます。[mysql.rds\_reset\_external\_master (RDS for MariaDB および RDS for MySQL メジャーバージョン 8.0 以前)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) を呼び出して、リードレプリカの設定を削除することもできます。

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

## 例
<a name="mysql_rds_set_external_master_gtid-examples"></a>

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

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