Mysql
MySQL二進制日誌 - 跳過一個表
有沒有辦法跳過二進制日誌中的特定表?
我已將二進制日誌配置為每晚備份之間的增量備份策略。但是我們有一個巨大的參考表,我們將在每晚從批處理(70GB 表)中更新它。此表僅供閱讀,每晚使用
mysqlimport
.在這個僅供參考的表的更新過程中,二進制日誌導致了相當嚴重的延遲(尤其是當我進行完整的 70GB 更新時)。它基本上必須做兩次70GB。呸。
參考表目前正在使用 MyISAM(我阻塞了 InnoDB 試圖載入它,所以嘗試了 MyISAM)。
沒有 mysql 選項可以忽略二進制日誌中的表。
如果您可以將表移動到單獨的數據庫,則可以使用binlog-ignore-db選項,但這有其陷阱。您應該了解 MySQL 如何評估複製規則。
如果您可以編寫一個包裝腳本來載入數據而不是 mysqlimport(手冊頁說它是 LOAD DATA INFILE 的命令行界面),並且您正在導入數據的使用者可以擁有 SUPER 權限,您可以使用sql_log_bin會話變數喜歡:
SET @@session.sql_log_bin=0; LOAD DATA INFILE 'file_name' -- other LOAD DATA INFILE options ; SET @@session.sql_log_bin=1;
這將禁用目前會話的二進制日誌記錄,載入數據並再次啟用二進制日誌記錄。