mysql過濾複製的實現
導讀 | 這篇文章主要介紹了mysql過濾複製的實現思路,主要講解了兩種思路,一種是在主庫的binlog上實現另一種是從庫的sql執行緒上實現,具體實現過程跟隨小編一起看看吧 |
mysql過濾複製
兩種思路:
主庫的binlog上實現(不推薦,儘量保證主庫binlog完整)
從庫的sql執行緒上實現
所以主從過濾複製儘量不用,要用的也僅僅在從庫上使用,因為要儘可能保證binlog的完整性
主庫上實現
在Master 端為保證二進位制日誌的完整, 不使用二進位制日誌過濾。
主庫配置引數:
#配置檔案中新增 binlog-do-db=db_name #定義白名單,僅將制定資料庫的相關操作記入二進位制日誌。如果主資料庫崩潰,那麼僅僅之恢復指定資料庫的內容,不建議在主伺服器端使用,這樣導致日誌不完整。 binlog-ignore-db=db_name #定義黑名單, 定義ignore 的庫上發生的寫操作將不會記錄到二進位制日誌中
從庫上實現
可以下載配置檔案中
REPLICATE_DO_DB = (db_list) #過濾複製哪些庫 REPLICATE_IGNORE_DB = (db_list) #不復制哪些庫 REPLICATE_DO_TABLE = (tbl_list) #過濾表 REPLICATE_IGNORE_TABLE = (tbl_list) #忽略過濾表 REPLICATE_WILD_DO_TABLE = (wild_tbl_list) #根據正則匹配過濾表 REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) #根據正則匹配忽略過濾這些表 REPLICATE_REWRITE_DB = (db_pair_list) #將源資料庫的db1發生的語句重寫到從庫的db2 CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((db1, db2));
語法:
官網語法參考:https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html
CHANGE REPLICATION FILTER filter[, filter][, ...] filter: { REPLICATE_DO_DB = (db_list) | REPLICATE_IGNORE_DB = (db_list) | REPLICATE_DO_TABLE = (tbl_list) | REPLICATE_IGNORE_TABLE = (tbl_list) | REPLICATE_WILD_DO_TABLE = (wild_tbl_list) | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) | REPLICATE_REWRITE_DB = (db_pair_list) }
#從庫實現過濾複製 stop slave sql_thread; change replication filter replicate_do_db=(db); start slave sql_thread; #取消過濾複製 stop slave sql_thread; change replication filter replicate_do_db=(); start slave sql_thread;
一些問題
主庫刪除某個表,從庫沒有這個表,導致從庫sql執行緒關閉
或者主從正常,從庫不小心刪除某個表,主庫隨後再刪除這個表,從庫又會去刪除這個不存在的表,報錯,導致sql執行緒退出
解決方法:跳過這一步操作
解決方案:從庫sql執行緒跳過誤操作的步驟 stop slave sql_thread; #找到Executed_Gtid_Set執行到19 set gtid_next='94fc1fbe-b7a0-11eb-b0a0-000c2969aba1:20'; 將gtid分配給下一個事務 begin;commit; set gtid_next=automatic; 系統自動分配gtid start slave sql_thread;
到此這篇關於mysql過濾複製思路詳解的文章就介紹到這了
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2791854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 主從複製過濾新增庫表過濾方案MySql
- mysql實現主從複製MySql
- docker實現mysql主從複製DockerMySql
- 簡單實踐實現 MySQL 主從複製MySql
- 從 MySQL 到 ClickHouse 實時複製與實現MySql
- mysql資料庫實現主從複製MySql資料庫
- Mysqldump實現mysql的master-slave主從複製MySqlAST
- MySQL 的主從複製實踐MySql
- js 實現深複製/深複製JS
- Mysql實現主從複製(一主雙從)MySql
- vue實現物件的複製Vue物件
- MYSQL一個裝置上的主從複製實現-windowsMySqlWindows
- MySQL 主從複製實操MySql
- mysql 複製原理與實踐MySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- MySQL複製MySql
- Linux下MySQL主從複製(Binlog)的部署過程LinuxMySql
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- JS實現複製大法JS
- 前端實現複製功能前端
- mysql複製--主從複製配置MySql
- MySQL GTID複製中斷修復過程MySql
- Java實現過濾中文亂碼Java
- PHP實現布隆過濾器PHP過濾器
- MySQL的主從複製MySql
- Linux實現MySql資料庫的主從複製(一主一從)LinuxMySql資料庫
- MySQL 8 複製(三)——延遲複製與部分複製MySql
- MySQL主從複製之GTID複製MySql
- MySQL 8 複製(一)——非同步複製MySql非同步
- MySQL 8 複製(二)——半同步複製MySql
- MySQL 8 複製(四)——GTID與複製MySql
- MySQL 8 複製(五)——配置GTID複製MySql
- 聊聊MySQL主從複製的幾種複製方式MySql
- Innobackupex實現mysql線上搭建master-slave主從複製MySqlAST
- js實現複製連結JS
- redis 主從複製實現Redis
- MySQL 複製全解析 Part 11 使用xtrabackup建立MySQL複製MySql
- MySQL運維實戰(7)建立複製MySql運維