同步一张表、复制过滤设置
一、緣由
據(jù)測(cè)試要求,需要把線上一張股票信息的表實(shí)時(shí)同步到測(cè)試環(huán)境,那么干吧,這次不復(fù)制庫(kù),單獨(dú)復(fù)制表。
?
二、解決辦法
可以按照同步(復(fù)制)庫(kù)的方法來(lái),在salve端設(shè)置 my.cnf,replicate-wild-do-table = 99cjadmin.99cj_stock_dynamic,這么設(shè)置后
主數(shù)據(jù)庫(kù)所有的binlog都會(huì)復(fù)制到從數(shù)據(jù)庫(kù),而從數(shù)據(jù)庫(kù)SQL線程在讀取relay log的時(shí)候只篩選99cjadmin.99cj_stock_dynamic這張表的
事務(wù),并應(yīng)用更新到從數(shù)據(jù)庫(kù)。
MySQL5.7.3版本開(kāi)始,允許動(dòng)態(tài)更改這個(gè)參數(shù),敲命令:CHANGE REPLICATION FILTER。
?
三、復(fù)制過(guò)濾解析
復(fù)制過(guò)濾可以讓你只復(fù)制服務(wù)器中的一部分?jǐn)?shù)據(jù),有兩種復(fù)制過(guò)濾:
1.在Master上過(guò)濾二進(jìn)制日志中的事件,決定哪些庫(kù)的更改寫(xiě)入二進(jìn)制日志。(一般不用,默認(rèn)全部寫(xiě)binlog)
2.在Slave上過(guò)濾中繼日志中的事件,決定哪些庫(kù)和表需要SQL線程應(yīng)用到從庫(kù)。
?
推薦只在Slave端設(shè)置replicate_wild_do_table=db.* 或者 replicate_wild_ignore_table=db.*;這兩個(gè)參數(shù)可以解決跨庫(kù)更新問(wèn)題。
MySQL5.6后推薦設(shè)置binlog_format=ROW,即基于行的復(fù)制。
do_xxx 和ignore_xxx只用按需求選擇一個(gè)即可,這樣清晰明了、不易混淆。
?
MySQL5.6復(fù)制的時(shí)候建議過(guò)濾掉這些庫(kù),只復(fù)制生產(chǎn)環(huán)境的數(shù)據(jù)
replicate-wild-ignore-table =mysql.%
replicate-wild-ignore-table =information_schema.%
replicate-wild-ignore-table =performance_schema.%
?
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的同步一张表、复制过滤设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: safe-rm替换系统的rm
- 下一篇: mysql中 !40000 DROP D