

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

設定從在 Amazon RDS 外部執行的 MariaDB 執行個體到 MariaDB 資料庫執行個體的 GTID 型複寫。僅在外部 MariaDB 執行個體的版本為 10.0.24 或更高版本時，才支援此存放程序。設定其中的一或兩個執行個體不支援 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 可提供二進位日誌複寫未提供的損毀安全功能，因此建議您在複寫執行個體支援時加以使用。

## 語法
<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 資料庫執行個體中具有 `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` 程序必須由主要使用者執行。其必須在 MariaDB 資料庫執行個體上執行，您會將該執行個體設定為在 Amazon RDS 外部執行之 MariaDB 執行個體的複本。在執行 `mysql.rds_set_external_master_gtid` 之前，您必須在將 Amazon RDS 外部執行的 MariaDB 的執行個體設定為來源執行個體。如需更多詳細資訊，請參閱 [將資料匯入 Amazon RDS for MariaDB 資料庫執行個體](MariaDB.Procedural.Importing.md)。

**警告**  
請勿使用 `mysql.rds_set_external_master_gtid` 來管理兩個 Amazon RDS 資料庫執行個體之間的複寫。只有在使用在 RDS 外部執行的 MariaDB 執行個體進行複寫時才使用它。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_master_gtid` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以呼叫複本上的 [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 資料庫執行個體上執行時，下列範例會將它設定為在 Amazon RDS 外部執行之 MariaDB 執行個體的複本。

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