• ADADADADAD

    基于python中mysql复制工具的示例分析[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:25:06

    作者:文/会员上传

    简介:

    一 简介python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一 简介

    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 权限

    GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON.TO'replicator'@'%'IDENTIFIEDBY'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复制工具的示例分析.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: pythonmysql