程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql二進制日志過濾器

Mysql二進制日志過濾器

編輯:MySQL綜合教程


Mysql二進制日志過濾器   二進制日志過濾器可以通過兩個選項從二進制日志中過濾語句: binlog-do-db和binlog-ignore-db   www.2cto.com   一,binlog-do-db   使用 binlog-do-db=db_name。使用這個選項後,主服務器會判斷當前的數據庫(即USE選定的數據庫)是否是db_name,如果是,則會將更新記錄到二進制日志中。在使用之後,其它所有沒有明顯指定的數據庫  都會被忽略。如果使用該選項,你應確保只對當前的數據庫進行更新。 在我服務器上有兩個數據庫,一個db_factory,另一個是db_user。在沒有使用這個選項之前,對兩個數據庫的更新操作都是立即會復制到從庫上的,但設置   www.2cto.com   [sql]  binlog-do-db=db_factory     之後,對db_user的改動,都不會被從庫所復制。所以如果不是特別有需求,最好不要設置這個選項。當然如果是一個數據庫經常更新,其它的都是一樣的本地數據庫,可以不用於二進制日志的後續操作的情況下,作為一種優化手段,也是可以的。 一個需要特別注意的地方是,如果設置binlog-do-db=db_factory。但後續使用如下語句:   [sql]  use db_user   insert into db_factory.employ ...........   此時,更新是不會被二進制日志所接收的。   二,binlog-ignore-db   表示忽略某個特定的數據庫,而對其它數據庫進行復制的選項。其實上面的選項是表示“忽略其他數據庫,只記錄我進入日志”,而這個選項可以表“忽略我,將其它數據庫記錄日志”,對這外選項的使用,可以如下所示:   www.2cto.com   [sql]  [mysqld]   binlog-ignore-db=db_factory   binlog-ignore-db=db_user   當然上面的binlog-do-db也可以使用多次記錄多個表需要被寫入二進制日志。   三,選項規則   是否有binlog-do-db或binlog-ignore-db規則? 沒有:將語句寫入二進制日志並退出。 有:執行下一步。 有一些規則(binlog-do-db或binlog-ignore-db或二者都有)。當前有一個數據庫,也就是是否用USE命令選擇數據庫?  沒有:不要寫入語句,並退出。 有:執行下一步。  www.2cto.com   有當前的數據庫。是否有binlog-do-db規則?  有:當前的數據庫是否匹配binlog-do-db規則? 如果是,則寫入並退出,如果不是,不寫入並退出。   沒有:執行下一步。 有一些binlog-ignore-db規則。當前的數據庫是否匹配binlog-ignore-db規則?  有:不要寫入語句,並退出。 沒有:寫入查詢並退出。 從上面的流程邏輯可以知道,如果binlog-do-db被設置了,binlog-ignore-db將會被忽略。   另外,在這兩個選項的應用過程中,要注意的是當前數據庫的選擇是通過USE來選擇,這一點很重要。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved