

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

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

您可以在連線至 Aurora MySQL 叢集中的主要執行個體時呼叫以下預存程序。這些程序控制了外部資料庫的交易複製到 Aurora MySQL 中，或從 Aurora MySQL 複製到外部資料庫的方式。

**Topics**
+ [mysql.rds\$1disable\$1session\$1binlog (Aurora MySQL 2 版)](#mysql_rds_disable_session_binlog)
+ [mysql.rds\$1enable\$1session\$1binlog (Aurora MySQL 2 版)](#mysql_rds_enable_session_binlog)
+ [mysql.rds\$1import\$1binlog\$1ssl\$1material](#mysql_rds_import_binlog_ssl_material)
+ [mysql.rds\$1next\$1master\$1log (Aurora MySQL 版本 2)](#mysql_rds_next_master_log)
+ [mysql.rds\$1next\$1source\$1log (Aurora MySQL 第 3 版)](#mysql_rds_next_source_log)
+ [mysql.rds\$1remove\$1binlog\$1ssl\$1material](#mysql_rds_remove_binlog_ssl_material)
+ [mysql.rds\$1reset\$1external\$1master (Aurora MySQL 第 2 版)](#mysql_rds_reset_external_master)
+ [mysql.rds\$1reset\$1external\$1source (Aurora MySQL 第 3 版)](#mysql_rds_reset_external_source)
+ [mysql.rds\$1set\$1binlog\$1source\$1ssl (Aurora MySQL 第 3 版)](#mysql_rds_set_binlog_source_ssl)
+ [mysql.rds\$1set\$1external\$1master (Aurora MySQL 第 2 版)](#mysql_rds_set_external_master)
+ [mysql.rds\$1set\$1external\$1source (Aurora MySQL 第 3 版)](#mysql_rds_set_external_source)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (Aurora MySQL 第 2 版)](#mysql_rds_set_external_master_with_auto_position)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (Aurora MySQL 第 3 版)](#mysql_rds_set_external_source_with_auto_position)
+ [mysql.rds\$1set\$1master\$1auto\$1position (Aurora MySQL 第 2 版）](#mysql_rds_set_master_auto_position)
+ [mysql.rds\$1set\$1read\$1only (Aurora MySQL 第 3 版)](#mysql_rds_set_read_only)
+ [mysql.rds\$1set\$1session\$1binlog\$1format (Aurora MySQL 2 版)](#mysql_rds_set_session_binlog_format)
+ [mysql.rds\$1set\$1source\$1auto\$1position (Aurora MySQL 第 3 版)](#mysql_rds_set_source_auto_position)
+ [mysql.rds\$1skip\$1repl\$1error](#mysql_rds_skip_repl_error)
+ [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)
+ [mysql.rds\$1start\$1replication\$1until(Aurora MySQL 第 3 版）](#mysql_rds_start_replication_until)
+ [mysql.rds\$1stop\$1replication](#mysql_rds_stop_replication)

## mysql.rds\$1disable\$1session\$1binlog (Aurora MySQL 2 版)
<a name="mysql_rds_disable_session_binlog"></a>

透過將 `sql_log_bin` 變數設定為 `OFF` 以關閉目前工作階段的二進位記錄。

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

```
CALL mysql.rds_disable_session_binlog;
```

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

無

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

針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

針對 Aurora，Aurora MySQL 2.12 版和更新的相容版本 MySQL 5.7 支援此程序。

**注意**  
在 Aurora MySQL 第 3 版中，如果您有 `SESSION_VARIABLES_ADMIN` 權限，您可以使用下列命令來停用目前工作階段的二進制記錄：  

```
SET SESSION sql_log_bin = OFF;
```

## mysql.rds\$1enable\$1session\$1binlog (Aurora MySQL 2 版)
<a name="mysql_rds_enable_session_binlog"></a>

透過將 `sql_log_bin` 變數設定為 `ON` 以開啟目前工作階段的二進位記錄。

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

```
CALL mysql.rds_enable_session_binlog;
```

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

無

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

針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

針對 Aurora，Aurora MySQL 2.12 版和更新的相容版本 MySQL 5.7 支援此程序。

**注意**  
在 Aurora MySQL 第 3 版中，如果您有 `SESSION_VARIABLES_ADMIN` 權限，您可以使用下列命令來啟用目前工作階段的二進制記錄：  

```
SET SESSION sql_log_bin = ON;
```

## mysql.rds\$1import\$1binlog\$1ssl\$1material
<a name="mysql_rds_import_binlog_ssl_material"></a>

將憑證授權單位憑證、用戶端憑證和用戶端金鑰匯入 Aurora MySQL 資料庫叢集。SSL 通訊和加密複寫需要這些資訊。

**注意**  
目前，下列 Aurora MySQL 版本支援此程序：第二版：2.09.2、2.10.0、2.10.1 和 2.11.0；以及第 3 版：3.01.1 及更新版本。

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

 

```
CALL mysql.rds_import_binlog_ssl_material (
  ssl_material
);
```

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

 *ssl\$1material*   
JSON 承載，其中包含 MySQL 用戶端的以下 .pem 格式檔案的內容：  
+ "ssl\$1ca"："*憑證授權單位憑證*"
+ "ssl\$1cert"："*用戶端憑證*"
+ "ssl\$1key"："*用戶端金鑰*"

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

執行此程序之前為加密複寫做好準備：
+ 如果您在外部 MySQL 來源資料庫執行個體上未啟用 SSL，也沒有準備用戶端金鑰和用戶端憑證，請在 MySQL 資料庫伺服器上啟用 SSL，並產生所需的用戶端金鑰和用戶端憑證。
+ 如果外部來源資料庫執行個體上已啟用 SSL，請為 Aurora MySQL 資料庫叢集提供用戶端金鑰和憑證。如果您沒有這些資料，請為 Aurora MySQL 資料庫叢集產生新的金鑰和憑證。若要簽署用戶端憑證，您必須有用於外部 MySQL 來源資料庫執行個體上設定 SSL 的憑證授權單位金鑰。

如需詳細資訊，請參閱 MySQL 文件中的[使用 openssl 建立 SSL 憑證和金鑰](https://dev.mysql.com/doc/refman/8.0/en/creating-ssl-files-using-openssl.html)。

**重要**  
為加密複寫做好準備之後，使用 SSL 連線來執行此程序。不可透過不安全的連線來傳送用戶端金鑰。

此程序將外部 MySQL 資料庫中的 SSL 資訊匯入 Aurora MySQL 資料庫叢集。SSL 資訊是 .pem 格式檔案，其中包含 Aurora MySQL 資料庫叢集的 SSL 資訊。在加密複寫期間，Aurora MySQL 資料庫叢集充當 MySQL 資料庫伺服器的用戶端。Aurora MySQL 用戶端的憑證和金鑰位於 .pem 格式的檔案中。

您可以將這些檔案中的資訊複製到正確 JSON 承載中的 `ssl_material` 參數。若要支援加密複寫，請將此 SSL 資訊匯入 Aurora MySQL 資料庫叢集。

JSON 承載必須採用下列格式。

```
'{"ssl_ca":"-----BEGIN CERTIFICATE-----
ssl_ca_pem_body_code
-----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE-----
ssl_cert_pem_body_code
-----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY-----
ssl_key_pem_body_code
-----END RSA PRIVATE KEY-----\n"}'
```

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

下列範例將 SSL 資訊匯入 Aurora MySQL。在 .pem 格式檔案中，內文程式碼通常比範例所示的內文程式碼更長。

```
call mysql.rds_import_binlog_ssl_material(
'{"ssl_ca":"-----BEGIN CERTIFICATE-----
AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
-----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE-----
AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
-----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY-----
AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
-----END RSA PRIVATE KEY-----\n"}');
```

## mysql.rds\$1next\$1master\$1log (Aurora MySQL 版本 2)
<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` 會導致僅供讀取複本遺失資料。

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

假設 Aurora 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 (Aurora MySQL 第 3 版)
<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`，以降低此情況發生的機率，雖然這麼做會降低效能。

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

假設 Aurora 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\$1remove\$1binlog\$1ssl\$1material
<a name="mysql_rds_remove_binlog_ssl_material"></a>

移除用於 SSL 通訊和加密複寫的憑證授權單位憑證、用戶端憑證和用戶端金鑰。此資訊是利用 [mysql.rds\$1import\$1binlog\$1ssl\$1material](#mysql_rds_import_binlog_ssl_material) 來匯入。

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

 

```
CALL mysql.rds_remove_binlog_ssl_material;
```

## mysql.rds\$1reset\$1external\$1master (Aurora MySQL 第 2 版)
<a name="mysql_rds_reset_external_master"></a>

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

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon Aurora 中的資料庫參數群組中的參數](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 外部執行的 MySQL 執行個體啟用複寫。如果可能，建議您使用 Aurora 複本來管理 Aurora MySQL 資料庫叢集內的複寫。如需 Aurora MySQL 資料庫叢集中管理複寫的相關資訊，請參閱 [使用 Aurora 複本](AuroraMySQL.Replication.md#AuroraMySQL.Replication.Replicas)。

如需使用複寫從 Aurora MySQL 外部執行的 MySQL 執行個體匯入資料的詳細資訊，請參閱 [Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)](AuroraMySQL.Replication.MySQL.md)。

## mysql.rds\$1reset\$1external\$1source (Aurora MySQL 第 3 版)
<a name="mysql_rds_reset_external_source"></a>

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

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon Aurora 中的資料庫參數群組中的參數](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 外部執行的 MySQL 執行個體啟用複寫。如果可能，建議您使用 Aurora 複本來管理 Aurora MySQL 資料庫叢集內的複寫。如需 Aurora MySQL 資料庫叢集中管理複寫的相關資訊，請參閱 [使用 Aurora 複本](AuroraMySQL.Replication.md#AuroraMySQL.Replication.Replicas)。

## mysql.rds\$1set\$1binlog\$1source\$1ssl (Aurora MySQL 第 3 版)
<a name="mysql_rds_set_binlog_source_ssl"></a>

針對 binlog 複寫啟用 `SOURCE_SSL` 加密。如需詳細資訊，請參閱 MySQL 文件中的 [CHANGE REPLICATION SOURCE TO 陳述式](https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html)。

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

```
CALL mysql.rds_set_binlog_source_ssl(mode);
```

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

*模式*  
指出是否啟用 `SOURCE_SSL` 加密的值：  
+ `0` – `SOURCE_SSL` 加密已停用。預設值為 `0`。
+ `1` – `SOURCE_SSL` 加密已啟用。您可以使用 SSL 或 TLS 設定加密。

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

Aurora MySQL 3.04 版及更新版本支援此程序。

## mysql.rds\$1set\$1external\$1master (Aurora MySQL 第 2 版)
<a name="mysql_rds_set_external_master"></a>

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

`mysql.rds_set_external_master` 程序已棄用，且會在未來版本中將其移除。請改用 `mysql.rds\$1set\$1external\$1source`。

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

### 語法
<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 連線。此外，使用 [mysql.rds\$1import\$1binlog\$1ssl\$1material](#mysql_rds_import_binlog_ssl_material) 程序，將憑證認證機構憑證、用戶端憑證和用戶端金鑰匯入資料庫執行個體或資料庫叢集。

**注意**  
我們提供這些預存程序主要是為了對 Amazon RDS 外部執行的 MySQL 執行個體啟用複寫。如果可能，建議您使用 Aurora 複本來管理 Aurora MySQL 資料庫叢集內的複寫。如需 Aurora MySQL 資料庫叢集中管理複寫的相關資訊，請參閱 [使用 Aurora 複本](AuroraMySQL.Replication.md#AuroraMySQL.Replication.Replicas)。

呼叫 `mysql.rds_set_external_master` 將 Amazon RDS 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1master (Aurora MySQL 第 2 版)](#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 (Aurora MySQL 第 3 版)
<a name="mysql_rds_set_external_source"></a>

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

**重要**  
若要執行此程序，必須啟用 `autocommit`。若要啟用它，請將 `autocommit` 參數設定為 `1`。如需修改參數的相關資訊，請參閱[修改 Amazon Aurora 中的資料庫參數群組中的參數](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。  
您必須使用 [mysql.rds\$1import\$1binlog\$1ssl\$1material](#mysql_rds_import_binlog_ssl_material) 匯入自訂 SSL 憑證，才能啟用此選項。如果您尚未匯入自訂 SSL 憑證，請將此參數設為 0，並使用 [mysql.rds\$1set\$1binlog\$1source\$1ssl (Aurora MySQL 第 3 版)](#mysql_rds_set_binlog_source_ssl) 以針對二進制日誌複寫啟用 SSL。  
不支援 `SOURCE_SSL_VERIFY_SERVER_CERT` 選項。此選項設定為 0，表示連線已加密，但憑證未經過驗證。

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

管理使用者必須執行 `mysql.rds_set_external_source` 程序。此程序必須在要設定為 MySQL 執行個體 (在 Amazon RDS 外部執行) 之僅供讀取複本的 Aurora 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 外部執行的 MySQL 執行個體啟用複寫。如果可能，建議您使用 Aurora 複本來管理 Aurora MySQL 資料庫叢集內的複寫。如需 Aurora MySQL 資料庫叢集中管理複寫的相關資訊，請參閱 [使用 Aurora 複本](AuroraMySQL.Replication.md#AuroraMySQL.Replication.Replicas)。

呼叫 `mysql.rds_set_external_source` 將 Aurora MySQL 資料庫執行個體設定為僅供讀取複本之後，您可以在僅供讀取複本上呼叫 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) 來啟動複寫程序。您可以呼叫 [mysql.rds\$1reset\$1external\$1source (Aurora MySQL 第 3 版)](#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>

在 Aurora 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 (Aurora MySQL 第 2 版)
<a name="mysql_rds_set_external_master_with_auto_position"></a>

設定 Aurora MySQL 主要執行個體以接受從外部 MySQL 執行個體傳入的複寫。此程序也會依據全域交易識別符 (GTID) 設定複寫。

此程序不會設定延遲複寫，因為 Aurora MySQL 不支援延遲複寫。

### 語法
<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
);
```

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

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

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

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

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

*ssl\$1encryption*  
此選項目前尚未實作。預設值為 0。

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

針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

主要使用者必須執行 `mysql.rds_set_external_master_with_auto_position` 程序。主要使用者會在做為複寫目標的 Aurora MySQL 資料庫叢集主要執行個體上執行此程序。這可能是外部 MySQL 資料庫執行個體或 Aurora MySQL 資料庫叢集的複本目標。

Aurora MySQL 第 2 版支援此程序。對於 Aurora MySQL 第 3 版，請改用 [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (Aurora MySQL 第 3 版)](#mysql_rds_set_external_source_with_auto_position)。

在您執行 `mysql.rds_set_external_master_with_auto_position` 前，請將外部 MySQL 資料庫執行個體設定為複寫來源。如要連線至外部 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.rds_set_external_master_with_auto_position` 時，Amazon RDS 會記錄特定資訊。此資訊為時間、使用者，以及 `"set master"` 和 `mysql.rds_history` 資料表中的 `mysql.rds_replication_status` 動作。

若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid(Aurora MySQL 第 2 版和第 3 版）](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>

 在 Aurora 主要執行個體上執行時，下列範例會將 Aurora 叢集設定為 MySQL 執行個體 (在 Aurora 外部執行) 的僅供讀取複本。

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

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (Aurora MySQL 第 3 版)
<a name="mysql_rds_set_external_source_with_auto_position"></a>

設定 Aurora MySQL 主要執行個體以接受從外部 MySQL 執行個體傳入的複寫。此程序也會依據全域交易識別符 (GTID) 設定複寫。

### 語法
<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
);
```

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

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

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

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

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

*ssl\$1encryption*  
此選項目前尚未實作。預設值為 0。  
使用 [mysql.rds\$1set\$1binlog\$1source\$1ssl (Aurora MySQL 第 3 版)](#mysql_rds_set_binlog_source_ssl) 以針對二進制日誌複寫啟用 SSL。

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

 針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

 管理使用者必須執行 `mysql.rds_set_external_source_with_auto_position` 程序。管理使用者會在做為複寫目標的 Aurora MySQL 資料庫叢集主要執行個體上執行此程序。這可能是外部 MySQL 資料庫執行個體或 Aurora MySQL 資料庫叢集的複本目標。

Aurora MySQL 第 3 版支援此程序。此程序不會設定延遲複寫，因為 Aurora MySQL 不支援延遲複寫。

 在您執行 `mysql.rds_set_external_source_with_auto_position` 前，請將外部 MySQL 資料庫執行個體設定為複寫來源。如要連線至外部 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.rds_set_external_source_with_auto_position` 時，Amazon RDS 會記錄特定資訊。此資訊為時間、使用者，以及 `"set master"` 和 `mysql.rds_history` 資料表中的 `mysql.rds_replication_status` 動作。

 若要略過已知會導致災難的特定 GTID 型交易，可以使用 [mysql.rds\$1skip\$1transaction\$1with\$1gtid(Aurora MySQL 第 2 版和第 3 版）](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>

 在 Aurora 主要執行個體上執行時，下列範例會將 Aurora 叢集設定為 MySQL 執行個體 (在 Aurora 外部執行) 的僅供讀取複本。

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

## mysql.rds\$1set\$1master\$1auto\$1position (Aurora MySQL 第 2 版）
<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` 程序。

Aurora MySQL 第 2 版支援此程序。

## mysql.rds\$1set\$1read\$1only (Aurora MySQL 第 3 版)
<a name="mysql_rds_set_read_only"></a>

針對資料庫執行個體全域開啟或關閉 `read_only` 模式。

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

```
CALL mysql.rds_set_read_only(mode);
```

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

*模式*  
指出針對資料庫執行個體全域開啟或關閉 `read_only` 模式的值：  
+ `0` – `OFF`。預設值為 `0`。
+ `1` – `ON`

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

`mysql.rds_set_read_only` 預存程序只會修改 `read_only` 參數。`innodb_read_only` 參數無法在讀取器資料庫執行個體上變更。

`read_only` 參數變更不會在重新啟動時保留。若要對 `read_only` 進行永久變更，您必須使用 `read_only` 資料庫叢集參數。

Aurora MySQL 3.04 版及更新版本支援此程序。

## mysql.rds\$1set\$1session\$1binlog\$1format (Aurora MySQL 2 版)
<a name="mysql_rds_set_session_binlog_format"></a>

設定目前工作階段的二進位日誌格式。

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

```
CALL mysql.rds_set_session_binlog_format(format);
```

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

*format*  
指示目前工作階段的二進位日誌格式的值：  
+ `STATEMENT` – 複寫來源會根據 SQL 陳述式將事件寫入二進位日誌。
+ `ROW` – 複寫來源會將事件寫入二進位日誌，指示個別資料表資料列的變更。
+ `MIXED` – 日誌記錄通常以 SQL 陳述式為基礎，但在特定條件下會切換至資料列。如需詳細資訊，請參閱 MySQL 文件中的[混合式二進位日誌格式](https://dev.mysql.com/doc/refman/8.0/en/binary-log-mixed.html)。

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

針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

若要使用這個預存程序，您必須為目前的工作階段設定二進位日誌。

針對 Aurora，Aurora MySQL 2.12 版和更新的相容版本 MySQL 5.7 支援此程序。

## mysql.rds\$1set\$1source\$1auto\$1position (Aurora MySQL 第 3 版)
<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>

針對 Aurora MySQL 資料庫叢集，您可在連線至主要執行個體時呼叫此預存程序。

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

## 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` 程序。如需有關此程序的詳細資訊，請參閱[略過目前的複寫錯誤](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#Appendix.MySQL.CommonDBATasks.SkipError)。

若要判斷是否有錯誤，執行 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)。

如需有關解決 Aurora MySQL 複寫錯誤的詳細資訊，請參閱 [診斷和解決 MySQL 讀取複寫失敗](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.RR)。

#### 複寫已停止錯誤
<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>

從 Aurora MySQL 資料庫叢集起始複寫。

**注意**  
您可使用 [mysql.rds\$1start\$1replication\$1until(Aurora MySQL 第 3 版）](#mysql_rds_start_replication_until) 或 [mysql.rds\$1start\$1replication\$1until\$1gtid(Aurora MySQL 第 3 版）](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 預存程序從 Aurora 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 (Aurora MySQL 第 2 版)](#mysql_rds_set_external_master) 或 [mysql.rds\$1set\$1external\$1source (Aurora MySQL 第 3 版)](#mysql_rds_set_external_source) 來建置複寫組態，再呼叫僅供讀取複本上的 `mysql.rds_start_replication` 來啟動複寫程序。如需詳細資訊，請參閱[Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)](AuroraMySQL.Replication.MySQL.md)。

若要將資料匯出至 Amazon RDS 外部的 MySQL 執行個體，請在僅供讀取複本上呼叫 `mysql.rds_start_replication` 和 `mysql.rds_stop_replication` 來控制某些複寫動作，例如清除二進位日誌。如需詳細資訊，請參閱[Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)](AuroraMySQL.Replication.MySQL.md)。

您也可以對僅供讀取複本呼叫 `mysql.rds_start_replication`，以重新啟動您先前呼叫 `mysql.rds_stop_replication` 所停止的任何複寫程序。如需詳細資訊，請參閱[複寫已停止錯誤](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.ReplicationStopped)。

## mysql.rds\$1start\$1replication\$1until(Aurora MySQL 第 3 版）
<a name="mysql_rds_start_replication_until"></a>

從 Aurora 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` 程序。

Aurora MySQL 3.04 版及更新版本支援此程序。

受管複寫不支援 `mysql.rds_start_replication_until` 預存程序，其中包括下列項目：
+ [跨 AWS 區域 複寫 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Replication.CrossRegion.md)
+ [使用 Aurora 讀取複本，從 RDS for MySQL 資料庫執行個體將資料遷移至 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

`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` 來停止複寫程序。如需詳細資訊，請參閱[Aurora 與 MySQL 之間或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位複寫)](AuroraMySQL.Replication.MySQL.md)。

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

受管複寫不支援 `mysql.rds_stop_replication` 預存程序，其中包括下列項目：
+ [跨 AWS 區域 複寫 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Replication.CrossRegion.md)
+ [使用 Aurora 讀取複本，從 RDS for MySQL 資料庫執行個體將資料遷移至 Amazon Aurora MySQL 資料庫叢集](AuroraMySQL.Migrating.RDSMySQL.Replica.md)