mysql過(guò)濾復(fù)制思路詳解
mysql過(guò)濾復(fù)制
兩種思路:
- 主庫(kù)的binlog上實(shí)現(xiàn)(不推薦,盡量保證主庫(kù)binlog完整)
- 從庫(kù)的sql線程上實(shí)現(xiàn)
所以主從過(guò)濾復(fù)制盡量不用,要用的也僅僅在從庫(kù)上使用,因?yàn)橐M可能保證binlog的完整性
主庫(kù)上實(shí)現(xiàn)
在Master 端為保證二進(jìn)制日志的完整, 不使用二進(jìn)制日志過(guò)濾。
主庫(kù)配置參數(shù):
#配置文件中添加 binlog-do-db=db_name #定義白名單,僅將制定數(shù)據(jù)庫(kù)的相關(guān)操作記入二進(jìn)制日志。如果主數(shù)據(jù)庫(kù)崩潰,那么僅僅之恢復(fù)指定數(shù)據(jù)庫(kù)的內(nèi)容,不建議在主服務(wù)器端使用,這樣導(dǎo)致日志不完整。 binlog-ignore-db=db_name #定義黑名單, 定義ignore 的庫(kù)上發(fā)生的寫(xiě)操作將不會(huì)記錄到二進(jìn)制日志中
從庫(kù)上實(shí)現(xiàn)
可以下載配置文件中
REPLICATE_DO_DB = (db_list) #過(guò)濾復(fù)制哪些庫(kù) REPLICATE_IGNORE_DB = (db_list) #不復(fù)制哪些庫(kù) REPLICATE_DO_TABLE = (tbl_list) #過(guò)濾表 REPLICATE_IGNORE_TABLE = (tbl_list) #忽略過(guò)濾表 REPLICATE_WILD_DO_TABLE = (wild_tbl_list) #根據(jù)正則匹配過(guò)濾表 REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) #根據(jù)正則匹配忽略過(guò)濾這些表 REPLICATE_REWRITE_DB = (db_pair_list) #將源數(shù)據(jù)庫(kù)的db1發(fā)生的語(yǔ)句重寫(xiě)到從庫(kù)的db2 CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((db1, db2));
語(yǔ)法:
官網(wǎng)語(yǔ)法參考: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) }
#從庫(kù)實(shí)現(xiàn)過(guò)濾復(fù)制 stop slave sql_thread; change replication filter replicate_do_db=(db); start slave sql_thread; #取消過(guò)濾復(fù)制 stop slave sql_thread; change replication filter replicate_do_db=(); start slave sql_thread;
一些問(wèn)題
主庫(kù)刪除某個(gè)表,從庫(kù)沒(méi)有這個(gè)表,導(dǎo)致從庫(kù)sql線程關(guān)閉
或者主從正常,從庫(kù)不小心刪除某個(gè)表,主庫(kù)隨后再刪除這個(gè)表,從庫(kù)又會(huì)去刪除這個(gè)不存在的表,報(bào)錯(cuò),導(dǎo)致sql線程退出
解決方法:跳過(guò)這一步操作
解決方案:從庫(kù)sql線程跳過(guò)誤操作的步驟 stop slave sql_thread; #找到Executed_Gtid_Set執(zhí)行到19 set gtid_next='94fc1fbe-b7a0-11eb-b0a0-000c2969aba1:20'; 將gtid分配給下一個(gè)事務(wù) begin;commit; set gtid_next=automatic; 系統(tǒng)自動(dòng)分配gtid start slave sql_thread;
到此這篇關(guān)于mysql過(guò)濾復(fù)制思路詳解的文章就介紹到這了,更多相關(guān)mysql過(guò)濾復(fù)制 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL 到底是如何做到多版本并發(fā)的
- MySQL 外鍵(FOREIGN KEY)用法案例詳解
- MySQL如何利用存儲(chǔ)過(guò)程快速生成100萬(wàn)條數(shù)據(jù)詳解
- Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程
- MySQL事務(wù)控制流與ACID特性
- Mysql使用存儲(chǔ)過(guò)程快速添加百萬(wàn)數(shù)據(jù)的示例代碼
- MySQL去除重疊時(shí)間求時(shí)間差和的實(shí)現(xiàn)
- Mysql數(shù)據(jù)庫(kù)中datetime、bigint、timestamp來(lái)表示時(shí)間選擇,誰(shuí)來(lái)存儲(chǔ)時(shí)間效率最高
- MySQL的全局鎖和表級(jí)鎖的具體使用
- 基于Redo Log和Undo Log的MySQL崩潰恢復(fù)解析
相關(guān)文章
MySQL如何利用存儲(chǔ)過(guò)程快速生成100萬(wàn)條數(shù)據(jù)詳解
在MySQL數(shù)據(jù)庫(kù)中,如果要插入上百萬(wàn)級(jí)的記錄,用普通的insertinto來(lái)操作非常不現(xiàn)實(shí),速度慢人力成本高,這篇文章主要給大家介紹了關(guān)于MySQL如何利用存儲(chǔ)過(guò)程快速生成100萬(wàn)條數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2021-08-08MySQL模糊查找like通配符使用(小白入門(mén)篇)
這篇文章主要為大家介紹了MySQL模糊查找like通配符使用的小白入門(mén)篇學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05MySQL服務(wù)器 IO 100%的分析與優(yōu)化方案
這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)器 IO 100%的相關(guān)資料,文中通過(guò)示例代碼介紹的介紹非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10深入研究mysql中的varchar和limit(容易被忽略的知識(shí))
這篇文章主要介紹了深入研究mysql中的varchar和limit(容易被忽略的知識(shí)),本文探究了varchar(5)可以存儲(chǔ)多少個(gè)漢字、多少個(gè)字母數(shù)字和mysql中的limit你真的會(huì)用嗎兩個(gè)知識(shí)點(diǎn),需要的朋友可以參考下2015-03-03mysql數(shù)據(jù)庫(kù)備份設(shè)置延時(shí)備份方法(mysql主從配置)
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)延時(shí)備份的方法,也就是mysql主從服務(wù)器備份,可以同步到多個(gè)服務(wù)器,最后我們提供了一個(gè)備份腳本,大家參考使用吧2013-12-12mysql 10w級(jí)別的mysql數(shù)據(jù)插入
幾天前做了一個(gè)短信發(fā)送東東,一次性要插入10w以上的手機(jī)號(hào)碼。我的個(gè)天啊。2011-08-08