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