基于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复制工具的示例分析”这篇文章的所有内容,感谢各位的阅读! (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |