目錄
很多時候,當我們的業務資料產生了不正常的變化,但卻無法得知這類操作是在**進行,並且如何進行,單單從程式當面排查很費力。那麼就需要通過分析資料庫日誌來得到歷史執行sql,根據sql執行邏輯來確認**位置,進而確認是否是bug,亦或是誤操作等。
binlog
是mysql server層記錄的二進位制日誌檔案,用於記錄mysql的資料更新或者潛在更新(比如delete語句執行刪除而實際並沒有符合條件的資料),select或show
等不會修改資料的操作不會記錄在binlog中。
binlog檔案是我們得到歷史執行sql的基礎,但是僅僅只能得到歷史的dml&ddl
操作,而不能得到查詢操作。
由於binlog是二進位制檔案,所以無法直接使用文字開啟。所以需要通過mysqlbinlog解析二進位制檔案後才可讀。由於windows下面無法使用管道命令如此簡潔的提取出sql,所以這邊就只寫linux下的使用方法。我平時的做法會將windows下面的binlog拷貝到linux下,再利用linux的管道命令解析。
linux下常見使用命令:
mysqlbinlog /data/mysql_data/bin.000008 --database test --base64-output=decode-rows -vv --skip-gtids=true |grep -c 2 -i "delete from audit_orga_specialtype" > /opt/sql.log
結果示例:
對於常見的資料庫(sql server 、oracle 、mysql
)來說,都具有類似相同的日誌來記錄歷史sql,不同的只是日誌的記錄方式和解析方法:
mysql bin日誌 MySQL bin日誌解析
很多時候,當我們的業務資料產生了不正常的變化,但卻無法得知這類操作是在 進行,並且如何進行,單單從程式當面排查很費力。那麼就需要通過分析資料庫日誌來得到歷史執行sql,根據sql執行邏輯來確認 位置,進而確認是否是bug,亦或是誤操作等。一.binlog簡介 binlog 是mysql server...
mysql bin日誌檔案清理
如果你的mysql伺服器不需要做主從複製的話,建議通過修改my.cnf檔案,來設定不生成這些檔案,只要刪除my.cnf中的下面一行就可以了。log bin mysql bin 如果你需要複製,最好控制一下這些日誌檔案保留的天數,可以通過下面的配置設定日誌檔案保留的天數 expire logs day...
如何刪除mysql bin 0000X 日誌檔案
一 資料庫版本 server version 5.1.40 二 進入資料庫 root kt01 mysql uroot p enter password 輸入密碼 welcome to the mysql monitor.commands end with or g.your mysql conne...