web用户界面可以更轻松地浏览mysql的binlog文件。

mysql-binlog-explorer的Python项目详细描述


#mysql binlog资源管理器

MySQL BiLoSQL是复制的基础,但在使用^ TT1}$时,它们可以用于跟踪数据库上的强写操作。这样我们就可以看到实际应用于数据库的所有更改。例如:像delete from table where timestamp > ?这样的语句可能只影响300万或100万行。除此之外,有时我们有很多非常快的语句,但是当在一个事务中组合在一起时,可能需要很多时间。

此应用程序旨在帮助跟踪哪些事务过于写入意图。

##用法(简化)

` pip install mysql-binlog-explorermysql-binlog-explorer~/logs/mysql-bin-changelog.411078--tenant-identifier company_id  --schema-ddl schema/my_db.ddl `

我们有两个不需要的参数(但它们非常有用)。

  • schema-ddl是一个包含创建数据库的ddl指令的文件。它将用于显示语句中的列名。
  • tenant-identifier用于存储租户ID的列的名称(通常是在每个表中重复的列名)。这将有助于生成图表。

##使用(真正的交易)

  • 启用binlog(配置因环境而异)
  • 为binlog启用行格式:binlog_format=ROW
  • 此类更改需要重新启动服务器,因此请小心

考虑到您已经使用brew安装了本地mysql,执行上述步骤意味着:

` mysql.server start --log-bin=binlog--binlog-format=ROW `

现在你需要实际的日志。在mysql会话中,请执行以下操作:

`sql SHOW BINARY LOGS; -- get the name of the binary log that you want to check `

现在下载:

` mysqlbinlog -h <HOST> -u <USER> -p<PASSWORD>--read-from-remote-server--base64-output=decode-rows-vv <NAME_FROM_STATEMENT_ABOVE> > my-bin-log.txt `

不要忘记--base64-output=decode-rows-vv,解析器必须工作!

现在就用它吧。

` mysql-binlog-explorermy-bin-log.txt `

##屏幕截图

啊![图像](https://user-images.githubusercontent.com/771129/42190310-c3e6ba1e-7e32-11e8-941a-cebb80ad009c.png

使用租户信息时,应用程序可以绘制一个图表,其中包含每个租户标识符的事务/更改分布。

##注意事项

  • 仅使用mysql 5.6 binlogs进行测试,其他版本可能无法按预期工作。
  • 解析的结果完全存储在内存中,因此对于非常大的文件集可能会崩溃。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
摆脱Java中的“for循环”   java如何在EJB3中使用Quartz?   多线程应用程序中的java独立日志文件   lambda如何在Java8流中应用groupby>mapping>Reduce   除了稀疏的Java 2D阵列,什么是有内存意识的替代方案?   java在不同的JUnit测试类之间共享数据的最佳方式是什么   如何在spring中重写JndiObjectFactoryBean并在java中设置解密密码   在Java中使用字符串作为IP创建socket和从文件中读取IP之间的区别?   java如何深度复制不规则二维数组   java创建带有独立ImageIcon的多个JToggleButton   java如何每秒拍摄25张屏幕截图   java Mc bukkit heal插件提供/usage而不是命令   java GridView项目与安卓合并   java为什么这个messageListener不工作?   单元测试Java模拟类方法和注入服务