我有一個已啟用二進位記錄的 Amazon Aurora MySQL 相容版資料庫執行個體。當我將資料庫執行個體當作 AWS Database Migration Service (AWS DMS) 任務的來源時,收到了錯誤訊息。我想對此問題進行疑難排解。
簡短描述
若要將變更資料擷取 (CDC) 與完全載入和 CDC 或僅限 CDC 的 AWS DMS 任務搭配使用,請在來源資料庫寫入器執行個體上開啟二進位記錄。使用寫入器執行個體,因為唯讀複本不支援 CDC 作業。如需詳細資訊,請參閱將 MySQL 資料庫當作 AWS DMS 來源的限制。
如果您尚未開啟二進位記錄,或您已連線到讀取器執行個體,那麼您會看到類似於以下內容的日誌項目:
訊息
[SOURCE_CAPTURE ]I: System var 'log_bin' = 'OFF'
[SOURCE_CAPTURE ]E: 錯誤代碼 [10001]: 必須為 MySQL 伺服器 [1020418] (sql\endpoint\capture.c:366) 啟用二進位記錄
解決方法
如果您已連線到讀取器執行個體,請識別寫入器執行個體,然後使用 AWS DMS 連線到寫入器執行個體。最佳做法是連線到叢集端點,因為叢集端點始終指向叢集的目前寫入器。
若要確認二進位記錄是否已打開,請使用叢集端點連線到來源叢集寫入器節點:
mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
如果 log_bin 參數設定為 OFF,請查看叢集參數群組,檢查 binlog_format 參數是否設定為 ROW。如果 binlog_format 未設定為 ROW,請修改該參數以開啟 Aurora MySQL 相容版的二進位記錄。
**注意:**這是靜態參數,因此您必須重新啟動 Aurora MySQL 相容版執行個體,此變更才會生效。
將 binlog_format 參數設為 ROW 後,請確認您已開啟二進位記錄。若要進行確認,請連線到 Aurora MySQL 相容版執行個體:
mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
開啟二進位記錄並確認您已將叢集寫入器端點與 AWS DMS 搭配使用後,重新啟動您的任務。
相關資訊
將與 MySQL 相容的資料庫當作 AWS DMS 的來源