mysql log table_mysqlbinlog功能扩展--table参数

文章介绍了如何扩展mysqlbinlog工具,增加table参数来过滤并只显示指定数据库表的操作记录,以提高在ROW模式下分析binlog日志的效率。通过对MySQL 5.5.18源码的少量修改,实现了table参数的功能,并提供了相应的patch和文档说明。
摘要由CSDN通过智能技术生成

目的

mysqlbinlog在分析mysql的binlog日志时,有时需要针对某个表的操作进行分析。但是这个表属于“冷数据”,操作记录相对较少,而其他表操作往往很频繁,binlog日志量特别大。尤其是当binlog的模式设置为ROW时,情况就更加严重了,往往如大海捞针。为了提高获取binlog日志的有效性,对mysqlbinlog功能进行扩展,增加table参数,分析指定数据库的表操作记录。

实现

以下实现基于MySQL 5.5.18源码,实现思路:参考--database参数的逻辑;修改原则:尽量少的变更MySQL源码,尽可能的优雅实现。

1、增加全局变量

首先增加两个全局变量,用于存储table参数的状态和table的值,具体如下所示:

/* One table to filter out (Added by wangheng, email to wangheng.wh@alibaba-inc.com.).*/

staticbool one_table=0;

staticchar* table_name = 0;

2、增加过滤函数

过滤函数主要是根据one_table状态和table的值,比较当前事件涉及的表是否需要获取。具体如下所示:

/*

* Check the given table should be filtered out, according to the --table=X option

* @param

*     log_tbname: Name of table.

* @return

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值