天天看点

MySQL 5.7 增强的离线分析工具innochecksum

最近正准备写个工具来分析ibd文件中的数据分布,刚扫了下mysql5.7的代码,发现这个功能已经在5.7.2版本中完成了;在新版本中增强了innochecksum的一些分析功能,完全可以满足我的需求

相关代码见:

<a href="http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/6065">http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/6065</a>

http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/5912

http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/5841

http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/5684

唯一的缺点就是:文件不可以打开!换句话说,可能需要关闭实例才能使用如下功能!!!

以下列出了几个感兴趣的命令,具体的可以参考文档!

                                                                            .

输出ibd中总的page数:

可以指定checksum的算法(crc32/innodb/none):

指定–no-check –write 重写无效的page checksum值 ,也可以为–write指定值innodb/crc32/none 来写入page中指定的值   (这应该属于危险操作)

                                                                           .

使用–page-type-summary输出各种page类型的个数:

指定 –page-type-dump则将每个page的detail都输出到指定文件中

指定–log输出每个page的checksum值

另外之前一直无法支持的压缩表checksum的问题也得到了解决,和正常的ibd文件一样解析

继续阅读