

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

# 設定 Aurora MySQL 的增強型 binlog
<a name="AuroraMySQL.Enhanced.binlog"></a>

增強型 Binlog 可減少開啟 Binlog 所造成的運算效能額外負荷，在某些情況下最高可達 50%。使用增強型 Binlog，此額外負荷可以減少至大約 13%。為了減少額外負荷，增強型 Binlog 會將二進位和交易日誌平行寫入至儲存體，這會將交易認可時寫入的資料降到最低。

相較於社群 MySQL Binlog，使用增強型 Binlog 還可以改善重新啟動和容錯移轉後的資料庫復原時間，最高可達 99％。增強型 Binlog 與現有的 Binlog 型工作負載相容，而且您與其互動的方式同於與社群 MySQL Binlog 互動的方式。

增強型 binlog 可在 Aurora MySQL 3.03.1 版及更新版本上使用。

**Topics**
+ [設定增強型 Binlog 參數](#AuroraMySQL.Enhanced.binlog.enhancedbinlog.parameters)
+ [其他相關參數](#AuroraMySQL.Enhanced.binlog.other.parameters)
+ [增強型 Binlog 與社群 MySQL Binlog 之間的差異](#AuroraMySQL.Enhanced.binlog.differences)
+ [增強型 Binlog 的 Amazon CloudWatch 指標](#AuroraMySQL.Enhanced.binlog.cloudwatch.metrics)
+ [增強型 Binlog 限制](#AuroraMySQL.Enhanced.binlog.limitations)

## 設定增強型 Binlog 參數
<a name="AuroraMySQL.Enhanced.binlog.enhancedbinlog.parameters"></a>

您可以透過開啟/關閉增強型 Binlog 參數，在社群 MySQL Binlog 與增強型 Binlog 之間切換。現有的 Binlog 取用者可以繼續讀取和取用 Binlog 檔案，而不會在 Binlog 檔案序列中有任何間隙。

若要開啟增強型 binlog，請設定下列參數：


| 參數 | 預設 | 描述 | 
| --- | --- | --- | 
| binlog\$1format | – | 將 binlog\$1format 參數設定為您選擇的二進位記錄格式，以開啟增強型 Binlog。確定 binlog\$1format parameter 未設定為 OFF。如需詳細資訊，請參閱[設定 Aurora MySQL 二進位記錄](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html)。 | 
| aurora\$1enhanced\$1binlog | 0 | 將此參數的值設定為與 Aurora MySQL 叢集相關聯之資料庫叢集參數群組中的 1。當您變更此參數的值時，必須在 DBClusterParameterGroupStatus 值顯示為 pending-reboot 時重新啟動寫入器執行個體。 | 
| binlog\$1backup | 1 |  關閉此參數以開啟增強型 Binlog。若要這樣做，請將此參數的值設定為 0。 | 
| binlog\$1replication\$1globaldb | 1 |  關閉此參數以開啟增強型 Binlog。若要這樣做，請將此參數的值設定為 0。 | 

**重要**  
僅在使用增強型 Binlog 時，您才能關閉 `binlog_backup` 和 `binlog_replication_globaldb` 參數。

若要關閉增強型 binlog，請設定下列參數：


| 參數 | 描述 | 
| --- | --- | 
| aurora\$1enhanced\$1binlog | 將此參數的值設定為與 Aurora MySQL 叢集相關聯之資料庫叢集參數群組中的 0。每當您變更此參數的值時，就必須在 DBClusterParameterGroupStatus 值顯示為 pending-reboot 時重新啟動寫入器執行個體。 | 
| binlog\$1backup | 在您關閉增強型 Binlog 時開啟此參數。若要這樣做，請將此參數的值設定為 1。 | 
| binlog\$1replication\$1globaldb | 在您關閉增強型 Binlog 時開啟此參數。若要這樣做，請將此參數的值設定為 1。 | 

若要檢查增強型 Binlog 是否已開啟，請在 MySQL 用戶端中使用下列命令：

```
mysql>show status like 'aurora_enhanced_binlog';
              
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| aurora_enhanced_binlog | ACTIVE |
+------------------------+--------+
1 row in set (0.00 sec)
```

當增強型 Binlog 開啟時，輸出會針對 `aurora_enhanced_binlog` 顯示 `ACTIVE`

## 其他相關參數
<a name="AuroraMySQL.Enhanced.binlog.other.parameters"></a>

當您開啟增強型 Binlog 時，下列參數會受到影響：
+ `max_binlog_size` 參數可見，但無法修改。當增強型 Binlog 開啟時，它的預設值 `134217728` 會自動調整為 `268435456`。
+ 與社群 MySQL Binlog 不同，當增強型 Binlog 開啟時，`binlog_checksum` 不會充當動態參數。若要使對此參數所做的變更生效，您必須手動重新啟動資料庫叢集，即使 `ApplyMethod` 為 `immediate` 也是如此。
+ 增強型 Binlog 開啟時，您在 `binlog_order_commits` 參數上設定的值不會影響認可的順序。認可總是排序，沒有任何進一步的效能隱憂。

## 增強型 Binlog 與社群 MySQL Binlog 之間的差異
<a name="AuroraMySQL.Enhanced.binlog.differences"></a>

相較於社群 MySQL binlog，增強型 binlog 會以不同方式與複本，備份和 Aurora 全球資料庫互動。建議您在使用增強型 Binlog 之前先了解下列差異。
+ 來源資料庫叢集中的增強型 binlog 檔案無法在複製的資料庫叢集上使用。
+ Aurora 備份中不包含增強型 binlog 檔案。因此，在還原資料庫叢集之後，儘管在其上設定了任何保留期間，仍無法使用來源資料庫叢集中的增強型 Binlog 檔案。
+ 與 Aurora 全球資料庫搭配使用時，主要資料庫叢集的增強型 Binlog 檔案不會複寫至次要區域中的資料庫叢集。

****範例****  
下列範例說明增強型 Binlog 與社群 MySQL Binlog 之間的差異。

**在還原或複製的資料庫叢集上**

當增強型 Binlog 開啟時，在已還原或複製的資料庫叢集中無法使用歷史 Binlog 檔案。在還原或複製操作之後，如果開啟了 Binlog，新的資料庫叢集會開始寫入自己的 Binlog 檔案序列，從 1 (mysql-bin-changelog.000001) 開始。

若要在還原或複製操作之後開啟增強型 Binlog，請在還原或複製的資料庫叢集上設定所需的資料庫叢集參數。如需更多詳細資訊，請參閱 [設定增強型 Binlog 參數](#AuroraMySQL.Enhanced.binlog.enhancedbinlog.parameters)。

**Example 範例：增強型 binlog 開啟時所執行的複製或還原操作**  
來源資料庫叢集：  

```
mysql> show binary logs;
                      
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        |
| mysql-bin-changelog.000002 |       156 | No        |
| mysql-bin-changelog.000003 |       156 | No        |
| mysql-bin-changelog.000004 |       156 | No        | --> Enhanced Binlog turned on
| mysql-bin-changelog.000005 |       156 | No        | --> Enhanced Binlog turned on
| mysql-bin-changelog.000006 |       156 | No        | --> Enhanced Binlog turned on
+----------------------------+-----------+-----------+
6 rows in set (0.00 sec)
```
 在還原或複製的資料庫叢集上，增強型 Binlog 開啟時，不會備份 Binlog 檔案。為了避免 Binlog 資料中的不連續性，在開啟增強型 Binlog 之前寫入的 Binlog 檔案也無法使用。  

```
mysql>show binary logs;
                      
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        | --> New sequence of Binlog files
+----------------------------+-----------+-----------+ 
1 row in set (0.00 sec)
```

**Example 範例：增強型 binlog 關閉時所執行的複製或還原操作**  
來源資料庫叢集：  

```
mysql>show binary logs;
                                                
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        |
| mysql-bin-changelog.000002 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000003 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000004 |       156 | No        | 
| mysql-bin-changelog.000005 |       156 | No        | 
| mysql-bin-changelog.000006 |       156 | No        |
+----------------------------+-----------+-----------+
6 rows in set (0.00 sec)
```
增強型 binlog 會在 `mysql-bin-changelog.000003` 之後停用。在還原或複製的資料庫叢集上，可以使用在關閉增強型 Binlog 之後寫入的 Binlog 檔案。  

```
mysql>show binary logs;
                      
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000004 |       156 | No        | 
| mysql-bin-changelog.000005 |       156 | No        | 
| mysql-bin-changelog.000006 |       156 | No        |
+----------------------------+-----------+-----------+
1 row in set (0.00 sec)
```

**在 Amazon Aurora 全球資料庫上**

在 Amazon Aurora 全球資料庫上，主要資料庫叢集的 Binlog 資料不會複寫到次要資料庫叢集。在跨區域容錯移轉程序之後，Binlog 資料無法在新提升的主要資料庫叢集中使用。如果開啟了 Binlog，新提升的資料庫叢集會啟動自己的 Binlog 檔案序列，從 1 (mysql-bin-changelog.000001) 開始。

若要在容錯移轉之後開啟增強型 Binlog，您必須在次要資料庫叢集上設定所需的資料庫叢集參數。如需更多詳細資訊，請參閱 [設定增強型 Binlog 參數](#AuroraMySQL.Enhanced.binlog.enhancedbinlog.parameters)。

**Example 範例：開啟增強型 binlog 時，便會執行全球資料庫容錯移轉操作**  
舊的主要資料庫叢集 (容錯移轉前)：  

```
mysql>show binary logs;
                  
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        |
| mysql-bin-changelog.000002 |       156 | No        |
| mysql-bin-changelog.000003 |       156 | No        |
| mysql-bin-changelog.000004 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000005 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000006 |       156 | No        | --> Enhanced Binlog enabled
+----------------------------+-----------+-----------+
6 rows in set (0.00 sec)
```
新的主要資料庫叢集 (容錯移轉後)：  
開啟增強型 Binlog 時，Binlog 檔案不會複寫到次要區域。為了避免 Binlog 資料中的不連續性，無法使用在開啟增強型 Binlog 之前寫入的 Binlog 檔案。  

```
mysql>show binary logs;
                      
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        | --> Fresh sequence of Binlog files
+----------------------------+-----------+-----------+ 
1 row in set (0.00 sec)
```

**Example 範例：關閉增強型 binlog 時，便會執行全球資料庫容錯移轉操作**  
來源資料庫叢集：  

```
mysql>show binary logs;
                  
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000001 |       156 | No        |
| mysql-bin-changelog.000002 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000003 |       156 | No        | --> Enhanced Binlog enabled
| mysql-bin-changelog.000004 |       156 | No        | 
| mysql-bin-changelog.000005 |       156 | No        | 
| mysql-bin-changelog.000006 |       156 | No        |
+----------------------------+-----------+-----------+
6 rows in set (0.00 sec)
```
**還原或複製的資料庫叢集：**  
增強型 binlog 會在 `mysql-bin-changelog.000003` 之後停用。在關閉增強型 Binlog 之後寫入的 Binlog 檔案會被複寫，並可在新提升的資料庫叢集中使用。  

```
mysql>show binary logs;
                  
+----------------------------+-----------+-----------+
| Log_name                   | File_size | Encrypted |
+----------------------------+-----------+-----------+
| mysql-bin-changelog.000004 |       156 | No        | 
| mysql-bin-changelog.000005 |       156 | No        | 
| mysql-bin-changelog.000006 |       156 | No        |
+----------------------------+-----------+-----------+
3 rows in set (0.00 sec)
```

## 增強型 Binlog 的 Amazon CloudWatch 指標
<a name="AuroraMySQL.Enhanced.binlog.cloudwatch.metrics"></a>

只在開啟增強型 Binlog 時，才會發佈下列 Amazon CloudWatch 指標。


| CloudWatch 指標 | 描述 | 個單位 | 
| --- | --- | --- | 
| ChangeLogBytesUsed | 增強型 Binlog 使用的儲存體數量。 | 位元組 | 
| ChangeLogReadIOPs | 增強型 Binlog 中 5 分鐘間隔內執行的讀取 I/O 操作次數。 | 每 5 分鐘計數 | 
| ChangeLogWriteIOPs | 增強型 Binlog 中 5 分鐘間隔內執行的寫入磁碟 I/O 操作次數。 | 每 5 分鐘計數 | 

## 增強型 Binlog 限制
<a name="AuroraMySQL.Enhanced.binlog.limitations"></a>

當增強型 Binlog 開啟時，下列限制適用於 Amazon Aurora 資料庫叢集。
+ 僅在 Aurora MySQL 3.03.1 版及更新版本上，才支援增強型 binlog。
+ 在主要資料庫叢集上寫入的增強型 Binlog 檔案不會複製到複製或還原的資料庫叢集。
+ 與 Amazon Aurora 全球資料庫搭配使用時，主要資料庫叢集的增強型 Binlog 檔案不會複寫至次要資料庫叢集。因此，在容錯移轉程序之後，無法在新的主要資料庫叢集中使用歷史 Binlog 資料。
+ 系統會忽略下列 Binlog 組態參數：
  + `binlog_group_commit_sync_delay`
  + `binlog_group_commit_sync_no_delay_count`
  + `binlog_max_flush_queue_time`
+ 您無法捨棄或重新命名資料庫中損毀的資料表。若要捨棄這些資料表，您可以聯絡 支援。
+ 開啟增強型 Binlog 時，會停用 Binlog I/O 快取。如需更多詳細資訊，請參閱 [最佳化 Aurora MySQL 的二進位日誌複寫](binlog-optimization.md)。
**注意**  
增強型 Binlog 提供與 Binlog I/O 快取類似的讀取效能改進，以及更好的寫入效能改進。
+ 不支援恢復功能。無法在下列情況下的資料庫叢集中開啟增強型 Binlog：
  + 目前已啟用恢復功能的資料庫叢集。
  + 先前已啟用但現在已停用恢復功能的資料庫叢集。
  + 從來源資料庫叢集或已啟用恢復功能的快照中還原的資料庫叢集。