通過BINLOG日誌查詢指定日期的SQL語句

2021-12-30 10:37:18 字數 2619 閱讀 2934

通過binlog日誌查詢指定日期的sql語句

在95資料庫伺服器查詢posts.post_thread的postid=1652971,在 2013-02-24 日執行的對資料有修改的sql語句

www.2cto.com  

# grep datadir /etc/mysql/my.cnf

datadir                                         = /ssd/mysql

# cd /ssd/mysql

# mysql -a -e "show master status " | awk 'nr==2' | awk -f. ''

mysqld-bin  這裡的內容為mysqlbinlog日誌的字首,因為如果是從資料庫,還會有replylog.

找binlog日誌,取前一天的最後乙個日誌,以及24號建立的所有的日誌

# ls –l

…-rw-rw---- 1 mysql mysql 1075302338 feb 22 04:00 mysqld-bin.000035

-rw-rw---- 1 mysql mysql 1092104643 feb 22 14:10 mysqld-bin.000036

-rw-rw---- 1 mysql mysql 1073742083 feb 23 00:06 mysqld-bin.000037

-rw-rw---- 1 mysql mysql 1073742129 feb 23 05:26 mysqld-bin.000038

-rw-rw---- 1 mysql mysql 1073742102 feb 23 15:30 mysqld-bin.000039

-rw-rw---- 1 mysql mysql 1073742095 feb 24 01:36 mysqld-bin.000040

-rw-rw---- 1 mysql mysql 1076478877 feb 24 09:00 mysqld-bin.000041

-rw-rw---- 1 mysql mysql 1087015180 feb 24 15:00 mysqld-bin.000042

-rw-rw---- 1 mysql mysql 1073742090 feb 25 01:31 mysqld-bin.000043

-rw-rw---- 1 mysql mysql 1073742037 feb 25 08:47 mysqld-bin.000044

-rw-rw---- 1 mysql mysql 1073741919 feb 25 15:45 mysqld-bin.000045

-rw-rw---- 1 mysql mysql 1073742218 feb 26 03:36 mysqld-bin.000046

-rw-rw---- 1 mysql mysql  689342483 feb 26 09:45 mysqld-bin.000047

…這個時候我們需要分析的binlog日誌為mysqld-bin.0000

# ls mysqld-bin.0000

mysqld-bin.000039  mysqld-bin.000040  mysqld-bin.000041  mysqld-bin.000042

# cat /root/findsql.sh

#!/bin/bash

binlogdir=`cat /etc/mysql/my.cnf | grep datadir | awk ''`

mysql="/usr/bin/mysql -a -e "

database="posts"

cd "$"  

binlogs=`ls mysqld-bin.0000`

for i in $

do  $ "show binlog events in '$'" | grep "query">>"$/$.sql"

done

# chmod 755 /root/findsql.sh

先把binlog日誌匯出來,別做任何修改。至少這樣的語句我們就認識了,然後再來搜尋我們需要的語句。  www.2cto.com  

# /root/findsql.sh

# ls mysqld-bin.0000.sql

mysqld-bin.000039.sql  mysqld-bin.000041.sql

mysqld-bin.000040.sql  mysqld-bin.000042.sql

在這些sql中對資料進行篩選,這裡的篩選需要看你自己的能力了,

會awk sed grep這三個就夠了,awk建議必會。grep平時用的也特別多,應該不難。

# cat /root/parsesql.sh

#!/bin/bash

for i in `ls mysqld-bin.0000.sql`do 

awk -f 'use `posts`; ' '' $i | grep -v 'chapterclick=chapterclick' | grep -v 'novelscore=novelscore' | grep 1652971 >> 1652971.sql

echo $i

done

# chmod 755 /root/parsesql.sh

# /root/parsesql.sh

1652971.sql這個裡面的內容就是我們最後的成果

Spring boot指定日誌配置

給類路徑下,放上每個日誌框架,自己的配置檔案即可 springboot就不使用,預設配置的了 直接就被日誌框架識別了 logback spring.xml 日誌框架,不直接載入日誌的配置項 由springboot解析日誌配置 可以使用springboot的高階profile功能 可以指定某段配置只在...

Mysql通過binlog檢視sql日誌

cd usr local mysql bin mysqlbinlog base64 output decode rows start datetime 2020 11 06 16 15 00 stop datetime 2020 11 06 16 42 00 desktop mysql bin.10...

Redis日誌級別和指定日誌檔案

1.從conf檔案可知 redis 總共支援四個級別 debug verbose notice warning debug 會列印生成大量資訊,適用於開發 測試階段 verbose 包含很多不太有用的資訊,但是不像debug級別那麼混亂 notice 適度冗長,適用於生產環境 warning 僅記錄...