亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 25210 | 回復(fù): 10
打印 上一主題 下一主題

mysqlbinlog分析 [復(fù)制鏈接]

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-08-10 10:44 |只看該作者 |倒序?yàn)g覽
使用和不使用--base64-output=decode-rows的區(qū)別:

[root@mysql-n1 binlog]# mysqlbinlog--base64-output=decode-rows ./mysql
-bin.000003 >base_rows.log
[root@mysql-n1 binlog]# mysqlbinlog./mysql-bin.000003 >nobase_rows.log

用對(duì)比工具分析兩個(gè)log的結(jié)果:



可以知道row-format的binlog消失了。

因此:

[root@mysql-n1 binlog]# mysqlbinlog --base64-output=decode-rows -v ./mysql-bin.000003

可以注釋掉row-format的binlog,出現(xiàn)可識(shí)別的sql(不過也是注釋的)


論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
2 [報(bào)告]
發(fā)表于 2012-08-10 10:48 |只看該作者
再繼續(xù)通過分析binlog

[root@mysql-n1 binlog]# mysqlbinlog --base64-output=decode-rows -v ./my
sql-bin.000003  |  grep -e "^##* UPDATE" -e "^##* INSERT" -e "^##* DELE
TE" -e "^##* REPLACE" -i -e "^update" -e "^insert" -e "^delete" -e "^re
place"
### INSERT INTO zsd.user
### INSERT INTO zsd.user
### INSERT INTO zsd.user
### INSERT INTO zsd.user
### INSERT INTO zsd.user
### INSERT INTO zsd.user

可以把每條的記錄(update,insert,delete,replace)都可以統(tǒng)計(jì)出來。

其中:
grep指令:
-e, --regexp=PATTERN      use PATTERN as a regular expression
-i, --ignore-case         ignore case distinctions (忽視大小寫差別)

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
3 [報(bào)告]
發(fā)表于 2012-08-10 11:12 |只看該作者
學(xué)習(xí)awk指令:

awk例子:
[root@mysql-n1 binlog]# vi test
wo zhang sheng dong

[root@mysql-n1 binlog]# cat ./test |awk -F ' ' '{print $1,$2,$3}'
wo zhang sheng

這里awk的意思是:以空格為分界符,輸出前三個(gè)域。

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
4 [報(bào)告]
發(fā)表于 2012-08-10 11:30 |只看該作者
學(xué)習(xí)sed指令:基本用法

[root@mysql-n1 binlog]# vi test2
###zhang
###liu
###hu

[root@mysql-n1 binlog]# cat test2 |sed 's/^##*//g'
zhang
liu
hu

sed指令有著替換的功能:類似的例子:s/pig/cow/g (意思:把pig變成cow)

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
5 [報(bào)告]
發(fā)表于 2012-08-10 11:32 |只看該作者
基于awk和sed命令的使用,我在繼續(xù)分析mysql日志,可以得到:

[root@mysql-n1 binlog]# mysqlbinlog --base64-output=decode-rows -v ./my
sql-bin.000003  |  grep -e "^##* UPDATE" -e "^##* INSERT" -e "^##* DELE
TE" -e "^##* REPLACE" -i -e "^update" -e "^insert" -e "^delete" -e "^re
place"|  awk -F ' ' ' { print $1,$2,$3,$4}' |  sed 's/^##*//g'
INSERT INTO zsd.user
INSERT INTO zsd.user
INSERT INTO zsd.user
INSERT INTO zsd.user
INSERT INTO zsd.user
INSERT INTO zsd.user
UPDATE zsd.user
DELETE FROM zsd.user

替換掉前面所用的'###'

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
6 [報(bào)告]
發(fā)表于 2012-08-10 11:36 |只看該作者
使用tr '[A-Z]' '[a-z]' (把所有的大寫字母變成小寫)

[root@mysql-n1 binlog]# mysqlbinlog --base64-output=decode-rows -v ./my
sql-bin.000003  |  grep -e "^##* UPDATE" -e "^##* INSERT" -e "^##* DELE
TE" -e "^##* REPLACE" -i -e "^update" -e "^insert" -e "^delete" -e "^re
place"|  awk -F ' ' ' { print $1,$2,$3,$4}' |  sed 's/^##*//g'|tr '[A-Z
]' '[a-z]'
insert into zsd.user
insert into zsd.user
insert into zsd.user
insert into zsd.user
insert into zsd.user
insert into zsd.user
update zsd.user
delete from zsd.user

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
7 [報(bào)告]
發(fā)表于 2012-08-10 11:59 |只看該作者
學(xué)習(xí)sed命令,基礎(chǔ)第二階:

sed -e "s/\t/ /g;s/\`//g;s/(.*$//;"

其中-e:
  -e script, --expression=script
                 add the script to the commands to be executed



上面的命令:"s/\t/ /g;s/\`//g;s/(.*$//;" 得拆分看:

s/\t/ /g; (把制表符換成空格)
s/\`//g;  (把`換成空)
s/(.*$//; (把(.*----.*為撿破爛模式,通吃所有的字符串.)

例子:
[root@mysql-n1 binlog]# vi test3
`zhangshengdong(..???\\zkdkjsdji%##

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
8 [報(bào)告]
發(fā)表于 2012-08-10 12:00 |只看該作者
[root@mysql-n1 binlog]# cat ./test3 | sed -e "s/\t//g;s/\`//g;s/(.*$//;"
zhangshengdong

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
9 [報(bào)告]
發(fā)表于 2012-08-10 12:05 |只看該作者
然后,再繼續(xù)分析binlog日志:

mysqlbinlog --base64-output=decode-rows -v ./mysql-bin.000003  \
|  grep -e "^##* UPDATE" -e "^##* INSERT" -e "^##* DELETE" -e "^##* \
REPLACE" -i -e "^update" -e "^insert" -e "^delete" -e "^replace"|  \
awk -F ' ' ' { print $1,$2,$3,$4}' |  sed 's/^##*//g' | tr '[A-Z]' '[a-z]' \
|  awk -F ' ' ' { if($1=="update") {$3=""} print $1,$2,$3}' \
|  sed -e "s/\t/ /g;s/\`//g;s/(.*$//;s/[a-zA-Z0-9\_\-]*\.//;s/ set .*$//;s/ as .*$//" \

insert into user
insert into user
insert into user
insert into user
insert into user
insert into user
update user
delete from user

(把前面的zsd.都祛除了)

論壇徽章:
1
2015亞冠之本尤德科
日期:2015-06-05 17:25:48
10 [報(bào)告]
發(fā)表于 2012-08-10 12:12 |只看該作者
sort命令:

sort -nr

-n, --numeric-sort          compare according to string numerical value
-r, --reverse               reverse the result of comparisons

例子:
[root@mysql-n1 binlog]# cat finally.log
insert into user
insert into user
insert into user
insert into user
insert into user
insert into user
update user
delete from user
[root@mysql-n1 binlog]# cat finally.log |sort
delete from user
insert into user
insert into user
insert into user
insert into user
insert into user
insert into user
update user
[root@mysql-n1 binlog]# cat finally.log |sort |uniq -c
      1 delete from user
      6 insert into user
      1 update user
[root@mysql-n1 binlog]# cat finally.log |sort |uniq -c |sort -nr
      6 insert into user
      1 update user
      1 delete from user
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP