一 简介

python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据更改时失效缓存,监听dml事件通知下游业务方做对应处理。

其项目信息

二 实践

2.1 安装配置

获取源代码

git clone http://www.github.com/noplay/python-mysql-replication

使用pip 安装

pip install mysql-replication

权限: 可以直接使用复制账号也可以使用其他账号,但是该账号必须 SELECT, REPLICATION SLAVE, REPLICATION CLIENT 权限

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'replicator'@'%' IDENTIFIED BY 'xxxxx';
log_bin=on ,binlog_format=row,binlog_row_image=FULL

该实例提供解析 binlog 各种事件的集合,每个事件也是一个对象。

初始化BinLogStreamReader()实例需要使用的参数如下:

2.3 如何使用呢?

最简单的用法 脚本名 pyreplica.py

开启两个窗口,一个窗口执行,另外一个窗口操作mysql 写入或者修改数据

python pyreplica.py

输出如下:

2.3 拓展

基于该工具提供的日志事件解析我们可以做很多事情,比较有名的工具 binlog2sql 利用该工具解析binlog 做数据回滚 。

mysql-replication.py

执行脚本结果 如下图

除了解析binlog,我们还可以用python-mysql-replication 做数据全量加增量迁移。比如仅仅迁移某些大表而不是整个库的时候,可以用到。有兴趣的朋友可以想想大概的算法。

总结

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android快速开发不可或缺的11个工具类(下载)
  3. Android(安卓)- Manifest 文件 详解
  4. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  5. Selector、shape详解(一)
  6. android支持多行的radiogroup
  7. android adb工具
  8. Android(安卓)开发环境入门
  9. android2.2资源文件详解4--menu文件夹下的菜单定义

随机推荐

  1. android 实用代码片段整理
  2. 使用Eclipse+ADT开发android 1.5程序
  3. Android网络游戏之神农诀项目开发--视频
  4. 如何利用ant成生开源中的android初始环境
  5. Gradle sync failed: Cause: error in op
  6. Android编程实现自定义ProgressBar样式示
  7. Android实现带动画效果的Tab Menu
  8. Android学习(三)
  9. Android:控件布局(线性布局)LinearLayout
  10. Android抛出异常NetworkOnMainThreadExce