Mysql

數據庫具有現有觸發器時的線上模式更改

  • December 5, 2021

在嘗試真正需要線上執行的 MariaDB 模式更改之前,我正在做一些盡職調查,但在使用Percona 線上模式更改Github gh-ost等工具時,我似乎會遇到現有數據庫觸發器的問題甚至 Facebook 的線上模式也發生了變化。有什麼我錯過的選擇嗎?有什麼資源可以建議最大程度地減少停機時間嗎?

Percona 在觸發器方面非常棘手,所以我嘗試使用@HamoonDBA 提到的 GitHub 工具,但它看起來比 Percona 工具複雜,所以我推出了自己的https://github.com/StirlingMarketingGroup /smg-live-alter

它的編寫考慮了現有觸發器並保持它們完好無損,因為在我們自己的系統中,觸發器非常重要

是的,有。

DB 沒有任何觸發器。一個表可以有觸發器。如果你想改變沒有全文索引的表,也許線上 DDL 可以幫助你。(它在 MySQL/MariaDB 中實現)

但是當您在桌面上有觸發器時,gh-ost 是最佳選擇。

當您的表沒有任何觸發器時,Percona Online 模式更改和其他工具(例如,oak-online-alter-table、soundcloud/lhm、facebook-osc)非常有用。但是在 MariaDB 10.2 中,您可以為同一個事件創建多個觸發器所以也許它們可以工作(我沒有測試)

你可能不知道的工具:

https://github.com/soundcloud/lhm

https://github.com/shlomi-noach/openarkkit

https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html

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