PG数据迁移工具之pgloader
Tags: PGpgloaderPostgreSQL加载数据工具开源工具数据迁移迁移工具介绍
简介
GitHub:https://github.com/dimitri/pgloader
文档:https://pgloader.readthedocs.io/en/latest/intro.html
pgloader是一个免费开源可以将其它数据源的数据导入PG数据库的数据导入工具,使用COPY命令将数据导入到PostgreSQL。
pgloader有两种工作模式,一种是从文件导入,一种是迁移数据库。pgloader在两种情况下都使用PostgreSQL的COPY协议高效的传输数据。
pgloader支持从 MySQL、SQLite、MS SQL Server、PostgreSQL、Redshift数据源迁移至 PostgreSQL,支持 DBF 、 IXF、CSV、COPY的文本及固定格式的数据文件迁移。
openGauss兼容PostgreSQL的通信协议以及绝大部分语法,可使用pgloader将MySQL数据库迁移至openGauss。
pgloader是一款PostgreSQL数据迁移工具,最初只用于支持格式化文件的数据快速导入到PostgreSQL。pgloader支持跳过无法导入的出错数据并进行记录,因此在源数据文件有部份错误数据的情况下依然可以继续完成迁移任务,节省迁移排错后重复导入的时间损耗。最新的版本中,还支持直接将SQLite、MySQL、MS SQL Server数据库作为数据源,进行数据的直接导入,并针对不同数据类型进行自动转换,甚至还会针对不同数据库特性完成自动替换,遗憾的是,pgloader无法支持从源端到目标端的增量复制,也就是说无法用于生产环境的割接中。但pgloader的出现,使得PostgreSQL开发人员可以十分方便的进行数据库迁移转换,对于在新项目中由于功能及开放性需求要使用PostgreSQL的业务来说,pgloader依然是数据迁移的绝佳利器。
安装pgloader
yum
1 2 3 | yum install -y pgloader apt-get install pgloader |
docker
https://hub.docker.com/r/dimitri/pgloader
1 2 3 4 5 6 7 8 | docker pull dimitri/pgloader docker run --rm --name pgloader dimitri/pgloader:latest pgloader --version docker run --rm --name pgloader dimitri/pgloader:latest pgloader –help docker run --rm -it dimitri/pgloader:latest \ pgloader \ mysql://root:$MYSQL_ROOT_PASSWORD@172.17.0.2/dbname \ pgsql://postgres:$POSTGRES_PASSWORD@172.17.0.3/dbname |
编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | wget https://ghproxy.com/https://github.com/dimitri/pgloader/releases/download/v3.6.9/pgloader-bundle-3.6.9.tgz tar -zxvf pgloader-bundle-3.6.9.tgz cd pgloader-bundle-3.6.9/ yum install -y freetds freetds-devel freetds-libs rpmdevtools sbcl make -j 16 LANG=en_US.UTF-8 make test ./bin/pgloader --version ./bin/pgloader --help sudo yum install -y git git clone https://ghproxy.com/https://github.com/dimitri/pgloader.git cd pgloader chmod +x ./bootstrap-centos7.sh sudo ./bootstrap-centos7.sh make pgloader |
工具对比
对比项 | ora2pg | pgloader | DMETL5(单机版) |
---|---|---|---|
是否免费开源 | 是 | 是 | 否 |
安装部署 | 较为复杂,需要安装DBD::Oracle Perl、DBI、DBD::Pg等驱动模块再安装oracle客户端,设置配置文件后可用 | 简单,解压后编译安装即可用 | 简单,解压后,执行安装命令,启动服务后使用 |
迁移范围 | 支持Oracle、MySQL迁移至PostgreSQL | 支持从 MySQL、SQLite、MS SQL Server、PostgreSQL、Redshift数据源迁移至 PostgreSQL,支持 DBF 、 IXF、CSV、COPY的文本及固定格式的数据文件迁移 | 支持多种主流数库、非关系数据库、多种文件格式的读取装载,且大部分是双向的,例如支持:MySQL-PostgreSQL ,也支持PostgreSQL-MySQL |
迁移过程 | 先导出表结构、权限等→导出数据→依次导入表结构、权限等→最后导入数据→数据验证。可以生成迁移模板 | 配置pg.load文件→执行命令进行迁移-数据验证 | 启动服务→浏览器登陆→新建数据源(数据库连接信息及表信息)→新建工程→新建转换→设置转换→保存运行转换完成迁移→数据验证 |
参考
如何使用pgloader迁移MySQL数据库至openGauss:https://www.modb.pro/db/109675?gch
https://www.cnblogs.com/lottu/p/14107793.html
https://www.cnblogs.com/rongfengliang/p/11014184.html
https://www.cnblogs.com/rongfengliang/p/11014221.html
https://www.cnblogs.com/rongfengliang/p/11014351.html
https://www.cnblogs.com/rongfengliang/p/11015042.html
https://www.cnblogs.com/rongfengliang/p/11016484.html