当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
18 Star 20 Fork 52

openGauss/openGauss-tools-chameleon
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-2-Clause

openGauss-tools-chameleon

介绍

chameleon是一个用Python 3编写的MySQL到openGauss的实时复制工具。工具使用mysql-replication库从MySQL中提取row images,这些row images将以jsonb格式被存储到openGauss中。在openGauss中会执行一个pl/pgsql函数,解码jsonb并将更改重演到openGauss。同时,工具通过一次初始化配置,使用只读模式,将MySQL的全量数据拉取到openGauss,使得该工具提供了初始全量数据的复制以及后续增量数据的实时在线复制功能。

chameleon初始代码源自pg_chameleon (https://github.com/the4thdoctor/pg_chameleon).

特色

⦁ 通过读取MySQL的binlog,提供实时在线复制的功能。

⦁ 支持从多个MySQL schema读取数据,并将其恢复到目标openGauss数据库中。源schema和目标schema可以使用不同的名称。

⦁ 通过守护进程实现实时复制,包含两个子进程,一个负责读取MySQL侧的日志,一个负责在openGauss侧重演变更。

安装教程

  1. 安装环境: Linux, FreeBSD, OpenBSD. Python: CPython 3.5+, java,maven,git
  2. 源数据库要求:MySQL 5.5+。目的数据库要求:openGauss 2.1.0+
  3. 安装命令(建议在python虚拟环境中安装):python setup.py install

使用说明

⦁ 创建python虚拟环境 (例如 python3 -m venv venv)

⦁ 激活python虚拟环境 (例如 source venv/bin/activate)

⦁ 升级pip pip install pip --upgrade

⦁ 安装chameleon python setup.py install

⦁ 在MySQL侧创建用于复制的用户 (例如 usr_replica)

⦁ 给用户赋予被复制数据库的访问权限(例如 GRANT ALL ON sakila.* TO 'usr_replica'

⦁ 给用户赋予RELOAD权限(例如 GRANT RELOAD ON *.* to 'usr_replica'

⦁ 给用户赋予REPLICATION CLIENT权限(例如 GRANT REPLICATION CLIENT ON *.* to 'usr_replica'

⦁ 给用户赋予REPLICATION SLAVE权限(例如 GRANT REPLICATION SLAVE ON *.* to 'usr_replica'

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

空文件

简介

暂无描述 展开 收起
README
BSD-2-Clause
取消

发行版 (1)

全部
2年前

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/opengauss/openGauss-tools-chameleon.git
git@gitee.com:opengauss/openGauss-tools-chameleon.git
opengauss
openGauss-tools-chameleon
openGauss-tools-chameleon
5.1.0

搜索帮助