最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL主從復制過濾配置的完整方案

 更新時間:2026年03月03日 08:48:30   作者:·云揚·  
在實際生產(chǎn)環(huán)境中,MySQL 主從復制架構幾乎是標配,但默認的全量同步往往會帶來不必要的資源消耗,所以本文整理了一套完整的過濾配置實驗方案,從環(huán)境準備到六種核心場景測試,需要的朋友可以參考下

前言:為什么需要主從復制過濾?

在實際生產(chǎn)環(huán)境中,MySQL 主從復制架構幾乎是標配,但默認的全量同步往往會帶來不必要的資源消耗 —— 比如日志表、測試表的數(shù)據(jù)同步,不僅占用從庫磁盤空間,還會增加網(wǎng)絡傳輸壓力。因此,精細化控制同步范圍(只同步核心數(shù)據(jù)、忽略非必要表 / 庫)就顯得尤為重要。

最近剛好在優(yōu)化公司的主從架構,整理了一套完整的過濾配置實驗方案,從環(huán)境準備到六種核心場景測試,全程實操驗證,今天就把這些干貨分享給大家~

一、實驗環(huán)境準備(基礎鋪墊不能少)

首先得有一個正常運行的 MySQL 主從架構(主從已實現(xiàn)基礎同步),我這里用的是 MySQL 8.0 版本,操作系統(tǒng)是 CentOS 7。

1.1 主庫:創(chuàng)建測試數(shù)據(jù)

為了驗證不同過濾規(guī)則,我特意創(chuàng)建了 2 個庫、4 張表,包含業(yè)務表、日志表,方便后續(xù)區(qū)分測試:

-- 創(chuàng)建測試庫

create database db1;

create database db2;

-- db1庫:業(yè)務表+日志表(模擬真實場景)

use db1;

create table table_01(id int not null auto_increment primary key, name varchar(10));

create table table_02(id int not null auto_increment primary key, name varchar(10));

create table log_01(id int not null auto_increment primary key, name varchar(10)); -- 擬忽略的日志表

-- db2庫:普通測試表

use db2;

create table test_01(id int not null auto_increment primary key, name varchar(10));

然后插入隨機測試數(shù)據(jù)(用 MD5 生成隨機字符串,不用手動造數(shù)據(jù),效率超高):

insert into db1.table_01(name) values (SUBSTRING(MD5(RAND()), 1, 10));

insert into db1.table_02(name) values (SUBSTRING(MD5(RAND()), 1, 10));

insert into db1.log_01(name) values (SUBSTRING(MD5(RAND()), 1, 10));

insert into db2.test_01(name) values (SUBSTRING(MD5(RAND()), 1, 10));

1.2 從庫:驗證初始同步

這一步很關鍵!必須先確認主從基礎同步正常,不然后續(xù)過濾測試就沒意義了。在從庫執(zhí)行查詢:

select * from db1.table_01;

select * from db1.table_02;

select * from db1.log_01;

select * from db2.test_01;

如果都能查到數(shù)據(jù),說明主從架構沒問題,可以開始過濾配置了~

二、六種核心過濾方案(場景化實操)

所有過濾規(guī)則都在從庫配置,記住一個通用流程:停止SQL線程 → 配置規(guī)則 → 重啟SQL線程 → 測試效果 → 清理規(guī)則,避免規(guī)則殘留影響后續(xù)測試。

2.1 方案 1:只復制某一個庫(REPLICATE_DO_DB)

適用場景:只需要同步核心業(yè)務庫(比如 db1),非核心庫(如 db2)無需同步。

-- 臨時配置(不用重啟,測試用超方便)

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_DO_DB=(db1);

start slave sql_thread;

show slave status\G; -- 查看Filter參數(shù)是否生效

如果需要長期生效,就要改配置文件(記得重啟服務):

vim /data/mysql/conf/my.cnf

replicate-do-db=db1  # 新增配置

systemctl restart mysqld

測試結果:主庫往 db1 插數(shù)據(jù)同步成功,db2 插數(shù)據(jù)從庫無反應,符合預期~

2.2 方案 2:忽略某個庫(REPLICATE_IGNORE_DB)

適用場景:除了某個庫(比如日志庫 db1),其他庫都要同步。

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(db1);

start slave sql\_thread;

測試感悟:這個規(guī)則適合把測試庫、日志庫排除在外,減少從庫壓力,親測好用!

2.3 方案 3:只復制指定表(REPLICATE_DO_TABLE)

適用場景:同一庫下只需要同步核心表(比如 db1.table_01),其他表忽略。

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_DO_TABLE=(db1.table_01); -- 必須寫"庫名.表名"

start slave sql_thread;

注意:如果只寫表名會失效!之前踩過這個坑,大家一定要注意~

2.4 方案 4:忽略指定表(REPLICATE_IGNORE_TABLE)

適用場景:同步某庫大部分表,但忽略日志表、臨時表(比如 db1.log_01)。

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_IGNORE_TABLE=(db1.log_01);

start slave sql_thread;

實操心得:日志表數(shù)據(jù)量大且無需備份,用這個規(guī)則能節(jié)省大量磁盤空間~

2.5 方案 5:通配符匹配同步表(REPLICATE_WILD_DO_TABLE)

適用場景:同步某庫下符合前綴 / 后綴規(guī)則的表(比如 db1 下所有 table 開頭的表)。

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE=('db1.table%'); -- 通配符%匹配任意字符

start slave sql_thread;

配置文件持久化(不用加引號):

replicate-wild-do-table=db1.table%

測試效果:table_01、table_02 都能同步,log_01 被忽略,批量匹配超高效!

2.6 方案 6:通配符忽略表(REPLICATE_WILD_IGNORE_TABLE)

適用場景:忽略某庫下符合規(guī)則的表(比如 db1 下所有 table 開頭的表)。

STOP SLAVE SQL_THREAD;

CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE=('db1.table%');

start slave sql_thread;

使用建議:如果需要批量排除同類表,這個規(guī)則比逐個寫 REPLICATE_IGNORE_TABLE 更方便。

三、實驗總結(快速選型指南)

整理了一張對比表,大家可以根據(jù)業(yè)務場景直接選型:

配置方案核心參數(shù)控制粒度適用場景
只復制某庫REPLICATE_DO_DB庫級僅同步核心業(yè)務庫
忽略某庫REPLICATE_IGNORE_DB庫級排除測試庫、日志庫
只復制指定表REPLICATE_DO_TABLE表級僅同步單庫下核心表
忽略指定表REPLICATE_IGNORE_TABLE表級排除單庫下非必要表(如日志表)
通配符匹配同步表REPLICATE_WILD_DO_TABLE通配符級同步符合前綴 / 后綴規(guī)則的表(批量匹配)
通配符忽略表REPLICATE_WILD_IGNORE_TABLE通配符級排除符合前綴 / 后綴規(guī)則的表(批量忽略)

四、避坑指南(實操經(jīng)驗分享)

  1. 配置優(yōu)先級:臨時配置(CHANGE REPLICATION FILTER)比配置文件優(yōu)先級高,測試時用臨時配置,確定后再寫配置文件。
  2. 規(guī)則沖突:如果同時配置 “只復制” 和 “忽略”,忽略規(guī)則優(yōu)先級更高!比如既配置了 REPLICATE_DO_DB=db1,又配置了 REPLICATE_IGNORE_TABLE=db1.table_01,那么 table_01 會被忽略。
  3. 大小寫問題:Linux 環(huán)境下 MySQL 默認區(qū)分表名大小寫,配置時要和實際表名一致(比如 table_01 不能寫成 Table_01),否則規(guī)則失效!
  4. 重啟影響:臨時配置重啟從庫后會丟失,生產(chǎn)環(huán)境一定要用配置文件持久化。
  5. 數(shù)據(jù)清理:實驗結束后記得在主從庫同時刪除測試庫(drop database db1; drop database db2;),避免殘留數(shù)據(jù)干擾。

最后

以上就是 MySQL 主從復制過濾配置的全部實操內(nèi)容啦~ 其實過濾規(guī)則不難,關鍵是根據(jù)業(yè)務場景選對方案,并且注意避坑。如果大家有其他場景的過濾需求,或者在實操中遇到問題,歡迎在評論區(qū)交流探討!

以上就是MySQL主從復制過濾配置的完整方案的詳細內(nèi)容,更多關于MySQL主從復制過濾配置的資料請關注腳本之家其它相關文章!

相關文章

  • mysql修改記錄時update操作 字段=字段+字符串

    mysql修改記錄時update操作 字段=字段+字符串

    這篇文章主要介紹了mysql修改記錄時update操作 字段=字段+字符串,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MySQL之JSON類型字段的使用技巧分享

    MySQL之JSON類型字段的使用技巧分享

    這篇文章主要介紹了MySQL之JSON類型字段的使用技巧,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL運維實戰(zhàn)使用RPM進行安裝部署

    MySQL運維實戰(zhàn)使用RPM進行安裝部署

    這篇文章主要為大家介紹了MySQL運維實戰(zhàn)使用RPM進行安裝部署實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • MySQL系列之六 用戶與授權

    MySQL系列之六 用戶與授權

    做為Mysql數(shù)據(jù)庫管理員管理用戶賬戶,是一件很重要的事,指出哪個用戶可以連接服務器,從哪里連接,連接后能做什么,這篇文章主要介紹了MySQL用戶與授權的相關資料,需要的朋友可以參考下
    2021-07-07
  • Mysql表的約束超詳細講解

    Mysql表的約束超詳細講解

    MySQL唯一約束(Unique Key)是指所有記錄中字段的值不能重復出現(xiàn)。例如,為 id 字段加上唯一性約束后,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復的情況
    2022-09-09
  • Mysql實戰(zhàn)練習之簡單圖書管理系統(tǒng)

    Mysql實戰(zhàn)練習之簡單圖書管理系統(tǒng)

    由于課設需要做這個,于是就抽了點閑余時間,寫了下,用Mysql與Java,基本全部都涉及到,包括借書/還書,以及書籍信息的更新,查看所有的書籍。需要的朋友可以參考下
    2021-09-09
  • MySQL中存儲過程性能優(yōu)化的完整指南

    MySQL中存儲過程性能優(yōu)化的完整指南

    這篇文章主要為大家詳細介紹了MySQL中存儲過程性能優(yōu)化的相關方法,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以了解下
    2025-08-08
  • MySQL 如何查詢當前最新事務ID

    MySQL 如何查詢當前最新事務ID

    這篇文章主要介紹了MySQL 如何查詢當前最新事務ID,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL中ifnull和isnull的用法及其平替方法

    MySQL中ifnull和isnull的用法及其平替方法

    ifnull和isnull都是MySQL的函數(shù),用于對NULL值進行處理,本文就來介紹MySQL中ifnull和isnull的用法及其平替方法,感興趣的可以了解一下
    2023-12-12
  • 一次Mysql死鎖排查過程的全紀錄

    一次Mysql死鎖排查過程的全紀錄

    在測試環(huán)境測試給用戶并發(fā)發(fā)送卡券時,出現(xiàn)了死鎖,通過查找相關的資料解決了這個,所以想著總結出來,所以下面這篇文章主要是關于一次Mysql死鎖排查過程的全紀錄,需要的朋友可以參考下,希望大家從中能有所幫助。
    2017-02-02

最新評論

确山县| 广宗县| 常熟市| 阿克苏市| 龙陵县| 台州市| 涿州市| 平江县| 内江市| 英超| 四平市| 鄄城县| 新巴尔虎左旗| 武清区| 永寿县| 彭泽县| 社旗县| 鄂州市| 潮州市| 利津县| 嘉善县| 张家界市| 平原县| 大安市| 呼和浩特市| 古蔺县| 漳平市| 怀来县| 景泰县| 南康市| 嘉鱼县| 安图县| 马龙县| 巩义市| 延寿县| 平远县| 玉溪市| 鹿泉市| 广昌县| 高雄市| 吕梁市|