

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

# 為單一可用區資料庫設定 RDS for MySQL 二進位記錄
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

*二進位日誌*是一組日誌檔案，其中包含對 MySQL 伺服器執行個體所做資料修正的相關資訊。二進位日誌包含的資訊如下：
+ 描述資料庫變更的事件 (如建立資料表或修改資料列)
+ 有關更新了資料的每個陳述式持續時間的資訊
+ 本應更新資料但未更新的陳述式事件

二進位日誌會記錄複寫過程中傳送的陳述式。某些復原操作也需要這些日誌。如需詳細資訊，請參閱 MySQL 文件中的[二進位日誌](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html)。

自動備份功能會決定 MySQL 開啟還是關閉二進位日誌記錄功能。您有下列選項：

開啟二進位日誌記錄功能  
將備份保留期設定為正的非零值。

關閉二進位日誌記錄功能  
將備份保留期間設定為 0。

如需詳細資訊，請參閱[啟用自動備份](USER_WorkingWithAutomatedBackups.Enabling.md)。

Amazon RDS 上的 MySQL 支援 *row-based* (列型)、*statement-based* (陳述式型)，和 *mixed* (混和式) 二進位記錄格式。除非需要特定的 binlog 格式，否則我們建議混合使用。如需各種 MySQL 二進位日誌格式的詳細資訊，請參閱 MySQL 說明文件中的[二進位記錄格式](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html)。

如果您打算使用複寫，二進位日誌記錄格式很重要，因為這決定資料變更的記錄，而此記錄會記錄在來源中並傳送到複寫目標。如需有關複寫時各種二進位日誌記錄格式的優缺點的資訊，請參閱 MySQL 文件中的[基於陳述式和基於列的複寫的優缺點](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html)。

**重要**  
使用 MySQL 8.0.34 時，MySQL 已棄用 `binlog_format` 參數。在較新的 MySQL 版本中，MySQL 計劃移除參數，並僅支援資料列型複寫。因此，我們建議將資料列型記錄用於新的 MySQL 複寫設定。如需詳細資訊，請參閱 MySQL 文件中的 [binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format)。  
MySQL 8.0 版和 8.4 版接受參數 `binlog_format`。使用此參數時，MySQL 會發出棄用警告。在未來的主要版本中，MySQL 會移除參數 `binlog_format`。  
基於陳述式的複寫可能會造成來源資料庫執行個體與僅供讀取複本不一致。如需詳細資訊，請參閱 MySQL 文件中的[二進位日誌記錄中安全和不安全陳述式的判定](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html)。  
啟用二進位記錄會增加資料庫執行個體的寫入磁碟 I/O 操作次數。您可以使用 `WriteIOPS``` CloudWatch 指標來監控 IOPS 使用情況。

**設定 MySQL 二進位記錄格式**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Parameter groups** (參數群組)。

1. 選擇您想要修改的與資料庫執行個體相關聯的資料庫參數群組。

   您無法修改預設參數群組。如果資料庫執行個體使用預設參數群組，請建立新的參數群組，並將它與資料庫執行個體建立關聯。

   如需參數群組的詳細資訊，請參閱[Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)。

1. 在**動作**中選擇**編輯**。

1. 將 `binlog_format` 參數設為您選擇的二進位日誌記錄格式 (`ROW`、`STATEMENT` 或 `MIXED`)。

   您可以將資料庫執行個體的備份保留期間設定為零來關閉二進位記錄，但這會停用每日自動備份。停用自動備份會關閉或停用 `log_bin` 工作階段變數。這會停用 RDS for MySQL 資料庫執行個體上的二進位記錄，進而在資料庫中將 `binlog_format` 工作階段變數重設為 `ROW` 的預設值。我們建議您不要停用備份。如需**備份保留期間**設定的詳細資訊，請參閱 [資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

1. 選擇 **Save changes (儲存變更)** 來儲存對資料庫參數群組的更新。

由於 `binlog_format` 參數在 RDS for MySQL 中是動態的，因此您不需要將資料庫執行個體重新開機即可套用變更。(請注意，在 Aurora MySQL 中，此參數是靜態的。如需詳細資訊，請參閱[設定 Aurora MySQL 二進位記錄](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html)。)

**重要**  
變更資料庫參數群組會影響使用該參數群組的所有資料庫執行個體。如果您想要為 AWS 區域中的不同 MySQL 資料庫執行個體指定不同的二進位記錄格式，則資料庫執行個體必須使用不同的資料庫參數群組。這些參數群組會識別不同的記錄格式。將適當的資料庫參數群組指派給每個資料庫執行個體。