-
Notifications
You must be signed in to change notification settings - Fork 1.7k
tools
Nick Wang edited this page Jan 6, 2022
·
6 revisions
利用percona-toolkit工具集的pt-archiver工具对MySQL数据进行归档
- 需要下载percona-toolkit,安装在Archery部署机器上面
- 在系统配置中配置设置数据归档申请审批流程
- 在管理后台django_q/schedule增加schedule配置,用于定时归档,可配置多个schedule在不同的时间调度归档任务,配置的func设置为
sql.archiver.add_archive_task
,Args填写归档配置ID列表(不填写则默认调度所有配置),如[1,2],schedule仅会获取审核通过+启用状态的配置 - 暂时还没有归档状态的通知,可以自行写脚本查询相关表的数据
权限CODE | 权限名称 | 权限说明 |
---|---|---|
menu_archive | 菜单 数据归档 | 菜单权限 |
archive_apply | 提交归档申请 | 可以提交数据归档申请 |
archive_review | 审核归档申请 | 可以审核数据归档申请 |
archive_mgt | 管理归档申请 | 可以启用禁用归档配置 |
官方文档:https://www.percona.com/doc/percona-toolkit/3.0/pt-archiver.html
除前台可以修改的参数外,还有以下默认的归档参数,无法修改
{
"no-version-check": True,
"progress": 5000,
"statistics": True,
"limit": 10000,
"txn-size": 1000,
"bulk-insert": True,
"bulk-delete": True,
}
- 增加归档配置
可以由用户主动申请,审核通过,也可以由管理用户直接在添加 - 修改归档配置
管理员可以修改、禁用启用归档配置 - 立即归档
管理用户可以手动触发归档,该动作仅执行一次
将Binlog2SQL模块可视化,从MySQL binlog解析出你要的SQL。根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等,支持异步获取文件,并且通知执行结果,项目地址
权限CODE | 权限名称 | 权限说明 |
---|---|---|
menu_binlog2sql | 菜单 Binlog2SQL | 该权限包括菜单和操作权限 |
- 安装Binlog2SQL,以centos为例,docker镜像已包含
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
pip install -r requirements.txt
- 在系统管理-配置项管理中修改BINLOG2SQL为程序路径,路径需要完整到py文件,docker部署的请修改为'/opt/archery/src/plugins/binlog2sql/binlog2sql.py'
功能类似于Binlog2SQL,通过多线程以更高的性能快速解析binlog。支持回滚、去除主键、去db前缀及分表输出文件等多种解析模式,并拥有完备的过滤筛选项;支持异步获取文件,并且通知执行结果,项目地址
权限CODE | 权限名称 | 权限说明 |
---|---|---|
menu_my2sql | 菜单 My2SQL | 该权限包括菜单和操作权限 |
- 安装My2SQL,以centos为例,docker镜像已包含
方法1.手动编译
yum -y install golang
mkdir -p /root/go/src
cd /root/go/src
git clone https://github.com/liuhr/my2sql.git && cd my2sql/
go build .
方法2.下载已编译二进制文件
wget https://raw.githubusercontent.com/liuhr/my2sql/master/releases/centOS_release_7.x/my2sql -O my2sql \
chmod a+x my2sql
- 在系统管理-配置项管理中修改MY2SQL为程序路径,docker部署的请修改为'/opt/archery/src/plugins/my2sql'
对比不同数据库的Schema信息,输出修改语句和回滚语句,SchemaSync不仅限于表结构,它可以处理的对象还有:视图、事件、存储过程、函数、触发器、外键,项目地址
- 安装SCHEMASYNC(依赖Python2),以centos为例,docker镜像已包含
virtualenv venv4schemasync --python=python2 \
source venv4schemasync/bin/activate \
yum install -y python-devel \
pip install schema-sync mysql-python
- 在系统管理-配置项管理中修改SCHEMASYNC为程序路径,路径需要完整,docker部署的请修改为'/opt/venv4schemasync/bin/schemasync'