加入收藏 | 设为首页 | 会员中心 | 我要投稿 广州站长网 (https://www.020zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

使用pgloader快速迁移,从MySQL 到 PostgreSQL

发布时间:2022-12-13 14:05:26 所属栏目:MsSql教程 来源:网络
导读:
需求背景
PostgreSQL 是现在增长很快的开源数据库,相比MySQL拥有更多的数据结构支持,也有更多的索引类型,性能还是很不错的,之前有一个项目使用的是MySQL,考虑到使用PostgreSQL更适合

mssql数据库迁移_oracle数据库表迁移_mssql数据导入mysql

需求背景

PostgreSQL 是现在增长很快的开源数据库,相比MySQL拥有更多的数据结构支持,也有更多的索引类型,性能还是很不错的,之前有一个项目使用的是MySQL,考虑到使用PostgreSQL更适合,也更方便进行索引优化,所以有这么一个需求。

使用pgloader进行迁移

编写代码迁移,可能后续还有很多项目需要迁移,整体成本较高,经过搜索引擎查询到这个工具可以快速迁移,于是开始尝试使用这个工具迁移

前置要求

我们现在是all in 阿里云的情况,那么这种情况下,RDS的权限并不是最高的superuser的,所以就比较尴尬mssql数据库迁移,如果进行迁移,那么需要在本地搭建一个PostgreSQL数据库,建议使用ubuntu 20.04操作系统进行操作,因为内置的PostgreSQL数据库是12版本非常方便

# 安装pg数据库和pgloader
apt update 
apt install postgresql-12 pgloader -y
# 切换到postgres用户
su - postgres
# 创建一个目标数据库
createdb cloudnative

使用pgloader进行转换迁移

pgloader这个项目你去到github看,会给你一个命令告诉你如何迁移,我想你肯定看到了,我想说的是,不要使用这种方式,会有一些问题,首先要创建一个loader的文件,就叫mypg.loader吧,将下面内容放进去

LOAD DATABASE
 FROM      mysql://user:passwd@192.168.1.185:32772/nova
 INTO pgsql:///cloudnative
 alter schema 'cloudnative' rename to 'public';

上面最后一行很关键,是用来处理迁移后有可能relation和sequence位置不对导致数据有问题的

注意,这一部分操作都在postgres用户下进行,比较方便,然后执行下面的命令

pgloader mypg.loader

等那么一会儿,我的数据库就迁移好了,然后再dump出来导入到RDS 就可以了,记得RDS也要用pg12啊

整体迁移进度虽然还算是顺利,但是时间还是比较长的,4核4G的ECS,从MySQL到pg,2.5G数据量大概需要20min这样的,然后还需要一段时间导入到RDS

后续我们需要将测试环境的程序跑起来,看看跑起来有什么问题,代码需要进行一些修改,完成后我们就可以上线了

(编辑:广州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!