文件首頁
MySQL Shell 9.0
下載本手冊
PDF (US Ltr) - 2.3Mb
PDF (A4) - 2.3Mb


MySQL Shell 9.0  /  ...  /  InnoDB Cluster 與二進位日誌清除

7.5.8 InnoDB Cluster 與二進位日誌清除

在 MySQL 8 中,二進位日誌會自動清除(如 binlog_expire_logs_seconds 所定義)。這表示執行時間長於 binlog_expire_logs_seconds 的叢集,最終可能不會包含具有完整二進位日誌的執行個體,該日誌包含執行個體套用的所有交易。這可能導致執行個體需要自動佈建,例如使用 MySQL Enterprise Backup,才能加入叢集。執行 8.0.17 及更新版本的執行個體支援 MySQL Clone 外掛程式,它透過提供不依賴增量復原的自動佈建解決方案來解決此問題,請參閱第 7.4.6 節,「搭配 InnoDB Cluster 使用 MySQL Clone」。執行早於 8.0.17 版本的執行個體僅支援增量復原,因此根據執行個體執行的 MySQL 版本,可能必須自動佈建執行個體。否則,依賴分散式復原的操作(例如 Cluster.addInstance() 等)可能會失敗。

在執行較早版本 MySQL 的執行個體上,二進位日誌清除會使用下列規則

  • 執行早於 8.0.1 版本的執行個體沒有自動二進位日誌清除,因為 expire_logs_days 的預設值為 0。

  • 執行版本晚於 8.0.1 但早於 8.0.4 的執行個體會在 30 天後清除二進位日誌,因為 expire_logs_days 的預設值為 30。

  • 執行版本晚於 8.0.10 的執行個體會在 30 天後清除二進位日誌,因為 binlog_expire_logs_seconds 的預設值為 2592000,而 expire_logs_days 的預設值為 0。

注意

expire_logs_days 已在 MySQL Server 8.2.0 中移除。

因此,根據叢集的執行時間長度,二進位日誌可能已清除,您可能必須手動佈建執行個體。同樣地,如果您手動清除二進位日誌,可能會遇到相同的情況。因此,強烈建議您升級至晚於 8.0.17 的 MySQL 版本,以充分利用 MySQL Clone 為分散式復原提供的自動佈建功能,並在為 InnoDB Cluster 佈建執行個體時,盡量減少停機時間。