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

MySql Binlog的5種場景+實(shí)操步驟全解析

 更新時間:2026年02月04日 11:02:24   作者:·云揚(yáng)·  
本文詳細(xì)介紹了5種解析MySQL Binlog的方法,包括基于位點(diǎn)、時間、GTID、指定數(shù)據(jù)庫和加密Binlog的解析,附帶完整命令與場景說明,適合新手上手,每種方法都有具體適用場景和實(shí)操步驟,感興趣的朋友跟隨小編一起看看吧

Binlog(二進(jìn)制日志)是 MySQL 核心日志之一,記錄數(shù)據(jù)庫所有數(shù)據(jù)變更操作(增刪改、表結(jié)構(gòu)調(diào)整等),是數(shù)據(jù)恢復(fù)、主從復(fù)制、問題排查的關(guān)鍵工具。本文將詳細(xì)拆解 基于位點(diǎn)、時間、GTID、指定數(shù)據(jù)庫、加密 Binlog 的 5 種解析方法,附完整命令與場景說明,新手也能直接上手。

一、基于位點(diǎn)解析(精準(zhǔn)定位變更位置)

適用場景:已知數(shù)據(jù)變更發(fā)生的 Binlog 文件及大致位點(diǎn)(如主從同步中斷時定位錯誤位點(diǎn))

實(shí)操步驟:

  • 查看當(dāng)前 Binlog 狀態(tài)
  • 先確認(rèn)當(dāng)前正在寫入的 Binlog 文件、當(dāng)前位點(diǎn)及 GTID:
show master status\G

輸出結(jié)果中:

File:當(dāng)前 Binlog 文件名(如 mysql-bin.00006

Position:當(dāng)前位點(diǎn)(如 212,初始位點(diǎn)通常為 155)

生成測試 Binlog(可選)

若需驗(yàn)證解析效果,可執(zhí)行測試操作生成變更記錄:

-- 創(chuàng)建測試表并插入數(shù)據(jù)
create table martin.binlog_test(id int);
insert into martin.binlog_test select 1;

再次執(zhí)行 show master status\G,記錄變更后的位點(diǎn)(如 763)。

  • 執(zhí)行 Binlog 解析
  • 進(jìn)入 Binlog 存儲目錄(路徑與 my.cnflog-bin 配置一致),執(zhí)行解析命令:
# 進(jìn)入Binlog目錄
cd /data/mysql/binlog/
# 解析命令:--start-position=起始位點(diǎn) --stop-position=結(jié)束位點(diǎn)(可選)
mysqlbinlog --start-position=212 --stop-position=763 mysql-bin.000006 -vv > /data/binlog_parse_01.sql
  • 參數(shù)說明:-vv 輸出詳細(xì)行數(shù)據(jù)(含字段值),> 重定向到指定文件便于查看。
  1. 查看解析結(jié)果
cat /data/binlog_parse_01.sql

二、基于時間解析(按時間范圍篩選)

適用場景:已知數(shù)據(jù)變更的大致時間(如排查某時間段的數(shù)據(jù)異常)

核心命令:

# 解析指定時間后的數(shù)據(jù)(格式:YYYY-MM-DD HH:MM:SS)
mysqlbinlog --start-datetime="2026-02-03 15:29:55" mysql-bin.000006 > /data/binlog_parse_02.sql
# 解析時間區(qū)間內(nèi)的數(shù)據(jù)(添加--stop-datetime)
mysqlbinlog --start-datetime="2026-02-03 15:29:55" --stop-datetime="2026-02-03 15:33:48" mysql-bin.000006 > /data/binlog_parse_02_1.sql

注意:

  • 時間格式需嚴(yán)格匹配,建議精確到分鐘(秒級可選)。
  • 若 Binlog 文件較多,可先用 mysqlbinlog --base64-output=decode-rows -v 文件名 | grep "時間關(guān)鍵詞" 快速定位目標(biāo)文件。

三、基于 GTID 解析(精準(zhǔn)定位單個事務(wù))

適用場景:MySQL 8.0+ 版本,已開啟 GTID(全局事務(wù) ID),需精準(zhǔn)定位單個事務(wù)(如主從復(fù)制中跳過錯誤事務(wù))

實(shí)操步驟:

  • 確認(rèn) GTID 狀態(tài)
  • 先確保 GTID 已開啟,查看當(dāng)前已執(zhí)行的 GTID:
show master status\G

輸出中 Executed_Gtid_Set 字段即為已執(zhí)行的 GTID(格式:UUID:事務(wù)序號,如 dac2d0d1-d4cc-11f0-8896-000c295cba4b:1-94954)。

  1. 解析指定 GTID 的事務(wù)
mysqlbinlog --include-gtids 'dac2d0d1-d4cc-11f0-8896-000c295cba4b:1-94954' mysql-bin.000007 -vv > /data/binlog_parse_03.sql
  • 參數(shù)說明:--include-gtids 指定需解析的 GTID(多個用逗號分隔),支持范圍(如 1-100)。

四、僅解析指定數(shù)據(jù)庫的 Binlog

適用場景:多庫共用一個 MySQL 實(shí)例,僅需查看某一數(shù)據(jù)庫的變更(如隔離業(yè)務(wù)庫數(shù)據(jù)操作)

實(shí)操步驟:

  1. 生成多庫測試數(shù)據(jù)(可選)
# 查看當(dāng)前位點(diǎn)
show master status\G
-- 切換到maria庫創(chuàng)建表
use maria;
create table binlog_test_01(id int);
-- 切換到test庫創(chuàng)建表
use test;
create table aaa(id int);
-- 記錄位點(diǎn)范圍(起始:948,結(jié)束:1339)
show master status\G

  1. 解析指定數(shù)據(jù)庫
# -d 參數(shù)指定數(shù)據(jù)庫名,限定位點(diǎn)范圍
mysqlbinlog --start-position=2147 --stop-position=2540 -d maria mysql-bin.000012 -vv > /data/binlog_parse_04.sql

解析結(jié)果僅包含 martin 庫的變更,test 庫的操作會被過濾。

五、解析加密的 Binlog

適用場景:MySQL 開啟 Binlog 加密存儲(增強(qiáng)數(shù)據(jù)安全性),需通過服務(wù)認(rèn)證解析(本地文件無法直接讀?。?/h3>

步驟 1:開啟 Binlog 加密(前置配置)

# 1. 編輯MySQL配置文件
vim /data/mysql/conf/my.cnf
# 2. 添加以下配置
early-plugin-load = keyring_file.so  # 加載密鑰插件
keyring_file_data = /data/mysql/keyring  # 密鑰存儲路徑
binlog_encryption = on  # 開啟加密
# 3. 重啟MySQL服務(wù)
/etc/init.d/mysql.server restart
# 4. 驗(yàn)證加密是否生效
show binary logs;

步驟 2:解析加密 Binlog

# 核心命令:--read-from-remote-server 從服務(wù)端讀?。ū镜匚募用軣o法直接解析)
mysqlbinlog --read-from-remote-server -uroot -p --start-position=212 --stop-position=548 mysql-bin.000007 -vv > /data/binlog_parse_05.sql

執(zhí)行后輸入 MySQL 密碼,即可生成解密后的解析文件。

步驟 3:關(guān)閉 Binlog 加密(可選)

# 1. 編輯配置文件,刪除加密相關(guān)配置
vim /data/mysql/conf/my.cnf
# 刪除以下行:
# early-plugin-load = keyring_file.so
# keyring_file_data = /data/mysql/keyring
# binlog_encryption = on
# 2. 備份舊加密Binlog(避免重啟失?。?
mkdir /data/mysql/backup
mv /data/mysql/binlog/* /data/mysql/backup/
# 3. 重啟MySQL服務(wù)
/etc/init.d/mysql.server restart
# 4. 驗(yàn)證關(guān)閉
show binary logs;

總結(jié)

解析方式核心參數(shù)適用場景
基于位點(diǎn)–start-position/–stop-position已知變更位點(diǎn)
基于時間–start-datetime/–stop-datetime已知變更時間
基于 GTID–include-gtidsMySQL 8.0+ 精準(zhǔn)定位事務(wù)
指定數(shù)據(jù)庫-d 數(shù)據(jù)庫名多庫隔離,僅需某庫變更
加密 Binlog–read-from-remote-server開啟 Binlog 加密的場景

注意事項(xiàng):

  • 解析時需確保 mysqlbinlog 工具版本與 MySQL 服務(wù)器版本一致(避免兼容性問題)。
  • 敏感環(huán)境中,解析結(jié)果文件需做好權(quán)限控制(如 chmod 600),防止數(shù)據(jù)泄露。
  • 若需恢復(fù)數(shù)據(jù),可直接執(zhí)行解析后的 SQL 文件(mysql -uroot -p xxx.sql)。

如果遇到解析失敗、位點(diǎn)定位不準(zhǔn)等問題,歡迎在評論區(qū)交流~ 后續(xù)將更新 Binlog 日志清理、主從復(fù)制實(shí)戰(zhàn)等內(nèi)容,記得關(guān)注!

到此這篇關(guān)于MySql Binlog的5種場景+實(shí)操步驟全解析的文章就介紹到這了,更多相關(guān)mysql binlog解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 數(shù)據(jù)庫定時備份的幾種方式(全面)

    MySQL 數(shù)據(jù)庫定時備份的幾種方式(全面)

    在操作數(shù)據(jù)過程中,可能會導(dǎo)致數(shù)據(jù)錯誤,甚至數(shù)據(jù)庫奔潰,而有效的定時備份能很好地保護(hù)數(shù)據(jù)庫。本篇文章主要講述了幾種方法進(jìn)行 MySQL 定時備份數(shù)據(jù)庫。
    2021-09-09
  • MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié)

    MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié)

    這篇文章主要介紹了MYSQL數(shù)據(jù)庫數(shù)據(jù)拆分之分庫分表總結(jié),需要的朋友可以參考下
    2016-07-07
  • 將MySQL的表數(shù)據(jù)全量導(dǎo)入clichhouse庫中

    將MySQL的表數(shù)據(jù)全量導(dǎo)入clichhouse庫中

    這篇文章主要介紹了將MySQL的表數(shù)據(jù)全量導(dǎo)入clichhouse庫中,詳細(xì)介紹全量導(dǎo)出MySQL數(shù)據(jù)到clickhouse表的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • MySQL為何不建議使用默認(rèn)值為null列

    MySQL為何不建議使用默認(rèn)值為null列

    本文主要介紹了MySQL為何不建議使用默認(rèn)值為null列,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MySQL批量導(dǎo)入Excel數(shù)據(jù)(超詳細(xì))

    MySQL批量導(dǎo)入Excel數(shù)據(jù)(超詳細(xì))

    這篇文章主要介紹了MySQL批量導(dǎo)入Excel數(shù)據(jù)(超詳細(xì)),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-08-08
  • MySql事務(wù)及ACID實(shí)現(xiàn)原理詳解

    MySql事務(wù)及ACID實(shí)現(xiàn)原理詳解

    這篇文章主要為大家介紹了MySql事務(wù)及ACID實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決

    MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決

    這篇文章主要介紹了MySQL數(shù)據(jù)庫存入Date時天數(shù)會少一天的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL數(shù)據(jù)庫表(table)操作

    MySQL數(shù)據(jù)庫表(table)操作

    本文主要介紹了MySQL數(shù)據(jù)庫表的操作,包括創(chuàng)建表、查看表、修改表、修改表的列和表名稱、刪除表和列,每一步都有具體的操作步驟和示例,幫助讀者更好地理解和操作,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • SQL實(shí)現(xiàn)數(shù)據(jù)過濾流程詳解

    SQL實(shí)現(xiàn)數(shù)據(jù)過濾流程詳解

    這篇文章主要介紹了SQL實(shí)現(xiàn)數(shù)據(jù)過濾流程,當(dāng)我們在SQL中查詢數(shù)據(jù)時,肯定是有一些數(shù)據(jù)是我們不需要的,所以我們此時就要對數(shù)據(jù)進(jìn)行過濾,以篩選出我們僅需要的數(shù)據(jù)
    2023-01-01
  • MySQL 使用規(guī)范總結(jié)

    MySQL 使用規(guī)范總結(jié)

    MySQL已經(jīng)成為世界上最受歡迎的數(shù)據(jù)庫管理系統(tǒng)之一,無論是用在小型開發(fā)項(xiàng)目上,還是用在構(gòu)建那較大型的網(wǎng)站,MySQL都用實(shí)力證明了自己是一個穩(wěn)定、可靠、快速、可信的系統(tǒng),足以勝任任何數(shù)據(jù)存儲業(yè)務(wù)的需要。本文總結(jié)了MySQL的使用規(guī)范
    2020-09-09

最新評論

雅江县| 肇庆市| 隆安县| 丰顺县| 兴安盟| 巴彦淖尔市| 金乡县| 康定县| 昔阳县| 永德县| 溆浦县| 锡林郭勒盟| 和平区| 定结县| 无棣县| 北票市| 西乡县| 枝江市| 广昌县| 唐海县| 米脂县| 麦盖提县| 北碚区| 舟山市| 唐海县| 阿城市| 张掖市| 宁阳县| 雷州市| 土默特左旗| 彩票| 平武县| 浮山县| 博白县| 呼图壁县| 新河县| 迁西县| 塔城市| 明水县| 韶山市| 易门县|