Mysql

將 binlog 格式 MIXED 更改為 ROW

  • June 9, 2020

我有一個在 AWS RDS (MySQl 5.7.22) 上執行的數據庫。

目前,我有一個主伺服器和兩個副本在執行。我的二進制日誌格式是MIXED。我計劃將其更改為基於ROW

我想在執行時(實時環境)更改它,因為它是我們的主數據庫。

問題

  1. 在更改之前我必須考慮哪些事項?
  2. 最安全的方法是什麼?
  3. 我只是想知道當我更改它時,binlog 大小是否會增長?

您可以在執行時使用。

SET GLOBAL binlog_format = 'ROW';

或會話

SET SESSION binlog_format = 'ROW';

有關詳細資訊,請參閱手冊

簡短的回答:沒什麼好擔心的。

長答案…

binlog 的大小幾乎是無關緊要的。(以前預設1G,最近預設100M。)

binlog 會不斷增長,直到超過配置的限制。然後啟動一個新的 binlog。由expire_logs_days清除舊文件或其他一些管理任務決定。

binlog 可能增長得更快,也可能更慢;它實際上取決於複製的查詢類型。例如,一百萬行UPDATE(一件很淘氣的事情)將是模式中的一個語句 (the UPDATE),STATEMENT並且將是模式中的一百萬行更改ROW。在這個例子中,ROW會填滿更多的磁碟;管理任務最終將清除它。

引用自:https://dba.stackexchange.com/questions/268567