MySQL binlog分析小脚本

  #!/usr/bin/python

  # -*- coding: utf-8 -*-

  #python binlog_analyze.py binlog.000008 '2020-03-01 00:00:00' '2022-03-01 00:00:00'

  import os,sys

  binlog_name = sys.argv[1]

  start_datetime = sys.argv[2]

  stop_datetime = sys.argv[3]

  binlog_command = "mysqlbinlog --no-defaults -vvv --start-datetime='%s' --stop-datetime='%s' %s" % (start_datetime,stop_datetime,binlog_name)

  binlog_line=os.popen(binlog_command).readlines()

  binlog_list=[]

  for line in binlog_line:

扫描二维码关注公众号,回复: 12737874 查看本文章

  if ('UPDATE' in line):

  update = ' '.join(line.split()[:3]).replace("### ","")

  binlog_list.append(update)

  if ('INSERT' in line):

  insert = ' '.join(line.split()[:4]).replace("### ","")

  binlog_list.append(insert)

  if ('DELETE' in line):

  delete = ' '.join(line.split()[:4]).replace("### ","")

  binlog_list.append(delete)

  if ('alter table' in line):

  alter = ' '.join(line.split()[:3])

  binlog_list.append(alter)

  binlog_set = list(set(binlog_list))

  result = []

  for item in binlog_set:

  result.append([binlog_list.count(item),(item)])

  result.sort()

  for i in result:大连专业人流医院 http://www.dlrlyy.net/

  print (str(i[0])+'\t'+i[1].upper())

  [root@zijie binlog]# python3 binlog_analyze.py binlog.000008 '2020-03-01 00:00:00' '2022-03-01 00:00:00'

  1 DELETE FROM `TEST`.`T2`

  1 INSERT INTO `TEST`.`T2`

  1 UPDATE `TEST`.`T2`

  1 ALTER TABLE T1

  2 DELETE FROM `TEST`.`T1`

  2 INSERT INTO `TEST`.`T1`

  2 UPDATE `TEST`.`T1`

猜你喜欢

转载自blog.51cto.com/14503791/2660593