成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

MySQL binlog_ignore_db 參數的具體使用

瀏覽:210日期:2023-10-08 10:27:32

前言:

經過前面文章學習,我們知道 binlog 會記錄數據庫所有執行的 DDL 和 DML 語句(除了數據查詢語句select、show等)。注意默認情況下會記錄所有庫的操作,那么如果我們有另類需求,比如說只讓某個庫記錄 binglog 或排除某個庫記錄 binlog ,是否支持此類需求呢?本篇文章我們一起來看下。

1. binlog_do_db 與 binlog_ignore_db

當數據庫實例開啟 binlog 時,我們執行 show master status 命令,會看到有 Binlog_Do_DB 與 Binlog_Ignore_DB 選項。

mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000009 | 282838 | | | |+---------------+----------+--------------+------------------+-------------------+

默認情況下,這兩個選項為空,那么這兩個參數有何作用?是否如同其字面意思一個只讓某個庫記錄 binglog 一個排除某個庫記錄 binlog 呢?筆者查閱官方文檔,簡單說明下這兩個參數的作用:

binlog_do_db:此參數表示只記錄指定數據庫的二進制日志,默認全部記錄。 binlog_ignore_db:此參數表示不記錄指定的數據庫的二進制日志。

這兩個參數為互斥關系,一般只選擇其一設置,只能在啟動命令行中或配置文件中加入。指定多個數據庫要分行寫入,舉例如下:

# 指定 db1 db2 記錄binlog[mysqld]binlog_do_db = db1binlog_do_db = db2# 不讓 db3 db4 記錄binlog[mysqld]binlog_ignore_db = db3binlog_ignore_db = db4

此外,這二者參數具體作用與否還與 binlog 格式有關系,在某些情況下 binlog 格式設置為 STATEMENT 或 ROW 會有不同的效果。在實際應用中 binlog_ignore_db 用途更廣泛些,比如說某個庫的數據不太重要,為了減輕服務器寫入壓力,我們可能不讓該庫記錄 binlog 。網上也有文章說設置 binlog_ignore_db 會導致從庫同步錯誤,那么設置該參數到底有什么效果呢,下面我們來具體實驗下。

2. binlog_ignore_db 具體效果

首先說明下,我的測試數據庫實例是 5.7.23 社區版本,共有 testdb、logdb 兩個業務庫,我們設置 logdb 不記錄 binlog ,下面來具體實驗下:

# binlog 為 ROW 格式 # 1.不使用 use dbmysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 154 | | logdb | |+---------------+----------+--------------+------------------+-------------------+mysql> select database();+------------+| database() |+------------+| NULL |+------------+1 row in set (0.00 sec)mysql> CREATE TABLE testdb.`test_tb1` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.06 sec)mysql> insert into testdb.test_tb1 values (1001,’sdfde’);Query OK, 1 row affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 653 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE logdb.`log_tb1` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.05 sec)mysql> insert into logdb.log_tb1 values (1001,’sdfde’);Query OK, 1 row affected (0.00 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 883 | | logdb | |+---------------+----------+--------------+------------------+-------------------+mysql> insert into logdb.log_tb1 values (1002,’sdsdfde’); Query OK, 1 row affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 883 | | logdb | |+---------------+----------+--------------+------------------+-------------------+mysql> alter table logdb.log_tb1 add column c3 varchar(20); Query OK, 0 rows affected (0.12 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1070 | | logdb | |+---------------+----------+--------------+------------------+-------------------+# 結論:其他庫記錄正常 logdb庫會記錄DDL 不記錄DML# 2.使用 use testdb跨庫mysql> use testdb;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select database();+------------+| database() |+------------+| testdb |+------------+1 row in set (0.00 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1070 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE `test_tb2` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.05 sec)mysql> insert into test_tb2 values (1001,’sdfde’);Query OK, 1 row affected (0.04 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1574 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE logdb.`log_tb2` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.05 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1810 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> insert into logdb.log_tb2 values (1001,’sdfde’);Query OK, 1 row affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1810 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)# 結論:同樣logdb庫會記錄DDL 不記錄DML # 3.使用 use logdb跨庫mysql> use logdb;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select database();+------------+| database() |+------------+| logdb |+------------+1 row in set (0.00 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1810 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE testdb.`test_tb3` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.23 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 1810 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> insert into testdb.test_tb3 values (1001,’sdfde’);Query OK, 1 row affected (0.02 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2081 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE `log_tb3` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.05 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2081 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> insert into log_tb3 values (1001,’sdfde’);Query OK, 1 row affected (0.02 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2081 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)# 結論:logdb都不記錄 同時不記錄其他庫的DDL# 4.每次操作都進入此庫 不跨庫mysql> use testdb;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2081 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> CREATE TABLE `test_tb4` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.05 sec)mysql> insert into test_tb4 values (1001,’sdfde’);Query OK, 1 row affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2585 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> use logdb;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> CREATE TABLE `log_tb4` ( id int , name varchar(30) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;Query OK, 0 rows affected (0.04 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2585 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysql> insert into log_tb4 values (1001,’sdfde’);Query OK, 1 row affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000011 | 2585 | | logdb | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)# 結論:其他庫全部記錄 logdb全不記錄

同樣的,將 binlog 格式設置為 STATEMENT ,再次進行測試,這里不再贅述測試過程,總結下 STATEMENT 格式下的實驗結果:

未選擇任何數據庫進行操作,所有都會記錄。 選擇testdb,對testdb和logdb分別進行操作,所有庫都會記錄。 選擇logdb,對testdb和logdb分別進行操作,所有庫都不會記錄。 選擇某個庫并只對當前庫進行操作,則記錄正常,不會記錄logdb。

看了這么多實驗數據,你是否眼花繚亂了呢,下面我們以思維導圖的形式總結如下:

MySQL binlog_ignore_db 參數的具體使用

這么看來 binlog_ignore_db 參數的效果確實和諸多因素有關,特別是有從庫的情況下,主庫要特別小心使用此參數,很容易產生主從同步錯誤。不過,按照嚴格標準只對當前數據庫進行操作,則不會產生問題。這也告訴我們要嚴格按照標準來,只賦予業務賬號某個單庫的權限,也能避免各種問題發生。

總結:

不清楚各位讀者是否對這種介紹參數的文章感興趣呢?可能這些是數據庫運維人員比較關注的吧。本篇文章主要介紹關于 binlog 的 binlog_ignore_db 參數的具體作用,可能本篇文章實驗環境還不夠考慮周全,有興趣的同學可以參考下官方文檔,有助于對該參數有更深入的了解。

以上就是MySQL binlog參數的使用的詳細內容,更多關于MySQL binlog參數的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲欧美视频| 日韩欧美中文字幕精品| 在线成人免费视频| 日本高清免费不卡视频| 久久久蜜桃一区二区人| 国产喂奶挤奶一区二区三区| 久久99久久久欧美国产| 色婷婷激情一区二区三区| 亚洲午夜私人影院| 亚洲黄色av| 日韩码欧中文字| 在线观看视频免费一区二区三区| 国产精品二三区| 欧美日韩少妇| 国产精品免费免费| 狠狠噜噜久久| 国产精品全国免费观看高清| 久久精品盗摄| 51精品久久久久久久蜜臀| 老司机精品视频在线| 在线观看日韩av先锋影音电影院| 一区二区免费在线播放| 亚洲精品一区二| 亚洲日本成人在线观看| 99精品国产福利在线观看免费 | 91成人在线免费观看| 美女国产一区二区三区| 欧美三级视频在线| 国产在线播放一区二区三区| 69堂亚洲精品首页| 国产精品456| 精品国产一二三| 欧美久久一区| 亚洲另类色综合网站| 亚洲精品一区二区三区蜜桃久| 亚洲乱码中文字幕| 国产精品日韩一区二区| 午夜久久久久久电影| 91精彩视频在线| 国产在线乱码一区二区三区| 日韩欧美精品三级| 欧美在线播放一区二区| 自拍视频在线观看一区二区| 亚洲一区二区三区精品动漫| 国产成人综合在线播放| 久久久午夜精品理论片中文字幕| 欧美一区1区三区3区公司| 中文文精品字幕一区二区| 亚洲激情影院| 午夜激情一区二区| 欧美色精品在线视频| 国产69精品久久久久毛片| 欧美精品一区二区久久婷婷| 欧美日本久久| 亚洲国产aⅴ成人精品无吗| 欧美无砖砖区免费| 成人h动漫精品一区二区| 国产精品欧美极品| 免费视频一区| 国产精品一区二区久久精品爱涩| 久久久影视传媒| 中日韩视频在线观看| 久久国产精品无码网站| 久久综合九色综合欧美98| 国内精品久久久久久久影视蜜臀| 亚洲成a天堂v人片| 9191国产精品| 欧美亚州在线观看| 亚洲1区2区3区视频| 欧美一区永久视频免费观看| 欧美在线网址| 天天综合天天做天天综合| 日韩亚洲欧美在线观看| 亚洲精选在线| 久久精品二区亚洲w码| 久久综合久久综合亚洲| 99综合视频| 国内精品免费**视频| 国产亚洲欧美色| 国产欧美日韩| 国产主播一区二区三区| 国产日韩综合av| 久久天堂成人| 99精品视频一区| 亚洲国产美国国产综合一区二区| 91精品国产品国语在线不卡| 国语自产精品视频在线看抢先版结局 | 国产自产在线视频一区| 免费在线一区观看| 国产视频一区二区在线观看| 久久久久久9| 91麻豆产精品久久久久久| 丝袜亚洲精品中文字幕一区| 亚洲精品在线观| 久久亚洲精选| 欧美国产激情| 美国欧美日韩国产在线播放| 国产日韩欧美精品综合| 色乱码一区二区三区88| 欧美一区网站| 蜜臀av国产精品久久久久| 欧美videossexotv100| 国产欧美激情| 成人黄色777网| 肉肉av福利一精品导航| 久久久久久影视| 91成人免费网站| 亚洲私人影院| 高清不卡在线观看av| 亚洲五码中文字幕| 久久久久综合网| 欧美色视频一区| 在线亚洲美日韩| 99精品视频一区| 激情另类小说区图片区视频区| 亚洲免费在线观看| 欧美一区二区精美| 久久久久久久久久久久久9999| 欧美+亚洲+精品+三区| 九九九久久久精品| 亚洲精品日韩一| 国产亚洲午夜高清国产拍精品 | 4438成人网| 国产精品夜夜夜| 欧美1区免费| 国产乱码字幕精品高清av| 亚洲成a人片在线不卡一二三区| 国产色婷婷亚洲99精品小说| 欧美日韩国产影片| 国产伦精品一区二区三区照片91 | 国产91精品久久久久久久网曝门| 午夜精品久久一牛影视| 国产蜜臀97一区二区三区| 欧美日韩不卡一区| 香蕉久久夜色| 亚洲第一精品影视| 91麻豆精东视频| 久久国产剧场电影| 偷拍一区二区三区四区| 日韩一区在线播放| 久久精品一区二区三区av| 欧美一级片免费看| 欧美三区在线观看| 91成人在线精品| 亚洲欧美激情诱惑| 亚洲区一区二区三区| 欧美另类女人| 99re热视频这里只精品| 国产91精品一区二区麻豆亚洲| 国产一区二区影院| 青青草原综合久久大伊人精品 | av不卡一区二区三区| 国产一区二区在线影院| 蜜桃av一区二区在线观看| 综合久久给合久久狠狠狠97色| 久久婷婷综合激情| 欧美一级高清片| 91精品国产综合久久蜜臀| 欧美三级视频在线| 欧美午夜一区二区| 久久一二三区| 免费在线国产精品| 精品动漫一区| 欧美午夜a级限制福利片| 欧美一区二区三区在线免费观看| 99re这里只有精品首页| 风间由美一区二区av101| 国产精品自在欧美一区| 精品一区二区三区在线观看| 蜜臂av日日欢夜夜爽一区| 秋霞电影一区二区| 美女网站色91| 日本亚洲免费观看| 免费久久99精品国产| 另类小说视频一区二区| 麻豆国产精品777777在线| 麻豆精品蜜桃视频网站| 奇米色777欧美一区二区| 热久久久久久久| 久久国产精品色婷婷| 精品一区二区免费看| 国产真实乱对白精彩久久| 国产成人综合精品三级| 国产精品123区| 顶级嫩模精品视频在线看| 成人激情免费网站| av电影在线观看完整版一区二区| 成人免费av在线| 91免费在线看| 国产一区欧美| 99亚洲一区二区| 久久综合精品一区| 欧美性大战久久久久久久| 777午夜精品免费视频| 日韩午夜激情视频| 粗大黑人巨茎大战欧美成人| 精品动漫3d一区二区三区免费版 | 欧美一区二区三区在线播放 | 久久久亚洲高清| 国产欧美日韩三级|