mysql複製過濾參數說明

来源:http://www.cnblogs.com/jerry-rock/archive/2017/08/17/7380836.html
-Advertisement-
Play Games

參考文檔: http://www.ywnds.com/?p=6945 https://stackoverflow.com/questions/23191160/whats-the-difference-in-replicate-wild-do-table-and-replicate-do-table ...


參考文檔: http://www.ywnds.com/?p=6945 https://stackoverflow.com/questions/23191160/whats-the-difference-in-replicate-wild-do-table-and-replicate-do-table http://80888888.blog.51cto.com/2741630/1333249 http://keithlan.github.io/2015/11/02/mysql_replicate_rule/   總共有6個過濾規則: 1  --replicate-do-db
2  --replicate-ignore-db
3  --replicate-do-table
4  --replicate-wild-do-table
5  --replicate-ignore-table
6  --replicate-wild-ignore-table
  以上6個規則的前2個是庫級別的規則,後4個是表級別的規則。使用註意點: 1:庫級別的規則,只針對binlog_format='STATEMENT'或'MIXED'。
2:如果是binlog_format='ROW',不受庫級別規則限制,只受表級別規則限制。
3:表級別的規則,針對所有模式。 4:binlog_format='STATEMENT'或者'MIXED'時,記錄use 語句,此時如果使用 --replicate-do-db,則不支持跨庫修改。     如use test; update db1 set …… 這裡判斷的是use 後面的test庫,所以updte語句不執行。建議使用--replicate-wild-do-table
5:binlog_format='ROW'時,不記錄use語句。只受表級別規則的影響。只能配置後面四條規則。   測試不同模式下binlog記錄情況:   執行sql: set global binlog_format='row'; use test; update db1.t2 set name='a200' where id=105; use db1;   記錄的binlog如下:
 1 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
 2 /*!40019 SET @@session.max_insert_delayed_threads=0*/;
 3 /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
 4 DELIMITER /*!*/;
 5 # at 4
 6 #170808  0:49:08 server id 1882073306  end_log_pos 120 CRC32 0xbddf73ce         Start: binlog v 4, server v 5.6.23-72.1-log created 170808  0:49:08
 7 # Warning: this binlog is either in use or was not closed properly.
 8 # at 120
 9 #170808  0:50:16 server id 1882073306  end_log_pos 191 CRC32 0xb2586cef         Query   thread_id=73    exec_time=0     error_code=0
10 SET TIMESTAMP=1502124616/*!*/;
11 SET @@session.pseudo_thread_id=73/*!*/;
12 SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
13 SET @@session.sql_mode=1073741824/*!*/;
14 SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
15 /*!\C utf8 *//*!*/;
16 SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
17 SET @@session.lc_time_names=0/*!*/;
18 SET @@session.collation_database=DEFAULT/*!*/;
19 BEGIN
20 /*!*/;
21 # at 191
22 #170808  0:50:16 server id 1882073306  end_log_pos 245 CRC32 0xe7585ab8         Table_map: `db1`.`t2` mapped to number 395
23 # at 245
24 #170808  0:50:16 server id 1882073306  end_log_pos 365 CRC32 0x86dbbb24         Update_rows: table id 395 flags: STMT_END_F
25 ### UPDATE `db1`.`t2`
26 ### WHERE
27 ###   @1=105 /* INT meta=0 nullable=0 is_null=0 */
28 ###   @2='a100' /* VARSTRING(90) meta=90 nullable=0 is_null=0 */
29 ###   @3='57747ab889255af96b48d65e505382' /* VARSTRING(90) meta=90 nullable=0 is_null=0 */
30 ###   @4='' /* VARSTRING(72) meta=72 nullable=0 is_null=0 */
31 ###   @5=NULL /* VARSTRING(72) meta=0 nullable=1 is_null=1 */
32 ### SET
33 ###   @1=105 /* INT meta=0 nullable=0 is_null=0 */
34 ###   @2='a200' /* VARSTRING(90) meta=90 nullable=0 is_null=0 */
35 ###   @3='57747ab889255af96b48d65e505382' /* VARSTRING(90) meta=90 nullable=0 is_null=0 */
36 ###   @4='' /* VARSTRING(72) meta=72 nullable=0 is_null=0 */
37 ###   @5=NULL /* VARSTRING(72) meta=0 nullable=1 is_null=1 */
38 # at 365
39 #170808  0:50:16 server id 1882073306  end_log_pos 396 CRC32 0x99f0e5d3         Xid = 32212
40 COMMIT/*!*/;
  執行sql: set global binlog_format='mixed'; use test; update db1.t2 set name='a300' where id=105; use db1;   記錄的binlog如下:
 1 # at 396
 2 #170808  0:53:14 server id 1882073306  end_log_pos 474 CRC32 0x46f75d21         Query   thread_id=74    exec_time=0     error_code=0
 3 SET TIMESTAMP=1502124794/*!*/;
 4 BEGIN
 5 /*!*/;
 6 # at 474
 7 #170808  0:53:14 server id 1882073306  end_log_pos 589 CRC32 0x7193484c         Query   thread_id=74    exec_time=0     error_code=0
 8 use `test`/*!*/;
 9 SET TIMESTAMP=1502124794/*!*/;
10 update db1.t2 set name='a300' where id=105
11 /*!*/;
12 # at 589
13 #170808  0:53:14 server id 1882073306  end_log_pos 620 CRC32 0xc3e0c9e3         Xid = 32328
14 COMMIT/*!*/;
15 DELIMITER ;
16 # End of log file
17 ROLLBACK /* added by mysqlbinlog */;
18 /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
19 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、下載 首先進入官網 https://dev.mysql.com/downloads/mysql/ 選擇 Red Hat Enterprise Linux 7 / Oracle Linux 7 分別將 ① mysql community server 5.7.19 1.el7.x86_64.rpm ...
  • a:硬體的優化: 1、 採用64位cpu,cpu至少4顆,L2緩存越大越好2、 記憶體要大,32-64G運行1-2個實例,96-128G運行3-4個實例3、 機械盤選用sas盤,轉速15000以上,有可能的話使用ssd4、 raid卡使主庫用raid10,從庫用raid05、 網卡多塊,千兆以上6、 ...
  • 雞哥今天在給單位改一個織夢網站的時候發現了一個問題,由於本來的程式有7000多篇文章,雞哥就直接執行了個sql語句給刪除了,但是發現刪除之後後臺文章的分頁還在顯示著,錯誤截圖給大家看看看到沒,經過雞哥百度搜索發現這其實並不是雞哥的操作問題,而是這本就是織夢5.7的一個bug,下邊就給大家寫下修複方法 ...
  • oracle11g查詢優化之is null 和is not null優化 ...
  • 在SQL Server 中插入一條數據使用Insert語句,但是如果想要批量插入一堆數據的話,迴圈使用Insert不僅效率低,而且會導致SQL一系統性能問題。下麵介紹SQL Server支持的兩種批量數據插入方法:Bulk和表值參數(Table-Valued Parameters)。 bulk方法 ...
  • 程式員需要學些什麼?程式員好考嗎?--方方方方-希賽 一、學習能力 因為技術不會一直停著不動,可能當你剛在學校出來的時候,是公司的佼佼者,但是如果你不學習,當別人會HTML6/7/8的時候,你還只是在HTML5上徘徊。而且當你遇到困難的時候,如果是有大牛給你解決了問題,但是你只是照搬並沒有真正掌握這 ...
  • 對於Oracle資料庫操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,對於sqlplus有兩種形式。 一種是dos風格的sqlplus:sqlplus.exe; 另一種是windows風格的sqlplus:sqlplusw.exe; 一種是dos風格的sqlplus:sqlplus ...
  • 初始化不指定參數文件,如使用以下命令初始化: ./mysqld --initialize --user=mysql --basedir=/data/mysql/barry_mysql --datadir=/data/mysql/barry_mysql/data 初始化後 ibdata1文件大小是預設 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...