主頁(yè) > 知識(shí)庫(kù) > mysql過(guò)濾復(fù)制思路詳解

mysql過(guò)濾復(fù)制思路詳解

熱門(mén)標(biāo)簽:大眾點(diǎn)評(píng)星級(jí)酒店地圖標(biāo)注 400電話可以辦理嗎 臨清電話機(jī)器人 云南電商智能外呼系統(tǒng)價(jià)格 拉卡拉外呼系統(tǒng) 話務(wù)外呼系統(tǒng)怎么樣 智能外呼系統(tǒng)復(fù)位 外東北地圖標(biāo)注 高清地圖標(biāo)注道路

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ù)解析

標(biāo)簽:山西 阿里 三明 溫州 福州 定西 揚(yáng)州 無(wú)錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql過(guò)濾復(fù)制思路詳解》,本文關(guān)鍵詞  mysql,過(guò)濾,復(fù)制,思路,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql過(guò)濾復(fù)制思路詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于mysql過(guò)濾復(fù)制思路詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章