将PostgreSQL迁移到MySQL 增量迁移支持的SQL操作 DML INSERT、UPDATE、DELETE DDL 增量迁移的DDL操作仅支持CREATE INDEX、DROP INDEX、ALTER TABLE、TRUNCATE TABLE 和DROP TABLE,如果是整库迁移,支持CREATE TABLE。 说明 暂不支持CREATE TABLE AS SELECT 语句。 不支持临时表的迁移,表的索引、约束会一起迁移。 数据库账号权限要求 数据库 接入类型 所需权限 参考赋权语句 源库 云实例 高权限账号 云实例请参考创建账号 源库 自建实例 模式的USAGE权限。 待迁移表的SELECT、REFERENCES权限。 待迁移对象的SELECT权限包含增量时,需具备SUPERUSER权限。 授予username用户schemaname模式的usage权限: GRANT USAGE ON SCHEMA schemaname TO username; 授予username用户objectname对象的select权限: GRANT SELECT ON objectname TO username; 授予username用户超级权限: ALTER USER username WITH SUPERUSER; 目标库 云实例 以下全局权限: SHOW DATABASES PROCESS 以下库权限: INDEX INSERT REFERENCES SELECT UPDATE DELETE DROP ALTER CREATE GRANT SELECT ON mysql. TO '迁移账号'@'%'; GRANT SHOW DATABASES,PROCESS, ON . TO '迁移账号'@'%'; GRANT ALTER, CREATE, DELETE ,DROP, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON 待迁移库. TO '迁移账号'@'%'; 准备工作 源库为PostgreSQL自建库的情况 1. 登录自建PostgreSQL所属的服务器。 2. 修改配置文件postgresql.conf,将配置文件中的wallevel设置为logical。如下图: 3. 将DTS的IP地址加入至自建PostgreSQL的配置文件pghba.conf中。如下图: 如果您已将信任地址配置为0.0.0.0/0,可跳过本步骤。 4. 逻辑解码插件目前支持decoderbufs和pgoutput;如果任务包含增量迁移且逻辑解码器选择使用Decoderbufs时,需安装PostgreSQL的逻辑解码器输出插件Decoderbufs,建议安装v2.1.1.Final以上版本,低版本可能会导致PostgreSQL数据库出现coredump,详细的步骤可参考如下内容或PostgreSQL官网文档。 1. 请自行前往github仓库获取Decoderbufs插件。 2. 进行插件的配置。 1. 首先,进行插件的编译。 plaintext export PATH/usr/lib/postgresql/9.6/bin:$PATH make make install 2. 其次,在postgresql.conf中配置逻辑复制。 plaintext