

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

# RDS for MySQL 預存程序參考
<a name="Appendix.MySQL.SQLRef"></a>

這些主題描述執行 MySQL 資料庫引擎之 Amazon RDS 執行個體可用的系統預存程序。主要使用者必須執行這些程序。

**Topics**
+ [收集和維護全域狀態歷史記錄](mysql-stored-proc-gsh.md)
+ [設定、啟動和停止二進位日誌 (binlog) 複寫](mysql-stored-proc-replicating.md)
+ [結束工作階段或查詢](mysql-stored-proc-ending.md)
+ [管理主動-主動叢集](mysql-stored-proc-active-active-clusters.md)
+ [管理多來源複寫](mysql-stored-proc-multi-source-replication.md)
+ [使用 GTID 複寫交易](mysql-stored-proc-gtid.md)
+ [輪換查詢日誌](mysql-stored-proc-logging.md)
+ [設定和顯示二進位日誌組態](mysql-stored-proc-configuring.md)
+ [預備 InnoDB 快取](mysql-stored-proc-warming.md)

# 收集和維護全域狀態歷史記錄
<a name="mysql-stored-proc-gsh"></a>

Amazon RDS 會提供一組程序，將在一段時間內快照狀態變數的值，並將它們以及自從上次快照後的任何變更寫入至資料表。此基礎設施稱為「全域狀態歷史記錄」。如需詳細資訊，請參閱[管理 RDS for MySQL 的全域狀態歷史記錄](Appendix.MySQL.CommonDBATasks.GoSH.md)。

下列預存程序會管理收集及維護「全域狀態歷史記錄」的方式。

**Topics**
+ [mysql.rds\$1collect\$1global\$1status\$1history](#mysql_rds_collect_global_status_history)
+ [mysql.rds\$1disable\$1gsh\$1collector](#mysql_rds_disable_gsh_collector)
+ [mysql.rds\$1disable\$1gsh\$1rotation](#mysql_rds_disable_gsh_rotation)
+ [mysql.rds\$1enable\$1gsh\$1collector](#mysql_rds_enable_gsh_collector)
+ [mysql.rds\$1enable\$1gsh\$1rotation](#mysql_rds_enable_gsh_rotation)
+ [mysql.rds\$1rotate\$1global\$1status\$1history](#mysql_rds_rotate_global_status_history)
+ [mysql.rds\$1set\$1gsh\$1collector](#mysql_rds_set_gsh_collector)
+ [mysql.rds\$1set\$1gsh\$1rotation](#mysql_rds_set_gsh_rotation)

## mysql.rds\$1collect\$1global\$1status\$1history
<a name="mysql_rds_collect_global_status_history"></a>

隨需建立全域狀態歷史記錄的快照。

### 語法
<a name="rds_collect_global_status_history-syntax"></a>

 

```
CALL mysql.rds_collect_global_status_history;
```

## mysql.rds\$1disable\$1gsh\$1collector
<a name="mysql_rds_disable_gsh_collector"></a>

停用全域狀態歷史記錄建立的快照。

### 語法
<a name="mysql_rds_disable_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_disable_gsh_collector;
```

## mysql.rds\$1disable\$1gsh\$1rotation
<a name="mysql_rds_disable_gsh_rotation"></a>

關閉 `mysql.global_status_history` 表格的輪換。

### 語法
<a name="mysql_rds_disable_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_disable_gsh_rotation;
```

## mysql.rds\$1enable\$1gsh\$1collector
<a name="mysql_rds_enable_gsh_collector"></a>

啟用全域狀態歷史記錄來依據 `rds_set_gsh_collector` 指定的間隔建立預設快照。

### 語法
<a name="mysql_rds_enable_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_enable_gsh_collector;
```

## mysql.rds\$1enable\$1gsh\$1rotation
<a name="mysql_rds_enable_gsh_rotation"></a>

啟用依 `mysql.global_status_history` 指定的間隔將 `mysql.global_status_history_old` 資料表的內容輪換至 `rds_set_gsh_rotation`。

### 語法
<a name="mysql_rds_enable_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_enable_gsh_rotation;
```

## mysql.rds\$1rotate\$1global\$1status\$1history
<a name="mysql_rds_rotate_global_status_history"></a>

隨需將 `mysql.global_status_history` 資料表的內容輪換至 `mysql.global_status_history_old`。

### 語法
<a name="mysql_rds_rotate_global_status_history-syntax"></a>

 

```
CALL mysql.rds_rotate_global_status_history;
```

## mysql.rds\$1set\$1gsh\$1collector
<a name="mysql_rds_set_gsh_collector"></a>

指定全域狀態歷史記錄建立快照之間的間隔 (以分鐘為單位)。

### 語法
<a name="mysql_rds_set_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_set_gsh_collector(intervalPeriod);
```

### 參數
<a name="mysql_rds_set_gsh_collector-parameters"></a>

 *intervalPeriod*   
快照之間的間隔 (以分鐘為單位)。預設值為 `5`。

## mysql.rds\$1set\$1gsh\$1rotation
<a name="mysql_rds_set_gsh_rotation"></a>

指定 `mysql.global_status_history` 資料表輪換之間的間隔 (以天為單位)。

### 語法
<a name="mysql_rds_set_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_set_gsh_rotation(intervalPeriod);
```

### 參數
<a name="mysql_rds_set_gsh_rotation-parameters"></a>

 *intervalPeriod*   
資料表輪換之間的間隔 (以天為單位)。預設值為 `7`。

# 設定、啟動和停止二進位日誌 (binlog) 複寫
<a name="mysql-stored-proc-replicating"></a>

下列預存程序控制交易從外部資料庫複寫到 RDS for MySQL 中，或從 RDS for MySQL 複寫到外部資料庫的方式。

使用這些預存程序來管理使用者以 `caching_sha2_password` 設定的複寫進行的複寫，您必須透過指定 `SOURCE_SSL=1` 來設定 TLS。`caching_sha2_password` 是 RDS for MySQL 8.4 的預設身分驗證外掛程式。如需詳細資訊，請參閱 [使用 SSL/TLS 加密](mysql-ssl-connections.md)。

如需有關設定、使用和管理讀取複本的詳細資訊，請參閱 [使用 MySQL 僅供讀取複本](USER_MySQL.Replication.ReadReplicas.md)。

**Topics**
+ [mysql.rds\$1next\$1master\$1log (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本）](#mysql_rds_next_master_log)
+ [mysql.rds\$1next\$1source\$1log (RDS for MySQL 主要版本 8.4 及更高版本)](#mysql_rds_next_source_log)
+ [mysql.rds\$1reset\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_reset_external_master)
+ [mysql.rds\$1reset\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_reset_external_source)
+ [mysql.rds\$1set\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master)
+ [mysql.rds\$1set\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master_with_auto_position)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source_with_auto_position)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged)
+ [mysql.rds\$1set\$1master\$1auto\$1position (RDS for MySQL 主要版本 8.0 及更低版本）](#mysql_rds_set_master_auto_position)
+ [mysql.rds\$1set\$1source\$1auto\$1position (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_source_auto_position)
+ [mysql.rds\$1set\$1source\$1delay](#mysql_rds_set_source_delay)
+ [mysql.rds\$1skip\$1repl\$1error](#mysql_rds_skip_repl_error)
+ [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)
+ [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until)
+ [mysql.rds\$1stop\$1replication](#mysql_rds_stop_replication)

## mysql.rds\$1next\$1master\$1log (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本）
<a name="mysql_rds_next_master_log"></a>

將來源資料庫執行個體日誌位置變更為來源資料庫執行個體上下一個二進位日誌的開頭。只有當您在僅供讀取複本上收到複寫輸入/輸出錯誤 1236 時，才使用此程序。

### 語法
<a name="mysql_rds_next_master_log-syntax"></a>

 

```
CALL mysql.rds_next_master_log(
curr_master_log
);
```

### 參數
<a name="mysql_rds_next_master_log-parameters"></a>

 *curr\$1master\$1log*   
目前主控端日誌檔案的索引。例如，若目前檔案的名稱是 `mysql-bin-changelog.012345`，則索引為 12345。若要查明目前主控端日誌檔案名稱，請執行 `SHOW REPLICA STATUS` 命令並檢視 `Master_Log_File` 欄位。

### 使用須知
<a name="mysql_rds_next_master_log-usage-notes"></a>

主要使用者必須執行 `mysql.rds_next_master_log` 程序。

**警告**  
只有當複寫來源的異地同步備份資料庫執行個體在容錯移轉之後複寫失敗時，且 `mysql.rds_next_master_log` 的 `Last_IO_Errno` 欄位報告輸入/輸出錯誤 1236，才呼叫 `SHOW REPLICA STATUS`。  
在容錯移轉事件發生之前，如果來源執行個體中的交易未寫入磁碟上的二進位日誌，則呼叫 `mysql.rds_next_master_log` 會導致僅供讀取複本遺失資料。您可以將來源執行個體參數 `sync_binlog` 和 `innodb_support_xa` 設為 `1`，以降低此情況發生的機率，雖然這麼做會降低效能。如需詳細資訊，請參閱 [對 MySQL 僅供讀取複本問題進行故障診斷](USER_ReadRepl.Troubleshooting.md)。

### 範例
<a name="mysql_rds_next_master_log-examples"></a>

假設 RDS for MySQL 僅供讀取複本上的複寫失敗。在僅供讀取複本上執行 `SHOW REPLICA STATUS\G` 將傳回下列結果：

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Master: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

`Last_IO_Errno` 欄位顯示執行個體收到輸入/輸出錯誤 1236。`Master_Log_File` 欄位顯示檔案名稱是 `mysql-bin-changelog.012345`，這表示日誌檔案索引為 `12345`。若要解決錯誤，您可以呼叫 `mysql.rds_next_master_log` 並指定下列參數：

```
CALL mysql.rds_next_master_log(12345);
```

## mysql.rds\$1next\$1source\$1log (RDS for MySQL 主要版本 8.4 及更高版本)
<a name="mysql_rds_next_source_log"></a>

將來源資料庫執行個體日誌位置變更為來源資料庫執行個體上下一個二進位日誌的開頭。只有當您在僅供讀取複本上收到複寫輸入/輸出錯誤 1236 時，才使用此程序。

### 語法
<a name="mysql_rds_next_source_log-syntax"></a>

 

```
CALL mysql.rds_next_source_log(
curr_source_log
);
```

### Parameters
<a name="mysql_rds_next_source_log-parameters"></a>

 *curr\$1source\$1log*   
目前來源日誌檔案的索引。例如，若目前檔案的名稱是 `mysql-bin-changelog.012345`，則索引為 12345。若要查明目前來源日誌檔案名稱，請執行 `SHOW REPLICA STATUS` 命令並檢視 `Source_Log_File` 欄位。

### 使用須知
<a name="mysql_rds_next_source_log-usage-notes"></a>

管理使用者必須執行 `mysql.rds_next_source_log` 程序。

**警告**  
只有當複寫來源的異地同步備份資料庫執行個體在容錯移轉之後複寫失敗時，且 `mysql.rds_next_source_log` 的 `Last_IO_Errno` 欄位報告輸入/輸出錯誤 1236，才呼叫 `SHOW REPLICA STATUS`。  
在容錯移轉事件發生之前，如果來源執行個體中的交易未寫入磁碟上的二進位日誌，則呼叫 `mysql.rds_next_source_log` 會導致僅供讀取複本遺失資料。您可以將來源執行個體參數 `sync_binlog` 和 `innodb_support_xa` 設為 `1`，以降低此情況發生的機率，雖然這麼做會降低效能。如需詳細資訊，請參閱 [對 MySQL 僅供讀取複本問題進行故障診斷](USER_ReadRepl.Troubleshooting.md)。

### 範例
<a name="mysql_rds_next_source_log-examples"></a>

假設 RDS for MySQL 僅供讀取複本上的複寫失敗。在僅供讀取複本上執行 `SHOW REPLICA STATUS\G` 將傳回下列結果：

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Source: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

`Last_IO_Errno` 欄位顯示執行個體收到輸入/輸出錯誤 1236。`Source_Log_File` 欄位顯示檔案名稱是 `mysql-bin-changelog.012345`，這表示日誌檔案索引為 `12345`。若要解決錯誤，您可以呼叫 `mysql.rds_next_source_log` 並指定下列參數：

```
CALL mysql.rds_next_source_log(12345);
```

## mysql.rds\$1reset\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)
<a name="mysql_rds_reset_external_master"></a>

將 RDS for MySQL 資料庫執行個體重新設定為不再是 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_reset_external_master-syntax"></a>

 

```
CALL mysql.rds_reset_external_master;
```

### 使用須知
<a name="mysql_rds_reset_external_master-usage-notes"></a>

主要使用者必須執行 `mysql.rds_reset_external_master` 程序。此程序必須在要做為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的將被移除的 MySQL 資料庫執行個體上執行。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

如需使用複寫從 Amazon RDS 外部執行的 MySQL 執行個體匯入資料的詳細資訊，請參閱[使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

## mysql.rds\$1reset\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)
<a name="mysql_rds_reset_external_source"></a>

將 RDS for MySQL 資料庫執行個體重新設定為不再是 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_reset_external_source-syntax"></a>

 

```
CALL mysql.rds_reset_external_source;
```

### 使用須知
<a name="mysql_rds_reset_external_source-usage-notes"></a>

管理使用者必須執行 `mysql.rds_reset_external_source` 程序。此程序必須在要做為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的將被移除的 MySQL 資料庫執行個體上執行。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。  
如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。如需使用複寫從 Amazon RDS 外部執行的 MySQL 執行個體匯入資料的詳細資訊，請參閱[使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

## mysql.rds\$1set\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)
<a name="mysql_rds_set_external_master"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

**注意**  
您可以使用 [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master_with_delay) 預存程序來設定外部來源資料庫執行個體與延遲的複寫。

### 語法
<a name="mysql_rds_set_external_master-syntax"></a>

 

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

### 參數
<a name="mysql_rds_set_external_master-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
複寫在 `mysql_binary_log_file_name` 二進位日誌中開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW MASTER STATUS` 來判斷 binlog 檔案名稱和位置。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `MASTER_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

### 使用須知
<a name="mysql_rds_set_external_master-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_external_master` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 MySQL 資料庫執行個體上執行。

在執行 `mysql.rds_set_external_master` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線至 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 值，以指出在外部 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。下列是 範例。

   **MySQL 5.7**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```

   **MySQL 8.0**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
   ```
**注意**  
指定此處所顯示提示以外的密碼，作為安全最佳實務。

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 'repl\$1user' 使用者。

   **MySQL 5.7**

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

   **MySQL 8.0**

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

若要使用加密複寫，請將來源資料庫執行個體設定為使用 SSL 連線。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_master` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_reset_external_master) 來移除僅供讀取複本組態。

呼叫 `mysql.rds_set_external_master` 時，Amazon RDS 將時間、使用者和 `set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

### 範例
<a name="mysql_rds_set_external_master-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

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

## mysql.rds\$1set\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)
<a name="mysql_rds_set_external_source"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_source-syntax"></a>

 

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

### 參數
<a name="mysql_rds_set_external_source-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
複寫在 `mysql_binary_log_file_name` 二進位日誌中開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW MASTER STATUS` 來判斷 binlog 檔案名稱和位置。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設值為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

### 使用須知
<a name="mysql_rds_set_external_source-usage-notes"></a>

管理使用者必須執行 `mysql.rds_set_external_source` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 RDS for MySQL 資料庫執行個體上執行。

 在執行 `mysql.rds_set_external_source` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線至 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 值，以指出在外部 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。下列是 範例。

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```
**注意**  
指定此處所顯示提示以外的密碼，作為安全最佳實務。

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 'repl\$1user' 使用者。

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

若要使用加密複寫，請將來源資料庫執行個體設定為使用 SSL 連線。此外，使用 [mysql.rds\$1import\$1binlog\$1ssl\$1material](url-rds-user;mysql_rds_import_binlog_ssl_material.html) 程序，將憑證授權單位憑證、用戶端憑證和用戶端金鑰匯入資料庫執行個體或資料庫叢集。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_source` 將 RDS for MySQL 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_reset_external_source) 來移除僅供讀取複本組態。

呼叫 `mysql.rds_set_external_source` 時，Amazon RDS 將時間、使用者和 `set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

### 範例
<a name="mysql_rds_set_external_source-examples"></a>

在 RDS for MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。

```
call mysql.rds_set_external_source(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  1);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.0 及更低版本)
<a name="mysql_rds_set_external_master_with_auto_position"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。此程序也會依據全域交易識別符 (GTID) 設定延遲複寫和複寫。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_master_with_auto_position-syntax"></a>

 

```
CALL mysql.rds_set_external_master_with_auto_position (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
);
```

### 參數
<a name="mysql_rds_set_external_master_with_auto_position-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `MASTER_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

### 使用須知
<a name="mysql_rds_set_external_master_with_auto_position-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_external_master_with_auto_position` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 MySQL 資料庫執行個體上執行。

RDS for MySQL 5.7 版，以及 RDS for MySQL 8.0.26 版和更新的 8.0 版都支援此程序。

在執行 `mysql.rds_set_external_master_with_auto_position` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線到 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 的值。這些值必須指明具有 MySQL 外部執行個體 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。以下是範例。

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 `'repl_user'` 使用者。

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

如需更多詳細資訊，請參閱 [使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_master_with_auto_position` 之前，請務必呼叫 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged)，以從外部來源設定具有指定 GTID 範圍的 `gtid_purged` 系統變數。

呼叫 `mysql.rds_set_external_master_with_auto_position` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_reset_external_master) 來移除僅供讀取複本組態。

當您呼叫 `mysql.rds_set_external_master_with_auto_position`，Amazon RDS 會將時間、使用者、`set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

進行災難復原時，您可以透過 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序來使用此程序。若要變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點，可以執行 `mysql.rds_set_external_master_with_auto_position` 程序。在 `mysql.rds_start_replication_until_gtid` 程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需有關依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

### 範例
<a name="mysql_rds_set_external_master_with_auto_position-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。它會在 MySQL 資料庫執行個體上設最小複寫延遲為一小時 (3600 秒)。在 Amazon RDS 外部執行的 MySQL 來源資料庫執行個體，其中變更至少一小時內不會套用在 MySQL 資料庫執行個體僅供讀取複本上。

```
call mysql.rds_set_external_master_with_auto_position(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.4 及更新版本)
<a name="mysql_rds_set_external_source_with_auto_position"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。此程序也會依據全域交易識別符 (GTID) 設定延遲複寫和複寫。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_source_with_auto_position-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_auto_position (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
);
```

### 參數
<a name="mysql_rds_set_external_source_with_auto_position-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

### 使用須知
<a name="mysql_rds_set_external_source_with_auto_position-usage-notes"></a>

管理使用者必須執行 `mysql.rds_set_external_source_with_auto_position` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 MySQL 資料庫執行個體上執行。

在執行 `mysql.rds_set_external_source_with_auto_position` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線到 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 的值。這些值必須指明具有 MySQL 外部執行個體 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。以下是範例。

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 `'repl_user'` 使用者。

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

如需更多詳細資訊，請參閱 [使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_source_with_auto_position` 之前，請務必呼叫 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged)，以從外部來源設定具有指定 GTID 範圍的 `gtid_purged` 系統變數。

呼叫 `mysql.rds_set_external_source_with_auto_position` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_reset_external_source) 來移除僅供讀取複本組態。

當您呼叫 `mysql.rds_set_external_source_with_auto_position`，Amazon RDS 會將時間、使用者、`set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

進行災難復原時，您可以透過 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序來使用此程序。若要變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點，可以執行 `mysql.rds_set_external_source_with_auto_position` 程序。在 `mysql.rds_start_replication_until_gtid` 程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需有關依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

### 範例
<a name="mysql_rds_set_external_source_with_auto_position-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。它會在 MySQL 資料庫執行個體上設最小複寫延遲為一小時 (3600 秒)。在 Amazon RDS 外部執行的 MySQL 來源資料庫執行個體，其中變更至少一小時內不會套用在 MySQL 資料庫執行個體僅供讀取複本上。

```
call mysql.rds_set_external_source_with_auto_position(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)
<a name="mysql_rds_set_external_master_with_delay"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本，並設定延遲複寫。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_master_with_delay-syntax"></a>

 

```
CALL mysql.rds_set_external_master_with_delay(
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### 參數
<a name="mysql_rds_set_external_master_with_delay-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體、在 Amazon RDS 外部執行的 MySQL 執行個體的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的 SSH 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
在 `mysql_binary_log_file_name` 二進位日誌中的複寫將開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW MASTER STATUS` 來判斷 binlog 檔案名稱和位置。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `MASTER_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

### 使用須知
<a name="mysql_rds_set_external_master_with_delay-usage-notes"></a>

 主要使用者必須執行 `mysql.rds_set_external_master_with_delay` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 MySQL 資料庫執行個體上執行。

 在執行 `mysql.rds_set_external_master_with_delay` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線到 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 的值。這些值必須指明具有 MySQL 外部執行個體 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。以下是範例。

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 `'repl_user'` 使用者。

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

如需更多詳細資訊，請參閱 [使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_master_with_delay` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_reset_external_master) 來移除僅供讀取複本組態。

當您呼叫 `mysql.rds_set_external_master_with_delay`，Amazon RDS 會將時間、使用者、`set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

進行災難復原時，您可以透過 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序來使用此程序。若要變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點，可以執行 `mysql.rds_set_external_master_with_delay` 程序。在 `mysql.rds_start_replication_until` 程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需有關依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

以下的 RDS for MySQL 版本中可使用 `mysql.rds_set_external_master_with_delay` 程序：
+ MySQL 8.0.26 和更新的 8.0 版
+ 所有 5.7 版

### 範例
<a name="mysql_rds_set_external_master_with_delay-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。它會在 MySQL 資料庫執行個體上設最小複寫延遲為一小時 (3600 秒)。在 Amazon RDS 外部執行的 MySQL 來源資料庫執行個體，其中變更至少一小時內不會套用在 MySQL 資料庫執行個體僅供讀取複本上。

```
call mysql.rds_set_external_master_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS for MySQL 主要版本 8.4 及更新版本)
<a name="mysql_rds_set_external_source_with_delay"></a>

將 RDS for MySQL 資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本，並設定延遲複寫。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_source_with_delay-syntax"></a>

```
CALL mysql.rds_set_external_source_with_delay (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### 參數
<a name="mysql_rds_set_external_source_with_delay-parameters"></a>

 *host\$1name*   
要成為來源資料庫執行個體、在 Amazon RDS 外部執行的 MySQL 執行個體的主機名稱或 IP 地址。

 *host\$1port*   
要設定為來源資料庫執行個體之 MySQL 執行個體 (在 Amazon RDS 外部執行) 所使用的連線埠。如果網路組態包含會轉換連線埠號碼的 SSH 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
在 Amazon RDS 外部執行的 MySQL 執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於外部執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
在 `mysql_binary_log_file_name` 二進位日誌中的複寫將開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW MASTER STATUS` 來判斷 binlog 檔案名稱和位置。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

### 使用須知
<a name="mysql_rds_set_external_source_with_delay-usage-notes"></a>

管理使用者必須執行 `mysql.rds_set_external_source_with_delay` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 MySQL 資料庫執行個體上執行。

 在執行 `mysql.rds_set_external_source_with_delay` 之前，您必須將 Amazon RDS 外部執行的 MySQL 執行個體設定為來源資料庫執行個體。若要連線到 Amazon RDS 外部執行的 MySQL 執行個體，您必須指定 `replication_user_name` 和 `replication_user_password` 的值。這些值必須指明具有 MySQL 外部執行個體 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的複寫使用者。

**將外部 MySQL 執行個體設定為來源資料庫執行個體**

1. 使用您選擇的 MySQL 用戶端，連線至外部 MySQL 執行個體，並建立用於複寫的使用者帳戶。以下是範例。

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. 在外部 MySQL 執行個體上，將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 `'repl_user'` 使用者。

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

如需更多詳細資訊，請參閱 [使用外部來源執行個體設定二進位日誌檔案位置複寫](MySQL.Procedural.Importing.External.Repl.md)。

**注意**  
如果可能，建議您使用僅供讀取複本來管理兩個 Amazon RDS 資料庫執行個體間的複寫。當您這麼做時，建議您僅使用此程序和其他與複寫相關的預存程序。這些做法使得 Amazon RDS 資料庫執行個體之間能夠實行更複雜的複寫拓撲。我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如需 Amazon RDS 資料庫執行個體之間管理複寫的相關資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

呼叫 `mysql.rds_set_external_source_with_delay` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_reset_external_source) 來移除僅供讀取複本組態。

當您呼叫 `mysql.rds_set_external_source_with_delay`，Amazon RDS 會將時間、使用者、`set master` 的動作記錄在 `mysql.rds_history` 和 `mysql.rds_replication_status` 資料表中。

進行災難復原時，您可以透過 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序來使用此程序。若要變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點，可以執行 `mysql.rds_set_external_source_with_delay` 程序。在 `mysql.rds_start_replication_until` 程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需有關依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

### 範例
<a name="mysql_rds_set_external_master_with_delay-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會將資料庫執行個體設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 的僅供讀取複本。它會在 MySQL 資料庫執行個體上設最小複寫延遲為一小時 (3600 秒)。在 Amazon RDS 外部執行的 MySQL 來源資料庫執行個體，其中變更至少一小時內不會套用在 MySQL 資料庫執行個體僅供讀取複本上。

```
call mysql.rds_set_external_source_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1gtid\$1purged
<a name="mysql_rds_set_external_source_gtid_purged"></a>

從外部來源設定具有指定 GTID 範圍的 [gtid\$1purged](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_purged) 系統變數。設定 GTID 型複寫以使用自動定位繼續複寫時需要 `gtid_purged` 值。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_source_gtid_purged-syntax"></a>

 

```
CALL mysql.rds_set_external_source_gtid_purged(
  server_uuid
  , start_pos
  , end_pos
);
```

### Parameters
<a name="mysql_rds_set_external_source_gtid_purged-parameters"></a>

 *server\$1uuid*   
要匯入 GTID 範圍之外部伺服器的通用唯一識別符 (UUID)。

 *start\$1pos*   
要設定的 GTID 範圍開始位置。

 *end\$1pos*   
要設定的 GTID 範圍結束位置。

### 使用須知
<a name="mysql_rds_set_external_source_gtid_purged-usage-notes"></a>

`mysql.rds_set_external_source_gtid_purged` 程序僅適用於 MySQL 8.0.37 和更新的 8.0 版本。

在呼叫 [mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master_with_auto_position)、[mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source_with_auto_position) 或 [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_set_external_source_with_auto_position_for_channel) 之前，請先呼叫 `mysql.rds_set_external_source_gtid_purged`。

在呼叫 `mysql.rds_set_external_source_gtid_purged` 之前，請務必停止資料庫的所有作用中複寫通道。若要檢查通道的狀態，請使用 `SHOW REPLICA STATUS` MySQL 陳述式。若要停止通道上的複寫，請呼叫 [mysql.rds\$1stop\$1replication\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_stop_replication_for_channel)。

您指定的 GTID 範圍必須是現有 `GTID_PURGED` 值的超集。此預存程序會在設定 `GTID_PURGED` 值之前檢查下列值：
+ `server_uuid` 有效。
+ `start_pos` 的值大於 `0` 的值且小於 `end_pos` 的值。
+ `end_pos` 的值大於或等於 `start_pos` 的值。

如果在外部伺服器上設定的 GTID 包含多個值範圍，請考慮使用不同的 GTID 設定值多次呼叫程序。

當您呼叫 `mysql.rds_set_external_source_gtid_purged` 時，Amazon RDS 會將時間、使用者、`set gtid_purged` 的動作記錄在 `mysql.rds_history` 資料表中。

如果您未針對用於複寫的備份適當設定 `gtid_purged` 值，這可能會導致複寫程序期間交易遺失或重複。執行下列步驟來設定正確的 `gtid_purged` 值。

**在複本上設定 gtid\$1purged 值**

1. 決定要使用做為複寫起點的時間點或特定備份檔案。這可以是邏輯備份 (mysqldump 檔案) 或實體備份 (Amazon RDS 快照)。

1. 決定 `gtid_executed` 值。此值代表在伺服器上提交的所有 GTID 集合。若要擷取此值，請在來源執行個體上執行下列其中一項操作：
   + 在進行備份時執行 SQL 陳述式 `SELECT @@GLOBAL.GTID_EXECUTED;`。
   + 如果個別備份公用程式中包含任何相關選項，請從備份檔案擷取值。如需詳細資訊，請參閱 MySQL 文件中的 [set-gtid-purged](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html#option_mysqldump_set-gtid-purged) 選項。

1. 決定要用於呼叫 `mysql.rds_set_external_source_gtid_purged` 的 `gtid_purged` 值。`gtid_purged` 值應該包含已在來源執行個體上執行且不再需要複寫的所有 GTID。因此，`gtid_purged` 值應該是您在上一個步驟中擷取之 `gtid_executed` 值的子集。

   若要判斷 `gtid_purged` 值，請識別未包含在備份中且不再需要複寫的 GTID。您可以透過分析二進制日誌或使用 mysqlbinlog 等工具，尋找已從二進制日誌中清除的 GTID，藉以執行此操作。

   或者，如果您有一個一致的備份，其中包含備份點之前的所有二進制日誌，您可以將 `gtid_purged` 值設定為與備份點的 `gtid_executed` 值相同。

1. 在您確定與備份一致的適當 `gtid_purged` 值後，請呼叫 RDS for MySQL 資料庫執行個體上的 `mysql.rds_set_external_source_gtid_purged` 預存程序來設定該值。

### 範例
<a name="mysql_rds_set_external_source_gtid_purged-examples"></a>

在 MySQL 資料庫執行個體上執行時，下列範例會設定來自外部 MySQL 伺服器的 GTID 範圍，其 UUID 為 `12345678-abcd-1234-efgh-123456789abc`，起始位置為 `1`，結束位置為 `100`。產生的 GTID 值設定為 `+12345678-abcd-1234-efgh-123456789abc:1-100`。

```
CALL mysql.rds_set_external_source_gtid_purged('12345678-abcd-1234-efgh-123456789abc', 1, 100);
```

## mysql.rds\$1set\$1master\$1auto\$1position (RDS for MySQL 主要版本 8.0 及更低版本）
<a name="mysql_rds_set_master_auto_position"></a>

將複寫模式設為依據二進制日誌檔案位置或全域交易識別符 (GTID)。

### 語法
<a name="mysql_rds_set_master_auto_position-syntax"></a>

 

```
CALL mysql.rds_set_master_auto_position (
auto_position_mode
);
```

### 參數
<a name="mysql_rds_set_master_auto_position-parameters"></a>

 *auto\$1position\$1mode*   
此值指示要使用日誌檔案位置複寫或是 GTID 複寫：  
+ `0` – 使用依據二進制日誌檔案位置的複寫模式。預設值為 `0`。
+ `1` – 使用依據 GTID 的複寫方法。

### 使用須知
<a name="mysql_rds_set_master_auto_position-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_master_auto_position` 程序。

RDS for MySQL 5.7 版，以及 RDS for MySQL 8.0.26 版和更新的 8.0 版都支援此程序。

## mysql.rds\$1set\$1source\$1auto\$1position (RDS for MySQL 主要版本 8.4 及更新版本)
<a name="mysql_rds_set_source_auto_position"></a>

將複寫模式設為依據二進制日誌檔案位置或全域交易識別符 (GTID)。

### 語法
<a name="mysql_rds_set_source_auto_position-syntax"></a>

```
CALL mysql.rds_set_source_auto_position (auto_position_mode);
```

### 參數
<a name="mysql_rds_set_source_auto_position-parameters"></a>

*auto\$1position\$1mode*  
此值指示要使用日誌檔案位置複寫或是 GTID 複寫：  
+  `0` – 使用依據二進制日誌檔案位置的複寫模式。預設值為 `0`。
+  `1` – 使用依據 GTID 的複寫方法。

### 使用須知
<a name="mysql_rds_set_source_auto_position-usage-notes"></a>

管理使用者必須執行 `mysql.rds_set_source_auto_position` 程序。

## mysql.rds\$1set\$1source\$1delay
<a name="mysql_rds_set_source_delay"></a>

設定最低秒數，以延遲來源資料庫執行個體到目前僅供讀取複本的複寫。當您連線到僅供讀取複本時，請使用此程序來延遲從來源資料庫執行個體的複寫。

### 語法
<a name="mysql_rds_set_source_delay-syntax"></a>

```
CALL mysql.rds_set_source_delay(
delay
);
```

### 參數
<a name="mysql_rds_set_source_delay-parameters"></a>

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

### 使用須知
<a name="mysql_rds_set_source_delay-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_source_delay` 程序。

進行災難復原時，您可以透過 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 預存程序或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序來使用此程序。若要變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點，可以執行 `mysql.rds_set_source_delay` 程序。在 `mysql.rds_start_replication_until` 或 `mysql.rds_start_replication_until_gtid` 程序停止複寫後，您可使用[提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

以下的 RDS for MySQL 版本中可使用 `mysql.rds_set_source_delay` 程序：
+ 所有 RDS for MySQL 8.4 版本
+ MySQL 8.0.26 和更新的 8.0 版
+ 所有 5.7 版

### 範例
<a name="mysql_rds_set_source_delay-examples"></a>

若要延遲來源資料庫執行個體到目前僅供讀取複本的複寫至少一小時 (3,600 秒)，您可透過下列參數呼叫 `mysql.rds_set_source_delay`：

```
CALL mysql.rds_set_source_delay(3600);
```

## mysql.rds\$1skip\$1repl\$1error
<a name="mysql_rds_skip_repl_error"></a>

略過和刪除 MySQL 資料庫僅供讀取複本上的複寫錯誤。

### 語法
<a name="mysql_rds_skip_repl_error-syntax"></a>

 

```
CALL mysql.rds_skip_repl_error;
```

### 使用須知
<a name="mysql_rds_skip_repl_error-usage-notes"></a>

主要使用者必須在僅供讀取複本上執行 `mysql.rds_skip_repl_error` 程序。如需有關此程序的詳細資訊，請參閱[呼叫 mysql.rds\$1skip\$1repl\$1error 程序](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure)。

若要判斷是否有錯誤，執行 MySQL `SHOW REPLICA STATUS\G` 命令。如果複寫錯誤不嚴重，您可以執行 `mysql.rds_skip_repl_error` 來略過錯誤。如果有多個錯誤，`mysql.rds_skip_repl_error` 會刪除第一個錯誤，然後警告還有其他錯誤。然後，您可以使用 `SHOW REPLICA STATUS\G`，以針對下一個錯誤判斷正確的行動步驟。如需傳回值的相關資訊，請參閱 MySQL 文件中的 [SHOW REPLICA STATUS 陳述式](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html)。

如需有關解決 Amazon RDS 複寫錯誤的詳細資訊，請參閱 [對 MySQL 僅供讀取複本問題進行故障診斷](USER_ReadRepl.Troubleshooting.md)。

#### 複寫已停止錯誤
<a name="skip_repl_error.stopped-error"></a>

當您呼叫 `mysql.rds_skip_repl_error` 程序時，可能會收到錯誤訊息，指出複本已關閉或停用。

如果您在主要執行個體而非僅供讀取複本上執行程序，此錯誤訊息就會出現。您必須在僅供讀取複本上執行此程序，程序才能運作。

如果您在僅供讀取複本上執行程序，但複寫無法成功重新啟動，此錯誤訊息也可能出現。

如果您需要略過大量錯誤，複寫延遲可能增加至超出二進位日誌(binlog) 檔案的預設保留期間。在此情況下，由於在清除 binlog 檔案之前已在僅供讀取複本上重播該檔案，您可能會遇到嚴重錯誤。此清除動作會導致複寫停止，而您將無法再呼叫 `mysql.rds_skip_repl_error` 命令來略過複寫錯誤。

透過增加 binlog 檔案在來源資料庫執行個體上保留的小時數，即可以減輕此問題。在延長二進位記錄檔保留時間之後，您可以重新啟動複寫，並視需要呼叫 `mysql.rds_skip_repl_error` 命令。

若要設定 binlog 保留時間，請使用 [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 程序，並指定 `'binlog retention hours'`組態參數加上資料庫叢集上保留 binlog 檔案的時數。下列範例會將 binlog 檔案的保留期間設定為 48 小時。

```
CALL mysql.rds_set_configuration('binlog retention hours', 48);
```

## mysql.rds\$1start\$1replication
<a name="mysql_rds_start_replication"></a>

從 RDS for MySQL 資料庫執行個體起始複寫。

**注意**  
您可使用 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序從 RDS for MySQL 資料庫執行個體來啟動複寫，並從特定的二進位日誌檔案位置停止複寫。

### 語法
<a name="mysql_rds_start_replication-syntax"></a>

 

```
CALL mysql.rds_start_replication;
```

### 使用須知
<a name="mysql_rds_start_replication-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication` 程序。

如果要從 Amazon RDS 外部的 MySQL 執行個體匯入資料，請呼叫 [mysql.rds\$1set\$1external\$1master (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master) 或 [mysql.rds\$1set\$1external\$1source (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source) 來建置複寫組態，再呼叫僅供讀取複本上的 `mysql.rds_start_replication` 來啟動複寫程序。如需詳細資訊，請參閱[將備份還原至 Amazon RDS for MySQL 資料庫執行個體](MySQL.Procedural.Importing.md)。

若要將資料匯出至 Amazon RDS 外部的 MySQL 執行個體，請在僅供讀取複本上呼叫 `mysql.rds_start_replication` 和 `mysql.rds_stop_replication` 來控制某些複寫動作，例如清除二進位日誌。如需詳細資訊，請參閱[使用複寫從 MySQL 資料庫執行個體匯出資料](MySQL.Procedural.Exporting.NonRDSRepl.md)。

您也可以對僅供讀取複本呼叫 `mysql.rds_start_replication`，以重新啟動您先前呼叫 `mysql.rds_stop_replication` 所停止的任何複寫程序。如需詳細資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

## mysql.rds\$1start\$1replication\$1until
<a name="mysql_rds_start_replication_until"></a>

從 RDS for MySQL 資料庫執行個體啟動複寫，並從特定的二進位日誌檔案位置停止複寫。

### 語法
<a name="mysql_rds_start_replication_until-syntax"></a>

 

```
CALL mysql.rds_start_replication_until (
replication_log_file
  , replication_stop_point
);
```

### 參數
<a name="mysql_rds_start_replication_until-parameters"></a>

 *replication\$1log\$1file*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *replication\$1stop\$1point *   
在 `replication_log_file` 二進位日誌中的複寫將停止的位置。

### 使用須知
<a name="mysql_rds_start_replication_until-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication_until` 程序。

以下的 RDS for MySQL 版本中可使用 `mysql.rds_start_replication_until` 程序：
+ 所有 RDS for MySQL 8.4 版本
+ MySQL 8.0.26 和更新的 8.0 版
+ 所有 5.7 版

您可以透過延遲複寫來使用此程序進行災難復原。若您已延遲複寫設定，您可使用此程序變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點。在此程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

您可使用以下預存程序來設定延遲複寫：
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS for MySQL 主要版本 8.4 及更新版本)](#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](#mysql_rds_set_source_delay)

`replication_log_file` 參數的指定檔名必須與來源資料庫執行個體 binlog 檔案的名稱相同。

當 `replication_stop_point` 參數指定了過去的一個停止位置，複寫即會立即停止。

### 範例
<a name="mysql_rds_start_replication_until-examples"></a>

以下範例會啟動複寫並複寫變更，直到達到 `120` 二進位日誌檔案中的位置 `mysql-bin-changelog.000777` 為止。

```
call mysql.rds_start_replication_until(
  'mysql-bin-changelog.000777',
  120);
```

## mysql.rds\$1stop\$1replication
<a name="mysql_rds_stop_replication"></a>

從 MySQL 資料庫執行個體停止複寫。

### 語法
<a name="mysql_rds_stop_replication-syntax"></a>

 

```
CALL mysql.rds_stop_replication;
```

### 使用須知
<a name="mysql_rds_stop_replication-usage-notes"></a>

主要使用者必須執行 `mysql.rds_stop_replication` 程序。

如果您要將複寫設定為從 Amazon RDS 外部執行的 MySQL 執行個體匯入資料，在匯入完成之後，請在僅供讀取複本上呼叫 `mysql.rds_stop_replication` 來停止複寫程序。如需詳細資訊，請參閱[將備份還原至 Amazon RDS for MySQL 資料庫執行個體](MySQL.Procedural.Importing.md)。

如果您要設定複寫將資料匯出至 Amazon RDS 外部的 MySQL 執行個體，請在僅供讀取複本上呼叫 `mysql.rds_start_replication` 和 `mysql.rds_stop_replication` 來控制某些複寫動作，例如清除二進位日誌。如需詳細資訊，請參閱[使用複寫從 MySQL 資料庫執行個體匯出資料](MySQL.Procedural.Exporting.NonRDSRepl.md)。

您也可以使用 `mysql.rds_stop_replication`，以停止兩個 Amazon RDS 資料庫執行個體之間的複寫。您停止複寫通常是為了在僅供讀取複本上執行長時間的操作，例如在僅供讀取複本上建立大型索引。您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)，以重新啟動您已停止的任何複寫程序。如需詳細資訊，請參閱[使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。

# 結束工作階段或查詢
<a name="mysql-stored-proc-ending"></a>

下列預存程序會結束工作階段或查詢。

**Topics**
+ [mysql.rds\$1kill](#mysql_rds_kill)
+ [mysql.rds\$1kill\$1query](#mysql_rds_kill_query)

## mysql.rds\$1kill
<a name="mysql_rds_kill"></a>

結束 MySQL 伺服器的連線。

### 語法
<a name="mysql_rds_kill-syntax"></a>

```
CALL mysql.rds_kill(processID);
```

### 參數
<a name="mysql_rds_kill-parameters"></a>

 *processID*   
要結束之連線執行緒的身分。

### 使用須知
<a name="mysql_rds_kill-usage-notes"></a>

MySQL 伺服器的每個連線都在個別執行緒中執行。若要結束連線，請使用 `mysql.rds_kill` 程序並傳入該連線的執行緒 ID。若要取得執行緒 ID，請使用 MySQL [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html) 命令。

如需限制的詳細資訊，請參閱[MySQL 預存程序限制](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures)。

### 範例
<a name="mysql_rds_kill-examples"></a>

下列範例結束執行緒 ID 為 4243 的連線：

```
CALL mysql.rds_kill(4243);
```

## mysql.rds\$1kill\$1query
<a name="mysql_rds_kill_query"></a>

結束對 MySQL 伺服器執行的查詢。

### 語法
<a name="mysql_rds_kill_query-syntax"></a>

```
CALL mysql.rds_kill_query(processID);
```

### 參數
<a name="mysql_rds_kill_query-parameters"></a>

 *processID*   
正在執行要結束之查詢的處理序或執行緒的身分。

### 使用須知
<a name="mysql_rds_kill_query-usage-notes"></a>

若要停止對 MySQL 伺服器執行的查詢，請使用 `mysql_rds_kill_query` 程序並傳入執行查詢之執行緒的連線 ID。然後程序就會終止連線。

若要取得 ID，請查詢 MySQL [INFORMATION\$1SCHEMA PROCESSLIST 資料表](https://dev.mysql.com/doc/refman/8.0/en/information-schema-processlist-table.html)或使用 MySQL [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html) 命令。`SHOW PROCESSLIST` 或 `SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST` 中 ID 欄的值為 *processID*。

如需限制的詳細資訊，請參閱[MySQL 預存程序限制](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures)。

### 範例
<a name="mysql_rds_kill_query-examples"></a>

下列範例會停止查詢執行緒 ID 為 230040 的查詢：

```
CALL mysql.rds_kill_query(230040);
```

# 管理主動-主動叢集
<a name="mysql-stored-proc-active-active-clusters"></a>

下列預存程序會設定和管理 RDS for MySQL 主動-主動叢集。如需詳細資訊，請參閱 [為 RDS for MySQL 設定主動-主動叢集](mysql-active-active-clusters.md)。

這些預存程序僅適用於執行下列版本的 RDS for MySQL 資料庫執行個體：
+ 所有 MySQL 8.4 版
+ MySQL 8.0.35 和更高的次要版本

**Topics**
+ [mysql.rds\$1group\$1replication\$1advance\$1gtid](#mysql_rds_group_replication_advance_gtid)
+ [mysql.rds\$1group\$1replication\$1create\$1user](#mysql_rds_group_replication_create_user)
+ [mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel](#mysql_rds_group_replication_set_recovery_channel)
+ [mysql.rds\$1group\$1replication\$1start](#mysql_rds_group_replication_start)
+ [mysql.rds\$1group\$1replication\$1stop](#mysql_rds_group_replication_stop)

## mysql.rds\$1group\$1replication\$1advance\$1gtid
<a name="mysql_rds_group_replication_advance_gtid"></a>

在目前的資料庫執行個體上建立預留位置 GTID。

### 語法
<a name="mysql_rds_group_replication_advance_gtid-syntax"></a>

```
CALL mysql.rds_group_replication_advance_gtid(
begin_id
, end_id
, server_uuid
);
```

### 參數
<a name="mysql_rds_group_replication_advance_gtid-parameters"></a>

 *begin\$1id*   
要建立的開始交易 ID。

 *end\$1id*   
要建立的結束交易 ID。

 *begin\$1id*   
要建立之交易的 `group_replication_group_name`。在與資料庫執行個體相關聯的資料庫參數群組中，`group_replication_group_name` 指定為 UUID。

### 使用須知
<a name="mysql_rds_group_replication_advance_gtid-usage-notes"></a>

在主動-主動叢集中，若要讓資料庫執行個體加入群組，所有在新資料庫執行個體上執行的 GTID 交易都必須存在於叢集中的其他成員上。在少數情況下，若在執行個體加入群組之前執行交易，新的資料庫執行個體可能會有更多交易。在此情況下，您無法移除任何現有的交易，但您可以使用此程序，在群組中的其他資料庫執行個體上建立對應的預留位置 GTID。執行此操作前，請確認交易*不會影響複寫的資料*。

當您呼叫此程序時，將會以空白內容建立 `server_uuid:begin_id-end_id` 的 GTID 交易。為避免發生複寫問題，切勿在其他情況下使用此程序。

**重要**  
請避免在主動-主動叢集正常運作時呼叫此程序。除非您了解您建立的交易可能有何後果，否則請勿呼叫此程序。呼叫此程序可能會導致資料不一致。

### 範例
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

下列範例會在目前的資料庫執行個體上建立預留位置 GTID：

```
CALL mysql.rds_group_replication_advance_gtid(5, 6, '11111111-2222-3333-4444-555555555555');
```

## mysql.rds\$1group\$1replication\$1create\$1user
<a name="mysql_rds_group_replication_create_user"></a>

為資料庫執行個體上的群組複寫建立複寫使用者 `rdsgrprepladmin`。

### 語法
<a name="mysql_rds_group_replication_create_user-syntax"></a>

```
CALL mysql.rds_group_replication_create_user(
replication_user_password
);
```

### 參數
<a name="mysql_rds_group_replication_create_user-parameters"></a>

 *replication\$1user\$1password*   
複寫使用者 `rdsgrprepladmin` 的密碼。

### 使用須知
<a name="mysql_rds_group_replication_create_user-usage-notes"></a>
+ 複寫使用者 `rdsgrprepladmin` 的密碼在主動-主動叢集中的所有資料庫執行個體上必須相同。
+ 這個 `rdsgrprepladmin` 使用者名稱會保留給群組複寫連線。其他使用者 (包括主要使用者) 都無法使用此使用者名稱。

### 範例
<a name="mysql_rds_group_replication_create_user-examples"></a>

下列範例會為資料庫執行個體上的群組複寫建立複寫使用者 `rdsgrprepladmin`。

```
CALL mysql.rds_group_replication_create_user('password');
```

## mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel
<a name="mysql_rds_group_replication_set_recovery_channel"></a>

為主動-主動叢集設定 `group_replication_recovery` 通道。此程序會使用保留的 `rdsgrprepladmin` 使用者來設定通道。

### 語法
<a name="mysql_rds_group_replication_set_recovery_channel-syntax"></a>

```
CALL mysql.rds_group_replication_set_recovery_channel(
replication_user_password);
```

### 參數
<a name="mysql_rds_group_replication_set_recovery_channel-parameters"></a>

 *replication\$1user\$1password*   
複寫使用者 `rdsgrprepladmin` 的密碼。

### 使用須知
<a name="mysql_rds_group_replication_set_recovery_channel-usage-notes"></a>

複寫使用者 `rdsgrprepladmin` 的密碼在主動-主動叢集中的所有資料庫執行個體上必須相同。對 `mysql.rds_group_replication_create_user` 的呼叫會指定密碼。

### 範例
<a name="mysql_rds_group_replication_set_recovery_channel-examples"></a>

下列範例會為主動-主動叢集設定 `group_replication_recovery` 通道：

```
CALL mysql.rds_group_replication_set_recovery_channel('password');
```

## mysql.rds\$1group\$1replication\$1start
<a name="mysql_rds_group_replication_start"></a>

在目前的資料庫執行個體上啟動群組複寫。

### 語法
<a name="mysql_rds_group_replication_start-syntax"></a>

```
CALL mysql.rds_group_replication_start(
bootstrap
);
```

### 參數
<a name="mysql_rds_group_replication_start-parameters"></a>

 *引導*   
指定要初始化新群組還是加入現有群組的值。`1` 會使用目前的資料庫執行個體初始化新群組。`0` 會連線至與資料庫執行個體相關聯的資料庫參數群組中的 `group_replication_group_seeds` 參數所定義的端點，藉以將目前的資料庫執行個體加入現有群組。

### 範例
<a name="mysql_rds_group_replication_start-examples"></a>

下列範例會使用目前的資料庫執行個體初始化新群組：

```
CALL mysql.rds_group_replication_start(1);
```

## mysql.rds\$1group\$1replication\$1stop
<a name="mysql_rds_group_replication_stop"></a>

在目前的資料庫執行個體上停止群組複寫。

### 語法
<a name="mysql_rds_group_replication_stop-syntax"></a>

```
CALL mysql.rds_group_replication_stop();
```

### 使用須知
<a name="mysql_rds_group_replication_stop-usage-notes"></a>

在一個資料庫執行個體上停止複寫，並不會影響主動-主動叢集中的任何其他資料庫執行個體。

# 管理多來源複寫
<a name="mysql-stored-proc-multi-source-replication"></a>

下列預存程序會在 RDS for MySQL 多來源複本上設定及管理複寫通道。如需更多詳細資訊，請參閱 [為 Amazon RDS for MySQL 設定多來源複寫](mysql-multi-source-replication.md)。

這些預存程序僅適用於執行下列引擎版本的 RDS for MySQL 資料庫執行個體：
+ 所有 8.4 版
+ 8.0.35 和更高的次要版本
+ 5.7.44 及更高次要版本

使用預存程序管理使用 `caching_sha2_passwword` 所設定複寫使用者的複寫時，您必須指定 `SOURCE_SSL=1` 來設定 TLS。`caching_sha2_password` 是 RDS for MySQL 8.4 的預設身分驗證外掛程式。

**注意**  
雖然本文件將來源資料庫執行個體稱為 RDS for MySQL 資料庫執行個體，但這些程序也適用於在 Amazon RDS 外部執行的 MySQL 執行個體。

**Topics**
+ [mysql.rds\$1next\$1source\$1log\$1for\$1channel](#mysql_rds_next_source_log_for_channel)
+ [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel)
+ [mysql.rds\$1set\$1external\$1source\$1for\$1channel](#mysql_rds_set_external_source_for_channel)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel](#mysql_rds_set_external_source_with_auto_position_for_channel)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel](#mysql_rds_set_external_source_with_delay_for_channel)
+ [mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel](#mysql_rds_set_source_auto_position_for_channel)
+ [mysql.rds\$1set\$1source\$1delay\$1for\$1channel](#mysql_rds_set_source_delay_for_channel)
+ [mysql.rds\$1skip\$1repl\$1error\$1for\$1channel](#mysql_rds_skip_repl_error_for_channel)
+ [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)
+ [mysql.rds\$1start\$1replication\$1until\$1for\$1channel](#mysql_rds_start_replication_until_for_channel)
+ [mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel](#mysql_rds_start_replication_until_gtid_for_channel)
+ [mysql.rds\$1stop\$1replication\$1for\$1channel](#mysql_rds_stop_replication_for_channel)

## mysql.rds\$1next\$1source\$1log\$1for\$1channel
<a name="mysql_rds_next_source_log_for_channel"></a>

將來源資料庫執行個體日誌位置變更為通道的來源資料庫執行個體上下一個二進位日誌的開頭。只有當您在多來源複本上收到複寫輸入/輸出錯誤 1236 時，才使用此程序。

### 語法
<a name="mysql_rds_next_source_log_for_channel-syntax"></a>

 

```
CALL mysql.rds_next_source_log_for_channel(
curr_master_log,
channel_name           
);
```

### 參數
<a name="mysql_rds_next_source_log_for_channel-parameters"></a>

 *curr\$1master\$1log*  
目前來源日誌檔案的索引。例如，若目前檔案的名稱是 `mysql-bin-changelog.012345`，則索引為 12345。若要查明目前來源日誌檔案名稱，請執行 `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'` 命令並檢視 `Source_Log_File` 欄位。

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_next_source_log_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_next_source_log_for_channel` 程序。例如，如果有 IO\$1Thread 錯誤，則您可以使用此程序來略過目前二進位日誌檔中的所有事件，並從 `channel_name` 中指定通道的下一個二進位日誌檔繼續複寫。

### 範例
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

假設多來源複本上的通道複寫失敗。在多來源複本上執行 `SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G` 將傳回下列結果：

```
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: ReplicationUser
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: replica-relay-bin.000003
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:.
              .
              .
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
               .
               .
                 Channel_name: channel_1
              .
              .
 -- Some fields are omitted in this example output
```

`Last_IO_Errno` 欄位顯示執行個體收到輸入/輸出錯誤 1236。`Source_Log_File` 欄位顯示檔案名稱是 `mysql-bin-changelog.012345`，這表示日誌檔案索引為 `12345`。若要解決錯誤，您可以呼叫 `mysql.rds_next_source_log_for_channel` 並指定下列參數：

```
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
```

## mysql.rds\$1reset\$1external\$1source\$1for\$1channel
<a name="mysql_rds_reset_external_source_for_channel"></a>

停止指定通道上的複寫程序，並從多來源複本中移除通道和相關聯的組態。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_reset_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_reset_external_source_for_channel (channel_name);
```

### 參數
<a name="mysql_rds_reset_external_source_for_channel-parameters"></a>

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_reset_external_source_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_reset_external_source_for_channel` 程序。此程序會刪除屬於所要移除通道的所有轉送日誌。

## mysql.rds\$1set\$1external\$1source\$1for\$1channel
<a name="mysql_rds_set_external_source_for_channel"></a>

設定 RDS for MySQL 資料庫執行個體上的複寫通道，以從另一個 RDS for MySQL 資料庫執行個體複寫資料。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

**注意**  
您可以改為使用 [mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel](#mysql_rds_set_external_source_with_delay_for_channel) 預存程序，以延遲複寫來設定此通道。

### 語法
<a name="mysql_rds_set_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_set_external_source_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , channel_name
);
```

### 參數
<a name="mysql_rds_set_external_source_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 來源資料庫執行個體的主機名稱或 IP 位址。

 *host\$1port*   
RDS for MySQL 來源資料庫執行個體所使用的連接埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
RDS for MySQL 來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於來源資料庫執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
複寫在 `mysql_binary_log_file_name` 二進位日誌中開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW BINARY LOG STATUS`，以判斷 binlog 檔案名稱和位置。  
MySQL 以前的版本使用 `SHOW MASTER STATUS` 而不是 `SHOW BINARY LOG STATUS`。如果您使用的 MySQL 是 8.4 之前的版本，請使用 `SHOW MASTER STATUS`。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *channel\$1name*   
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_set_external_source_for_channel-usage-notes"></a>

 主要使用者必須執行 `mysql.rds_set_external_source_for_channel` 程序。此程序必須在您要建立複寫通道的目標 RDS for MySQL 資料庫執行個體上執行。

 在執行 `mysql.rds_set_external_source_for_channel` 之前，請利用多來源複本所需的權限，在來源資料庫執行個體上設定複寫使用者。若要將多來源複本連線至來源資料庫執行個體，您必須指定在來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可之複寫使用者的 `replication_user_name` 和 `replication_user_password` 值。

**設定來源資料庫執行個體上的複寫使用者**

1. 使用您選擇的 MySQL 用戶端，連線至來源資料庫執行個體，並建立用於複寫的使用者帳戶。以下是範例。
**重要**  
作為安全最佳實務，請指定以下範例中所顯示預留位置值以外的密碼。

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 在來源資料庫執行個體上，請將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 'repl\$1user' 使用者。

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

若要使用加密複寫，請將來源資料庫執行個體設定為使用 SSL 連線。

呼叫 `mysql.rds_set_external_source_for_channel` 以設定此複寫通道之後，您可以呼叫複本上的 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) 來啟動通道上的複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) 以停止通道上的複寫，並從複本中移除通道組態。

當您呼叫 `mysql.rds_set_external_source_for_channel` 時，Amazon RDS 會將 `set channel source` 的時間、使用者和動作記錄在 `mysql.rds_history` 資料表中 (不含通道特定詳細資訊)，以及記錄在 `mysql.rds_replication_status` 資料表中 (含通道名稱)。此資訊僅用於內部使用和監控目的。若要記錄用於稽核目的的完整程序呼叫，請考慮根據您應用程式的特定需求啟用稽核日誌或一般日誌。

### 範例
<a name="mysql_rds_set_external_source_for_channel-examples"></a>

在 RDS for MySQL 資料庫執行個體上執行時，下列範例會設定在此資料庫執行個體上名為 `channel_1` 的複寫通道，以從主機 `sourcedb.example.com` 和連接埠 `3306` 指定的來源複寫資料。

```
call mysql.rds_set_external_source_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  0,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_external_source_with_auto_position_for_channel"></a>

在具有選用複寫延遲的 RDS for MySQL 資料庫執行個體上設定複寫通道。複寫也會以全域交易識別符 (GTID) 為依據。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
  , channel_name
);
```

### 參數
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 來源資料庫執行個體的主機名稱或 IP 位址。

 *host\$1port*   
RDS for MySQL 來源資料庫執行個體所使用的連接埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
RDS for MySQL 來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於來源資料庫執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

 *channel\$1name*   
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_external_source_with_auto_position_for_channel` 程序。此程序必須在您要建立複寫通道的目標 RDS for MySQL 資料庫執行個體上執行。

在執行 `rds_set_external_source_with_auto_position_for_channel` 之前，請利用多來源複本所需的權限，在來源資料庫執行個體上設定複寫使用者。若要將多來源複本連線至來源資料庫執行個體，您必須指定在來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可之複寫使用者的 `replication_user_name` 和 `replication_user_password` 值。

**設定來源資料庫執行個體上的複寫使用者**

1. 使用您選擇的 MySQL 用戶端，連線至來源資料庫執行個體，並建立用於複寫的使用者帳戶。以下是範例。
**重要**  
作為安全最佳實務，請指定以下範例中所顯示預留位置值以外的密碼。

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 在來源資料庫執行個體上，請將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 'repl\$1user' 使用者。

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

若要使用加密複寫，請將來源資料庫執行個體設定為使用 SSL 連線。

呼叫 `mysql.rds_set_external_source_with_auto_position_for_channel` 之前，請務必呼叫 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_gtid_purged)，以從外部來源設定具有指定 GTID 範圍的 `gtid_purged` 系統變數。

呼叫 `mysql.rds_set_external_source_with_auto_position_for_channel` 將 Amazon RDS 資料庫執行個體設定為在特定通道上僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)，以在該通道上啟動複寫程序。

呼叫 `mysql.rds_set_external_source_with_auto_position_for_channel` 以設定此複寫通道之後，您可以呼叫複本上的 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) 來啟動通道上的複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) 以停止通道上的複寫，並從複本中移除通道組態。

### 範例
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-examples"></a>

在 RDS for MySQL 資料庫執行個體上執行時，下列範例會設定在此資料庫執行個體上名為 `channel_1` 的複寫通道，以從主機 `sourcedb.example.com` 和連接埠 `3306` 指定的來源複寫資料。其會將最小複寫延遲設定為一小時 (3,600 秒)。這表示多來源複本上至少一小時不會套用來自來源 RDS for MySQL 資料庫執行個體的變更。

```
call mysql.rds_set_external_source_with_auto_position_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel
<a name="mysql_rds_set_external_source_with_delay_for_channel"></a>

在具有指定複寫延遲的 RDS for MySQL 資料庫執行個體上設定複寫通道。

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 語法
<a name="mysql_rds_set_external_source_with_delay_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_delay_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
  , channel_name
);
```

### 參數
<a name="mysql_rds_set_external_source_with_delay_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 來源資料庫執行個體的主機名稱或 IP 位址。

 *host\$1port*   
RDS for MySQL 來源資料庫執行個體所使用的連接埠。如果網路組態包含會轉換連線埠號碼的安全殼層 (SSH) 連線埠複寫，請指定 SSH 所公開的連線埠號碼。

 *replication\$1user\$1name*   
RDS for MySQL 來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可的使用者 ID。我們建議您提供單獨用於來源資料庫執行個體複寫的帳戶。

 *replication\$1user\$1password*   
`replication_user_name` 中指定之使用者 ID 的密碼。

 *mysql\$1binary\$1log\$1file\$1name*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *mysql\$1binary\$1log\$1file\$1location*   
在 `mysql_binary_log_file_name` 二進位日誌中的複寫將開始讀取複寫資訊的位置。  
您可以藉由在來源資料庫執行個體上執行 `SHOW BINARY LOG STATUS` 來判斷 binlog 檔案名稱和位置。  
MySQL 以前的版本使用 `SHOW MASTER STATUS` 而不是 `SHOW BINARY LOG STATUS`。如果您使用的 MySQL 是 8.4 之前的版本，請使用 `SHOW MASTER STATUS`。

 *ssl\$1encryption*   
此值指定在複寫連線上是否使用 Secure Socket Layer (SSL) 加密。1 指定使用 SSL 加密，0 指定不使用加密。預設為 0。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

 *channel\$1name*   
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_set_external_source_with_delay_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_external_source_with_delay_for_channel` 程序。此程序必須在您要建立複寫通道的目標 RDS for MySQL 資料庫執行個體上執行。

在執行 `mysql.rds_set_external_source_with_delay_for_channel` 之前，請利用多來源複本所需的權限，在來源資料庫執行個體上設定複寫使用者。若要將多來源複本連線至來源資料庫執行個體，您必須指定在來源資料庫執行個體上具有 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 許可之複寫使用者的 `replication_user_name` 和 `replication_user_password` 值。

**設定來源資料庫執行個體上的複寫使用者**

1. 使用您選擇的 MySQL 用戶端，連線至來源資料庫執行個體，並建立用於複寫的使用者帳戶。以下是範例。
**重要**  
作為安全最佳實務，請指定以下範例中所顯示預留位置值以外的密碼。

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 在來源資料庫執行個體上，請將 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予複寫使用者。下列範例將所有資料庫上的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 權限授予您網域中的 'repl\$1user' 使用者。

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

若要使用加密複寫，請將來源資料庫執行個體設定為使用 SSL 連線。

呼叫 `mysql.rds_set_external_source_with_delay_for_channel` 以設定此複寫通道之後，您可以呼叫複本上的 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) 來啟動通道上的複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) 以停止通道上的複寫，並從複本中移除通道組態。

當您呼叫 `mysql.rds_set_external_source_with_delay_for_channel` 時，Amazon RDS 會將 `set channel source` 的時間、使用者和動作記錄在 `mysql.rds_history` 資料表中 (不含通道特定詳細資訊)，以及記錄在 `mysql.rds_replication_status` 資料表中 (含通道名稱)。此資訊僅用於內部使用和監控目的。若要記錄用於稽核目的的完整程序呼叫，請考慮根據您應用程式的特定需求啟用稽核日誌或一般日誌。

### 範例
<a name="mysql_rds_set_external_source_with_delay_for_channel-examples"></a>

在 RDS for MySQL 資料庫執行個體上執行時，下列範例會設定在此資料庫執行個體上名為 `channel_1` 的複寫通道，以從主機 `sourcedb.example.com` 和連接埠 `3306` 指定的來源複寫資料。其會將最小複寫延遲設定為一小時 (3,600 秒)。這表示多來源複本上至少一小時不會套用來自來源 RDS for MySQL 資料庫執行個體的變更。

```
call mysql.rds_set_external_source_with_delay_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_source_auto_position_for_channel"></a>

將指定通道的複寫模式設為依據二進制日誌檔案位置或全域交易識別符 (GTID)。

### 語法
<a name="mysql_rds_set_source_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
 , channel_name
);
```

### 參數
<a name="mysql_rds_set_source_auto_position_for_channel-parameters"></a>

 *auto\$1position\$1mode*   
此值指示要使用日誌檔案位置複寫或是 GTID 複寫：  
+ `0` – 使用依據二進制日誌檔案位置的複寫模式。預設值為 `0`。
+ `1` – 使用依據 GTID 的複寫方法。

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_set_source_auto_position_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_source_auto_position_for_channel` 程序。此程序會重新啟動指定通道上的複寫，以套用指定的自動定位模式。

### 範例
<a name="mysql_rds_set_source_auto_position_for_channel-examples"></a>

下列範例會將 channel\$11 的自動定位模式設定為使用 GTID 型複寫方法。

```
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
```

## mysql.rds\$1set\$1source\$1delay\$1for\$1channel
<a name="mysql_rds_set_source_delay_for_channel"></a>

設定最低秒數，以延遲來源資料庫執行個體到指定通道多來源複本的複寫。

### 語法
<a name="mysql_rds_set_source_delay_for_channel-syntax"></a>

```
CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);
```

### 參數
<a name="mysql_rds_set_source_delay_for_channel-parameters"></a>

 *延遲*   
從來源資料庫執行個體延遲複寫的最低秒數。  
此參數的限制為一日 (86400 秒)。

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_set_source_delay_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_set_source_delay_for_channel` 程序。若要使用此程序，請先呼叫 `mysql.rds_stop_replication_for_channel` 來停止複寫。然後，呼叫此程序來設定複寫延遲值。設定延遲時，請呼叫 `mysql.rds_start_replication_for_channel` 以重新啟動複寫。

### 範例
<a name="mysql_rds_set_source_delay_for_channel-examples"></a>

下列範例會在多來源複本的 `channel_1` 上設定來源資料庫執行個體的複寫延遲至少一小時 (3,600 秒)。

```
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
```

## mysql.rds\$1skip\$1repl\$1error\$1for\$1channel
<a name="mysql_rds_skip_repl_error_for_channel"></a>

略過二進位日誌事件，並刪除指定通道之 MySQL 資料庫多來源複本上的複寫錯誤。

### 語法
<a name="mysql_rds_skip_repl_error_for_channel-syntax"></a>

 

```
CALL mysql.rds_skip_repl_error_for_channel(channel_name);
```

### 參數
<a name="mysql_rds_skip_repl_error_for_channel-parameters"></a>

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_skip_repl_error_for_channel-usage-notes"></a>

主要使用者必須在僅供讀取複本上執行 `mysql.rds_skip_repl_error_for_channel` 程序。您可以用類似的方式 `mysql.rds_skip_repl_error` 使用此程序來略過僅供讀取複本上的錯誤。如需更多詳細資訊，請參閱 [呼叫 mysql.rds\$1skip\$1repl\$1error 程序](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure)。

**注意**  
若要略過 GTID 型複寫中的錯誤，建議您改用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 程序。

若要判斷是否有錯誤，執行 MySQL `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G` 命令。如果複寫錯誤不嚴重，您可以執行 `mysql.rds_skip_repl_error_for_channel` 來略過錯誤。如果有多個錯誤，`mysql.rds_skip_repl_error_for_channel` 會刪除指定複寫通道上的第一個錯誤，然後警告還有其他錯誤。然後，您可以使用 `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G`，以針對下一個錯誤判斷正確的行動步驟。如需傳回值的相關資訊，請參閱 MySQL 文件中的 [SHOW REPLICA STATUS 陳述式](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html)。

## mysql.rds\$1start\$1replication\$1for\$1channel
<a name="mysql_rds_start_replication_for_channel"></a>

從 RDS for MySQL 資料庫執行個體開始複寫至指定通道上的多來源複本。

**注意**  
您可使用 [mysql.rds\$1start\$1replication\$1until\$1for\$1channel](#mysql_rds_start_replication_until_for_channel) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel](#mysql_rds_start_replication_until_gtid_for_channel) 預存程序從 RDS for MySQL 資料庫執行個體來啟動複寫，並從特定的二進位日誌檔案位置停止複寫。

### 語法
<a name="mysql_rds_start_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_for_channel(channel_name);
```

### 參數
<a name="mysql_rds_start_replication_for_channel-parameters"></a>

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_start_replication_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication_for_channel` 程序。從來源 RDS for MySQL 資料庫執行個體匯入資料後，請在多來源複本上執行此命令，以在指定的通道上開始複寫。

### 範例
<a name="mysql_rds_start_replication_for_channel-examples"></a>

下列範例會在多來源複本的 `channel_1` 上開始複寫。

```
CALL mysql.rds_start_replication_for_channel('channel_1');
```

## mysql.rds\$1start\$1replication\$1until\$1for\$1channel
<a name="mysql_rds_start_replication_until_for_channel"></a>

從指定通道上的 RDS for MySQL 資料庫執行個體啟動複寫，並從特定的二進位日誌檔案位置停止複寫。

### 語法
<a name="mysql_rds_start_replication_until_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
  , replication_stop_point
  , channel_name
);
```

### 參數
<a name="mysql_rds_start_replication_until_for_channel-parameters"></a>

 *replication\$1log\$1file*   
來源資料庫執行個體上包含複寫資訊之二進位日誌的名稱。

 *replication\$1stop\$1point *   
在 `replication_log_file` 二進位日誌中的複寫將停止的位置。

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_start_replication_until_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication_until_for_channel` 程序。透過此程序，隨即開始複寫，然後在達到指定的 binlog 檔案位置時停止。此程序會同時停止 `SQL_THREAD` 和 `IO_THREAD`。

`replication_log_file` 參數的指定檔名必須與來源資料庫執行個體 binlog 檔案的名稱相同。

當 `replication_stop_point` 參數指定了過去的一個停止位置，複寫即會立即停止。

### 範例
<a name="mysql_rds_start_replication_until_for_channel-examples"></a>

以下範例會啟動 `channel_1` 上的複寫並複寫變更，直到達到 `mysql-bin-changelog.000777` 二進位日誌檔案中的位置 `120` 為止。

```
call mysql.rds_start_replication_until_for_channel(
  'mysql-bin-changelog.000777',
  120,
  'channel_1'
  );
```

## mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel
<a name="mysql_rds_start_replication_until_gtid_for_channel"></a>

從 RDS for MySQL 資料庫執行個體啟動指定通道上的複寫，並在指定的全域交易識別符 (GTID) 停止複寫。

### 語法
<a name="mysql_rds_start_replication_until_gtid_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);
```

### 參數
<a name="mysql_rds_start_replication_until_gtid_for_channel-parameters"></a>

 *gtid*   
在此 GTID 後停止複寫。

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_start_replication_until_gtid_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication_until_gtid_for_channel` 程序。程序會在指定的通道上開始複寫，並將所有變更套用至指定的 GTID 值。然後，它會停止通道上的複寫。

當 `gtid` 參數指定了複本已經執行的交易時，複寫會立即停止。

執行此程序之前，您必須將 `replica_parallel_workers` 或 `slave_parallel_workers` 的值設定為 `0`，以停用多執行緒複寫。

### 範例
<a name="mysql_rds_start_replication_until_gtid_for_channel-examples"></a>

以下範例會啟動 `channel_1` 上的複寫，並複寫變更直到達到 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` 為止。

```
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
```

## mysql.rds\$1stop\$1replication\$1for\$1channel
<a name="mysql_rds_stop_replication_for_channel"></a>

從指定通道上的 MySQL 資料庫執行個體停止複寫。

### 語法
<a name="mysql_rds_stop_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_stop_replication_for_channel(channel_name);
```

### 參數
<a name="mysql_rds_stop_replication_for_channel-parameters"></a>

 *channel\$1name*   
多來源複本上複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行的單一來源 RDS for MySQL 資料庫執行個體接收二進位日誌事件。

### 使用須知
<a name="mysql_rds_stop_replication_for_channel-usage-notes"></a>

主要使用者必須執行 `mysql.rds_stop_replication_for_channel` 程序。

### 範例
<a name="mysql_rds_stop_replication_for_channel-examples"></a>

下列範例會在多來源複本的 `channel_1` 上停止複寫。

```
CALL mysql.rds_stop_replication_for_channel('channel_1');
```

# 使用 GTID 複寫交易
<a name="mysql-stored-proc-gtid"></a>

下列預存程序控制如何使用全域交易識別符 (GTID) 搭配 RDS for MySQL 複寫交易。如需有關使用 RDS for MySQL GTID 式複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

使用預存程序管理使用 `caching_sha2_password` 所設定之複寫使用者的複寫時，您必須指定 `SOURCE_SSL=1` 來設定 TLS。`caching_sha2_password` 是 RDS for MySQL 8.4 的預設身分驗證外掛程式。

**Topics**
+ [mysql.rds\$1skip\$1transaction\$1with\$1gtid](#mysql_rds_skip_transaction_with_gtid)
+ [mysql.rds\$1start\$1replication\$1until\$1gtid](#mysql_rds_start_replication_until_gtid)

## mysql.rds\$1skip\$1transaction\$1with\$1gtid
<a name="mysql_rds_skip_transaction_with_gtid"></a>

略過 MySQL 資料庫執行個體上具有指定全域交易識別碼 (GTID) 之交易的複寫。

若已知特定 GTID 交易導致錯誤，可以使用此程序進行災難復原。使用此預存程序來略過有問題的交易。有問題的交易範例包括停用複寫、刪除重要資料或導致資料庫執行個體無法使用的交易。

### 語法
<a name="mysql_rds_skip_transaction_with_gtid-syntax"></a>

 

```
CALL mysql.rds_skip_transaction_with_gtid (
gtid_to_skip
);
```

### Parameters
<a name="mysql_rds_skip_transaction_with_gtid-parameters"></a>

 *gtid\$1to\$1skip*   
要略過的複寫交易的 GTID。

### 使用須知
<a name="mysql_rds_skip_transaction_with_gtid-usage-notes"></a>

主要使用者必須執行 `mysql.rds_skip_transaction_with_gtid` 程序。

所有 RDS for MySQL 5.7 版，以及所有 RDS for MySQL 8.0 版和所有 RDS for MySQL 8.4 版都支援此程序。

### 範例
<a name="mysql_rds_skip_transaction_with_gtid-examples"></a>

下列範例會略過使用 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` 進行交易的複寫。

```
CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```

## mysql.rds\$1start\$1replication\$1until\$1gtid
<a name="mysql_rds_start_replication_until_gtid"></a>

從 RDS for MySQL 資料庫執行個體 啟動複寫，並在指定的全域交易識別碼 (GTID) 之後立即停止複寫。

### 語法
<a name="mysql_rds_start_replication_until_gtid-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_gtid(gtid);
```

### Parameters
<a name="mysql_rds_start_replication_until_gtid-parameters"></a>

 *gtid*   
在此 GTID 後停止複寫。

### 使用須知
<a name="mysql_rds_start_replication_until_gtid-usage-notes"></a>

主要使用者必須執行 `mysql.rds_start_replication_until_gtid` 程序。

所有 RDS for MySQL 5.7 版，以及所有 RDS for MySQL 8.0 版和所有 RDS for MySQL 8.4 版都支援此程序。

您可以透過延遲複寫來使用此程序進行災難復原。若您已延遲複寫設定，您可使用此程序變更延遲的僅供讀取複本，並向前捲動到災難發生前的時間點。在此程序停止複寫後，您可使用 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md) 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

您可使用以下預存程序來設定延遲複寫：
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB 和 RDS for MySQL 主要版本 8.0 及更低版本)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS for MySQL 主要版本 8.4 及更新版本)](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay)

當 `gtid` 參數指定了複本已經執行的交易時，複寫會立即停止。

### 範例
<a name="mysql_rds_start_replication_until_gtid-examples"></a>

以下範例會啟動複寫並複寫變更，直到達到 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` 為止。

```
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```

# 輪換查詢日誌
<a name="mysql-stored-proc-logging"></a>

下列預存程序會將 MySQL 日誌輪換為備份資料表。如需更多詳細資訊，請參閱 [ MySQL資料庫日誌檔案](USER_LogAccess.Concepts.MySQL.md)。

**Topics**
+ [mysql.rds\$1rotate\$1general\$1log](#mysql_rds_rotate_general_log)
+ [mysql.rds\$1rotate\$1slow\$1log](#mysql_rds_rotate_slow_log)

## mysql.rds\$1rotate\$1general\$1log
<a name="mysql_rds_rotate_general_log"></a>

將 `mysql.general_log` 資料表輪換至備份資料表。

### 語法
<a name="mysql_rds_rotate_general_log-syntax"></a>

 

```
CALL mysql.rds_rotate_general_log;
```

### 使用須知
<a name="mysql_rds_rotate_general_log-usage-notes"></a>

您可以呼叫 `mysql.general_log` 程序，將 `mysql.rds_rotate_general_log` 資料表輪換至備份資料表。輪換日誌資料表時，目前日誌資料表會複製到備份日誌資料表，並移除目前日誌資料表中的項目。如果備份日誌資料表已存在，則其會在目前日誌資料表複製到備份之前遭到刪除。如有需要，您可以查詢備份日誌資料表。`mysql.general_log` 資料表的備份日誌資料表名為 `mysql.general_log_backup`。

當 `log_output` 參數設定為 `TABLE` 時，您僅可執行此程序。

## mysql.rds\$1rotate\$1slow\$1log
<a name="mysql_rds_rotate_slow_log"></a>

將 `mysql.slow_log` 資料表輪換至備份資料表。

### 語法
<a name="mysql_rds_rotate_slow_log-syntax"></a>

 

```
CALL mysql.rds_rotate_slow_log;
```

### 使用須知
<a name="mysql_rds_rotate_slow_log-usage-notes"></a>

您可以呼叫 `mysql.slow_log` 程序，將 `mysql.rds_rotate_slow_log` 資料表輪換至備份資料表。輪換日誌資料表時，目前日誌資料表會複製到備份日誌資料表，並移除目前日誌資料表中的項目。如果備份日誌資料表已存在，則其會在目前日誌資料表複製到備份之前遭到刪除。

如有需要，您可以查詢備份日誌資料表。`mysql.slow_log` 資料表的備份日誌資料表名為 `mysql.slow_log_backup`。

# 設定和顯示二進位日誌組態
<a name="mysql-stored-proc-configuring"></a>

下列預存程序會設定並顯示組態參數，例如二進位日誌檔案保留。

**Topics**
+ [mysql.rds\$1set\$1configuration](#mysql_rds_set_configuration)
+ [mysql.rds\$1show\$1configuration](#mysql_rds_show_configuration)

## mysql.rds\$1set\$1configuration
<a name="mysql_rds_set_configuration"></a>

指定保留二進位日誌的小時數，或延遲複寫的秒數。

### 語法
<a name="mysql_rds_set_configuration-syntax"></a>

 

```
CALL mysql.rds_set_configuration(name,value);
```

### Parameters
<a name="mysql_rds_set_configuration-parameters"></a>

 *name*   
要設定之組態參數的名稱。

 *value*   
組態參數的值。

### 使用須知
<a name="mysql_rds_set_configuration-usage-notes"></a>

`mysql.rds_set_configuration` 程序支援下列組態參數：
+ [binlog 保留 (小時)](#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)
+ [來源延遲](#mysql_rds_set_configuration-usage-notes.source-delay)
+ [目標延遲](#mysql_rds_set_configuration-usage-notes.target-delay)

組態參數會永久存放，且在任何資料庫執行個體重新啟動或容錯移轉後依然存在。

#### binlog 保留 (小時)
<a name="mysql_rds_set_configuration-usage-notes.binlog-retention-hours"></a>

`binlog retention hours` 參數用於指定保留二進位日誌檔的小時數。Amazon RDS 通常會儘快清除二進位日誌，但複寫 RDS 外部的 MySQL 資料庫時可能仍需要二進位日誌。

`binlog retention hours` 的預設值為 `NULL`。對於 RDS for MySQL，`NULL` 意味著不會保留二進位日誌 (0 小時)。

若要指定在資料庫執行個體上保留二進位日誌的時數，請使用 `mysql.rds_set_configuration` 預存程序，並指定讓複寫有足夠時間進行的期間，如下列範例所示。

`call mysql.rds_set_configuration('binlog retention hours', 24);`

**注意**  
不可針對 `binlog retention hours` 使用值 `0`。

若為 MySQL 資料庫執行個體，`binlog retention hours` 最大值為 168 (7 天)。

設定保留期間之後，請監控資料庫執行個體的儲存體用量，確定保留的二進位日誌沒有佔用太多儲存體。

對於多可用區域資料庫叢集部署，您只能從寫入器資料庫執行個體設定二進位日誌保留，且該設定會以非同步方式傳播至所有讀取器資料庫執行個體。如果資料庫叢集上的二進位日誌超過本機儲存空間總和的一半，Amazon RDS 會自動將過時日誌移至 EBS 磁碟區。不過，最新的日誌會保留在本機儲存體中，因此如果發生需要主機替換的故障，或者您向上或向下擴展資料庫，它們可能會遺失。

#### 來源延遲
<a name="mysql_rds_set_configuration-usage-notes.source-delay"></a>

在僅供讀取複本中使用 `source delay` 參數，來指定延遲幾秒後僅供讀取複本才會複寫至其來源資料庫執行個體。Amazon RDS 通常會盡快複寫變更，但您可能想要某些環境延遲複寫。例如，當延遲複寫時，您可以將延遲的僅供讀取複本向前捲動到災難發生的時間點之前。若資料表被意外的捨棄，您可以使用延遲的複寫快速將其復原。`target delay` 的預設值為 `0` (不延遲複寫)。

當您使用此參數時，它會執行 [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) 並套用 CHANGE primary TO MASTER\$1DELAY = input value。如果成功，程序會將 `source delay` 參數儲存到 `mysql.rds_configuration` 資料表。

若要指定 Amazon RDS 延遲複寫至來源資料庫執行個體的秒數，請使用 `mysql.rds_set_configuration` 預存程序，並指定延遲複寫的秒數。在下列範例中，複寫會延遲至少一小時 (3,600 秒)。

`call mysql.rds_set_configuration('source delay', 3600);`

此程序接著執行 `mysql.rds_set_source_delay(3600)`。

`source delay` 參數的限制為一日 (86400 秒)。

#### 目標延遲
<a name="mysql_rds_set_configuration-usage-notes.target-delay"></a>

使用 `target delay` 參數，指定要延遲幾秒後才會在資料庫執行個體與從這個執行個體建立的任何未來 RDS 受管僅供讀取複本之間進行複寫。非 RSS 受管僅供讀取複本會忽略此參數。Amazon RDS 通常會盡快複寫變更，但您可能想要某些環境延遲複寫。例如，當延遲複寫時，您可以將延遲的僅供讀取複本向前捲動到災難發生的時間點之前。若資料表被意外的捨棄，您可以使用延遲的複寫快速將其復原。`target delay` 的預設值為 `0` (不延遲複寫)。

進行災難復原時，您可以使用此組態參數搭配 [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 預存程序或 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序。若要將延遲的僅供讀取複本向前捲動到災難發生前的時間點，您可執行 `mysql.rds_set_configuration` 程序搭配此參數集。在 `mysql.rds_start_replication_until` 或 `mysql.rds_start_replication_until_gtid` 程序停止複寫後，您可使用[提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 `mysql.rds_rds_start_replication_until_gtid` 程序，需啟用依據 GTID 的複寫。若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 預存程序。如需有關依據 GTID 複寫的詳細資訊，請參閱[使用 GTID 式複寫](mysql-replication-gtid.md)。

若要指定 Amazon RDS 秒數以延遲至僅供讀取複本的複寫，請使用 `mysql.rds_set_configuration` 預存程序，並指定延遲複寫秒數。下列範例指定了已延遲至少一小時 (3600 秒) 的複寫。

`call mysql.rds_set_configuration('target delay', 3600);`

`target delay` 參數的限制為一日 (86400 秒)。

## mysql.rds\$1show\$1configuration
<a name="mysql_rds_show_configuration"></a>

保留二進位日誌的時數。

### 語法
<a name="mysql_rds_show_configuration-syntax"></a>

 

```
CALL mysql.rds_show_configuration;
```

### 使用須知
<a name="mysql_rds_show_configuration-usage-notes"></a>

若要驗證 Amazon RDS 保留二進位日誌的時數，請使用 `mysql.rds_show_configuration` 預存程序。

### 範例
<a name="mysql_rds_show_configuration-examples"></a>

下列範例顯示保留期間：

```
call mysql.rds_show_configuration;
                name                         value     description
                binlog retention hours       24        binlog retention hours specifies the duration in hours before binary logs are automatically deleted.
```

# 預備 InnoDB 快取
<a name="mysql-stored-proc-warming"></a>

下列預存程序會在 RDS for MySQL 資料庫執行個體上儲存、載入或取消載入 InnoDB 緩衝集區。如需更多詳細資訊，請參閱 [Amazon RDS 上 MySQL 的 InnoDB 快取預備](MySQL.Concepts.FeatureSupport.md#MySQL.Concepts.InnoDBCacheWarming)。

**Topics**
+ [mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now](#mysql_rds_innodb_buffer_pool_dump_now)
+ [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort](#mysql_rds_innodb_buffer_pool_load_abort)
+ [mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now](#mysql_rds_innodb_buffer_pool_load_now)

## mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now
<a name="mysql_rds_innodb_buffer_pool_dump_now"></a>

將目前的緩衝集區狀態傾出至磁碟。

### 語法
<a name="mysql_rds_innodb_buffer_pool_dump_now-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_dump_now();
```

### 使用須知
<a name="mysql_rds_innodb_buffer_pool_dump_now-usage"></a>

主要使用者必須執行 `mysql.rds_innodb_buffer_pool_dump_now` 程序。

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort
<a name="mysql_rds_innodb_buffer_pool_load_abort"></a>

正在載入已儲存的緩衝集區狀態時取消載入。

### 語法
<a name="mysql_rds_innodb_buffer_pool_load_abort-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_load_abort();
```

### 使用須知
<a name="mysql_rds_innodb_buffer_pool_load_abort-usage"></a>

主要使用者必須執行 `mysql.rds_innodb_buffer_pool_load_abort` 程序。

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now
<a name="mysql_rds_innodb_buffer_pool_load_now"></a>

從磁碟載入已儲存的緩衝集區狀態。

### 語法
<a name="mysql_rds_innodb_buffer_pool_load_now-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_load_now();
```

### 使用須知
<a name="mysql_rds_innodb_buffer_pool_load_now-usage"></a>

主要使用者必須執行 `mysql.rds_innodb_buffer_pool_load_now` 程序。