内容简介:python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据更改时失效缓存,监听dml事件通知下游业务方做对应处理。其项目信息获取源代码
一 简介
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
2.2 核心类介绍
python-mysql-replication 的入口是类BinLogStreamReader(),我们在使用该 工具 时需要实例化一个BinLogStreamReader()对象 stream, BinLogStreamReader 通过 ReportSlave 向主库注册作为一个slave角色,用于接受MySQL的binlog广播 。有兴趣的可以研究其代码具体实现。
该实例提供解析 binlog 各种事件的集合,每个事件也是一个对象。
初始化BinLogStreamReader()实例需要使用的参数如下:
2.3 如何使用呢?
最简单的用法 脚本名 pyreplica.py
开启两个窗口,一个窗口执行,另外一个窗口操作mysql 写入或者修改数据
python pyreplica.py
输出如下:
2.3 拓展
基于该工具提供的日志事件解析我们可以做很多事情,比较有名的工具 binlog2 sql 利用该工具解析binlog 做数据回滚 。
mysql-replication.py
执行脚本结果 如下图
除了解析binlog,我们还可以用python-mysql-replication 做数据全量加增量迁移。比如仅仅迁移某些大表而不是整个库的时候,可以用到。有兴趣的朋友可以想想大概的算法。
-The End-
本公众号长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享,个人成长和自我管理等主题,欢迎扫码关注。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- repmgr 5.1 发布,PostgreSQL 集群复制管理与故障转移工具
- repmgr 4.3 发布,PostgreSQL 复制与故障转移管理工具
- repmgr 4.3 发布,PostgreSQL 复制与故障转移管理工具
- repmgr 4.4 发布,PostgreSQL 集群复制管理与故障转移工具
- repmgr 4.4发布,PostgreSQL 集群复制管理与故障转移工具
- MongoDB复制选举原理及复制集管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
企业应用架构模式
Martin Fowler、王怀民、周斌 / 王怀民、周斌 / 机械工业出版社 / 2004-7 / 49.00元
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并一起来看看 《企业应用架构模式》 这本书的介绍吧!