# pg_chameleon - MySQL2PostgreSQL复制工具
#### 作者:PostgreSQL中文社区
#### 发布:2018-01-08
#### 欢迎大家踊跃投稿,投稿信箱: press@postgres.cn
----
![CENTER_PostgreSQL_chemelon_logo](/images/news/2018/315_1.jpg)
pg_chameleon 是一款 MySQL 到 PostgreSQL 的复制工具。
2018-01-01,pg_chameleon 2.0 版本发布了,新版本可以兼容 python 3.3+,并且带来了许多新的改进。
## 新特性
- 将同一 MySQL cluster 中的多个 MySQL schema 是复制到一个目标 PostgreSQL 数据库。源端和目标端 schema 名称可以是不同的
- 保守的方式复制。生成错误的表会自动从复制中排除。
- 包含进程init_replica,refresh_schema, sync_tables。
- 复制进程包含两个独立的子进程,一个用于 read 而另一个用于 replay。
- 软锁定复制初始化。表在需要时会被锁定,并通过 log coordinates 来存储。复制守护进程逐渐将数据库置于一致的状态中。
- Rollbar集成用于简单的错误检测和报警。
- 对 PostgreSQL 到 PostgreSQL 复制基本支持(EXPERIMENTAL)。
- 从 MySQL 分离复制,以便轻松迁移到 PostgreSQL。
## 使用场景
- 分析
- 迁移
- 对多个 MySQL 数据库进行数据聚合
## 关于pg_chameleon
pg_chameleon 是 MySQL 到 PostgreSQL 的复制工具,开发语言是Python 3.3+。该系统使用库程序 mysql-replication 从 MySQL 拉取被转化为 jsonb 对象的row images。通过pl / pgsql函数解码 jsonb 并将变更 replay 到 PostgreSQL 数据库。
该工具需要一个初始复制设置,确保在只读模式下从 MySQL 拉取数据。
pg_chameleon 可以从 cascading replica 中拉取数据,只要 MySQL 备库配置了 log-slave-updates。
## 开源协议:
BSD2- 条款 "简化" 后的版权
![CENTER_PostgreSQL_chemelon_license](/images/news/2017/_pg_chameleon_license.jpg)
## 相关地址:
![CENTER_PostgreSQL_chemelon_barcode](/images/news/2017/_pg_chameleon_barcode.jpg)
![PostgreSQL_Community](/images/news/2016/pg_bot_banner.jpg)