Mysql

MySQL二進制日誌 - 跳過一個表

  • June 20, 2014

有沒有辦法跳過二進制日誌中的特定表?

我已將二進制日誌配置為每晚備份之間的增量備份策略。但是我們有一個巨大的參考表,我們將在每晚從批處理(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;

這將禁用目前會話的二進制日誌記錄,載入數據並再次啟用二進制日誌記錄。

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