濮阳杆衣贸易有限公司

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

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

熱門標(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過濾復(fù)制

兩種思路:

  • 主庫(kù)的binlog上實(shí)現(xiàn)(不推薦,盡量保證主庫(kù)binlog完整)
  • 從庫(kù)的sql線程上實(shí)現(xiàn)

所以主從過濾復(fù)制盡量不用,要用的也僅僅在從庫(kù)上使用,因?yàn)橐M可能保證binlog的完整性

主庫(kù)上實(shí)現(xiàn)

在Master 端為保證二進(jìn)制日志的完整, 不使用二進(jìn)制日志過濾。

主庫(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ā)生的寫操作將不會(huì)記錄到二進(jìn)制日志中

從庫(kù)上實(shí)現(xiàn)

可以下載配置文件中

REPLICATE_DO_DB = (db_list)		#過濾復(fù)制哪些庫(kù)
REPLICATE_IGNORE_DB = (db_list)		#不復(fù)制哪些庫(kù)
REPLICATE_DO_TABLE = (tbl_list)	#過濾表
REPLICATE_IGNORE_TABLE = (tbl_list)	#忽略過濾表
REPLICATE_WILD_DO_TABLE = (wild_tbl_list)	#根據(jù)正則匹配過濾表
REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list)	#根據(jù)正則匹配忽略過濾這些表
REPLICATE_REWRITE_DB = (db_pair_list)
#將源數(shù)據(jù)庫(kù)的db1發(fā)生的語句重寫到從庫(kù)的db2
CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((db1, db2));

語法:

官網(wǎng)語法參考: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)過濾復(fù)制

​	stop slave sql_thread;
​	change replication filter replicate_do_db=(db);
​	start slave sql_thread;

#取消過濾復(fù)制
​	stop slave sql_thread;
​	change replication filter replicate_do_db=();
​	start slave sql_thread;

一些問題

主庫(kù)刪除某個(gè)表,從庫(kù)沒有這個(gè)表,導(dǎo)致從庫(kù)sql線程關(guān)閉

或者主從正常,從庫(kù)不小心刪除某個(gè)表,主庫(kù)隨后再刪除這個(gè)表,從庫(kù)又會(huì)去刪除這個(gè)不存在的表,報(bào)錯(cuò),導(dǎo)致sql線程退出

解決方法:跳過這一步操作

解決方案:從庫(kù)sql線程跳過誤操作的步驟

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過濾復(fù)制思路詳解的文章就介紹到這了,更多相關(guān)mysql過濾復(fù)制 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL 到底是如何做到多版本并發(fā)的?
  • MySQL 外鍵(FOREIGN KEY)用法案例詳解
  • MySQL如何利用存儲(chǔ)過程快速生成100萬條數(shù)據(jù)詳解
  • Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程
  • MySQL事務(wù)控制流與ACID特性
  • Mysql使用存儲(chǔ)過程快速添加百萬數(shù)據(jù)的示例代碼
  • MySQL去除重疊時(shí)間求時(shí)間差和的實(shí)現(xiàn)
  • Mysql數(shù)據(jù)庫(kù)中datetime、bigint、timestamp來表示時(shí)間選擇,誰來存儲(chǔ)時(shí)間效率最高
  • MySQL的全局鎖和表級(jí)鎖的具體使用
  • 基于Redo Log和Undo Log的MySQL崩潰恢復(fù)解析

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql過濾復(fù)制思路詳解》,本文關(guān)鍵詞  mysql,過濾,復(fù)制,思路,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql過濾復(fù)制思路詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于mysql過濾復(fù)制思路詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    商河县| 灵山县| 上饶市| 宿迁市| 宜昌市| 普洱| 崇义县| 慈利县| 聂拉木县| 张北县| 龙州县| 罗平县| 砀山县| 车致| 东方市| 平谷区| 绥化市| 成都市| 青河县| 贵州省| 丘北县| 晋州市| 运城市| 柯坪县| 秭归县| 自治县| 行唐县| 博客| 太仆寺旗| 浦北县| 西乌珠穆沁旗| 论坛| 永清县| 惠来县| 卢湾区| 磐石市| 紫云| 吉安县| 临泽县| 开封市| 宜都市|