Mysql
將 binlog 格式 MIXED 更改為 ROW
我有一個在 AWS RDS (MySQl 5.7.22) 上執行的數據庫。
目前,我有一個主伺服器和兩個副本在執行。我的二進制日誌格式是MIXED。我計劃將其更改為基於ROW。
我想在執行時(實時環境)更改它,因為它是我們的主數據庫。
問題
- 在更改之前我必須考慮哪些事項?
- 最安全的方法是什麼?
- 我只是想知道當我更改它時,binlog 大小是否會增長?
您可以在執行時使用。
SET GLOBAL binlog_format = 'ROW';
或會話
SET SESSION binlog_format = 'ROW';
有關詳細資訊,請參閱手冊。
簡短的回答:沒什麼好擔心的。
長答案…
binlog 的大小幾乎是無關緊要的。(以前預設1G,最近預設100M。)
binlog 會不斷增長,直到超過配置的限制。然後啟動一個新的 binlog。由
expire_logs_days
清除舊文件或其他一些管理任務決定。binlog 可能增長得更快,也可能更慢;它實際上取決於複製的查詢類型。例如,一百萬行
UPDATE
(一件很淘氣的事情)將是模式中的一個語句 (theUPDATE
),STATEMENT
並且將是模式中的一百萬行更改ROW
。在這個例子中,ROW
會填滿更多的磁碟;管理任務最終將清除它。