日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

MySQL binlog_ignore_db 參數的具體使用

瀏覽:245日期: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 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧洲美洲国产香蕉| 国产精品中文字幕制服诱惑| 国产日韩欧美三级| 久久都是精品| 日本美女一区| 精品日韩视频| 91精品婷婷色在线观看| 久久精品成人| 久久精品国产www456c0m| 久久久精品午夜少妇| zzzwww在线看片免费| 麻豆视频在线观看免费网站黄| 精品国产亚洲一区二区在线观看| 国产麻豆一区二区三区精品视频| 亚洲永久精品唐人导航网址| 欧美在线资源| 欧美特黄一区| 亚洲自拍另类| 蜜桃av一区二区三区电影| 久久在线视频免费观看| 欧美午夜精彩| 影音国产精品| 中文一区一区三区免费在线观| 亚洲综合电影一区二区三区| 蜜臀av亚洲一区中文字幕| 亚洲另类视频| 日韩av一区二区三区四区| 青青草国产精品亚洲专区无| 日韩av电影一区| 国产精品欧美一区二区三区不卡| 国产精品入口久久| 国产一区二区视频在线看| 日韩欧美精品综合| 午夜久久福利| 免费久久精品| 99国产精品久久久久久久| 免费日韩视频| 日韩一区二区三区精品 | 97精品国产福利一区二区三区| 麻豆精品蜜桃视频网站| 亚洲欧洲高清| 99视频在线精品国自产拍免费观看| 中文一区一区三区免费在线观| 日韩精品午夜视频| 老司机免费视频一区二区| 伊人久久视频| 黄色不卡一区| 亚洲欧美专区| 美女视频黄 久久| 99久久久久久中文字幕一区| 免费美女久久99| 久久国产乱子精品免费女| 精品久久久久中文字幕小说| 亚洲综合在线电影| 亚洲精品成a人ⅴ香蕉片| 久久久久亚洲精品中文字幕| 欧美日韩国产一区二区三区不卡| 亚洲免费一区三区| 日本一二区不卡| 99精品99| 精品99在线| 日韩综合精品| 亚洲人成网站在线在线观看| 色婷婷综合网| 中文字幕日韩亚洲| 成人国产精品| 亚洲一二av| 91欧美在线| 亚洲精品乱码| 日韩在线观看| 国产精品中文字幕亚洲欧美| 久久精品高清| 国产欧美一区二区精品久久久 | 另类国产ts人妖高潮视频| 欧美精品三级在线| 久久久久久黄| 欧美日韩一区二区三区不卡视频 | 麻豆精品久久久| 激情综合网站| 精品亚洲免a| 欧美二区视频| 精品三区视频| 亚洲专区视频| 日韩欧美一区免费| 国产欧美高清视频在线| 国产综合精品一区| 美女久久久久久 | 国产亚洲久久| 黄色成人91| 国产精品13p| 日韩av二区在线播放| 91精品91| 国产一卡不卡| 国产视频久久| 欧美不卡高清一区二区三区| 日韩动漫一区| 中文在线一区| 久久久久欧美精品| 老鸭窝一区二区久久精品| 日韩中文字幕不卡| 999国产精品| 精品资源在线| 欧美亚洲福利| 综合激情婷婷| 99视频一区| 欧美日韩一二三四| 久久99久久人婷婷精品综合| 久久国产欧美| 91一区二区| 精品久久免费| 美女精品久久| 国产精品hd| 91福利精品在线观看| 亚洲一区日韩| 国产综合亚洲精品一区二| 日韩伦理在线一区| 六月婷婷综合| 国产精品99一区二区三区| 国产精品久久久久毛片大屁完整版| 亚洲精品综合| 在线免费观看亚洲| 免费看黄色91| 天堂资源在线亚洲| 91精品综合| 91精品一区二区三区综合| 国产一区二区视频在线看| 麻豆精品av| 久久免费福利| 精品国产黄a∨片高清在线| 日本欧美在线| 欧美亚洲一级| 国产极品嫩模在线观看91精品| 国产伦一区二区三区| 日韩毛片一区| 日韩成人在线看| 久久激情av| 久久99性xxx老妇胖精品| 人人爽香蕉精品| 亚洲精品乱码久久久久久蜜桃麻豆| 综合激情婷婷| 亚洲精品进入| 欧美私人啪啪vps| 欧美激情亚洲| 国产成人精选| 成人精品天堂一区二区三区| 日韩精品久久久久久久电影99爱| 日本不良网站在线观看| 人人精品亚洲| 亚洲国产一区二区三区在线播放| 中日韩男男gay无套| 久久国产精品毛片| 亚洲综合专区| 美女网站久久| 亚洲理论在线| 国产精品一区二区中文字幕| 国产精品一区二区av日韩在线| 美女视频免费精品| 国产精品蜜芽在线观看| 日本黄色精品| 免费精品国产| 亚洲综合专区| 欧美激情视频一区二区三区免费 | 国产欧美一区二区三区精品观看 | 久久视频一区| 久久福利一区| 国产三级一区| av中文资源在线资源免费观看| 亚洲v在线看| 蜜桃av一区二区三区电影| 国产伦乱精品| 亚洲va中文在线播放免费| 午夜精品亚洲| **爰片久久毛片| 国产日韩1区| 日韩在线欧美| 免费成人在线视频观看| 欧美三级第一页| 夜鲁夜鲁夜鲁视频在线播放| 中国女人久久久| 国产精品22p| 91久久国产| 国产图片一区| 久久国产电影| 日韩1区2区3区| 理论片午夜视频在线观看| 国产精品日韩久久久| 国产毛片精品久久| 国户精品久久久久久久久久久不卡 | 国产精品一页| 99久精品视频在线观看视频| 日韩中文字幕| 青青久久av| 午夜精品影视国产一区在线麻豆| 久久91视频| 免费观看久久久4p| 国产一区二区三区精品在线观看| 红桃视频欧美| 精品网站999| 久久亚洲欧美| 国语精品一区|