加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

基于python中mysql复制工具的示例分析

发布时间:2022-02-08 10:34:10 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要为大家展示了基于python中mysql复制工具的示例分析,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下基于python中mysql复制工具的示例分析这篇文章吧。 一 简介 python-mysql-replication 是基于pyt
       这篇文章主要为大家展示了“基于python中mysql复制工具的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于python中mysql复制工具的示例分析”这篇文章吧。
 
一 简介
       python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据更改时失效缓存,监听dml事件通知下游业务方做对应处理。
 
其项目信息
 
二 实践
2.1 安装配置
获取源代码
 
使用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 拓展
基于该工具提供的日志事件解析我们可以做很多事情,比较有名的工具 binlog2sql 利用该工具解析binlog 做数据回滚 。
 
mysql-replication.py
 
除了解析binlog,我们还可以用python-mysql-replication 做数据全量加增量迁移。比如仅仅迁移某些大表而不是整个库的时候,可以用到。
 
以上是“基于python中mysql复制工具的示例分析”这篇文章的所有内容,感谢各位的阅读!

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读