Mysql

當 ALTER TABLE 重新排序列時,使用“binlog_row_image=minimal”的基於行的複制是否會導致問題?

  • March 8, 2021

只是想了解在 MySQL 8.0.23中將 binlow_row_image=minimal與基於行的複制一起使用的注意事項……為了避免無聲數據漂移,要求似乎是:

  1. 兩個數據庫中的所有表都需要一個主鍵,這對於每對錶來說都是相同的。
  2. 在兩個數據庫中,所有表都需要以正確的順序具有相同數量和類型的列。

鑑於上述情況,如果ALTER TABLE例如刪除一列,您是否會遇到競爭條件,即在該表中插入行的掛起 binlog 事件的複制會中斷?僅當您使用類似的東西時才會發生這種情況slave_parallel_workers,或者甚至是安全的嗎?

我試圖弄清楚這是否值得使用,或者當您不需要硬數據一致性時,它是否可以進行更多的性能調整。

並行複制允許並發事務亂序,但不允許並發非事務更新。某些 SQL 語句(包括 DDL 語句)無法回滾,因此它們會造成“障礙”,以便它們等待所有並行工作人員趕上,並且工作人員在非事務性更改後被阻止執行更改。

這意味著沒有競爭條件。DDL 有效地強制了一種“同步”。

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