mysqlbinlog提取单表

将下面python脚本与binlog日志放到一个目录下,然后再执行。

脚本内容:

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

import sys
import os
import io

binlogfile = sys.argv[1]
database_name = sys.argv[2]
table_name = sys.argv[3]

def format_binlog():
        os.system('mysqlbinlog --base64-output=decode-rows -v '+binlogfile+'>'+binlogfile+'.txt')

print "1"

def pickupbinlog():
        f = io.open(binlogfile+'.txt','r')
        fw = io.open(database_name+'_'+table_name+'.txt','a')
        priv_str = ''
        priv_line = ''
        goal_flag = 0
        for row in f:
# 处理首行
                if row[0:3] == '###' and priv_str != '###':
                        if database_name in row and table_name in row:
                                goal_flag = 1
                                fw.write(priv_line)
                                fw.write(row)
# 处理末行
                if row[0:3] != '###' and priv_str == '###':
                                goal_flag = 0
# 处理目标操作
                if row[0:3] == '###' and priv_str == '###' and goal_flag == 1:
                        fw.write(row)
                priv_str = row[0:3]
                priv_line = row
        f.close()
        fw.close()

if __name__ == '__main__':
# python2.7 pickupbinlog.py mysql-bin.001051 dbname tablename
# python3 pickupbinlog.py mysql-bin.001051 dbname tablename
        format_binlog()
        pickupbinlog()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值