Mysql
當 ALTER TABLE 重新排序列時,使用“binlog_row_image=minimal”的基於行的複制是否會導致問題?
只是想了解在 MySQL 8.0.23中將 binlow_row_image=minimal與基於行的複制一起使用的注意事項……為了避免無聲數據漂移,要求似乎是:
- 兩個數據庫中的所有表都需要一個主鍵,這對於每對錶來說都是相同的。
- 在兩個數據庫中,所有表都需要以正確的順序具有相同數量和類型的列。
鑑於上述情況,如果
ALTER TABLE
例如刪除一列,您是否會遇到競爭條件,即在該表中插入行的掛起 binlog 事件的複制會中斷?僅當您使用類似的東西時才會發生這種情況slave_parallel_workers
,或者甚至是安全的嗎?我試圖弄清楚這是否值得使用,或者當您不需要硬數據一致性時,它是否可以進行更多的性能調整。
並行複制允許並發事務亂序,但不允許並發非事務更新。某些 SQL 語句(包括 DDL 語句)無法回滾,因此它們會造成“障礙”,以便它們等待所有並行工作人員趕上,並且工作人員在非事務性更改後被阻止執行更改。
這意味著沒有競爭條件。DDL 有效地強制了一種“同步”。