gpcopy是一个数据迁移实用程序,可以在不同集群之间进行传输数据,可以将一个集群中的Greenplum数据库的元数据和数据复制到另一个集群的Greenplum数据库中。gpcopy可以迁移数据库的全部内容,包括数据库架构、表数据、索引、视图、角色、用户自定义函数、资源队列、资源组。

使用说明:

前提:

1、gpcopy压缩包,可到官网下载,建议先确定源库以及目标库的GP版本,对照gpcopy说明下载相应的版本。

2、GPCOPY需要两个GP(FD)集群做数据迁移,不支持使用文件的方式迁移

3、安装完成需要先进行测试,避免集群数据迁移失败

安装步骤(先gpstate检查集群状态是否正常,正常进行如下操作):

集群1和集群2都按照如下步骤安装(将压缩包拷贝到/home/gpadmin下,使用gpadmin用户登录)

tar -zxvf gpcopy-2.3.0.tar.gz

cd gpcopy-2.3.0/

cp gpcopy /home/gpadmin/FineData/bin/

cp gpcopy_helper /home/gpadmin/FineData/bin/

chmod 755 /home/gpadmin/FineData/bin/gpcopy

chmod 755 /home/gpadmin/FineData/bin/gpcopy_helper

gpscp -f /home/gpadmin/conf/seglist ./gpcopy_helper =:/home/gpadmin/FineData/bin

gpssh -f /home/gpadmin/conf/seglist

=> chmod 755 /home/gpadmin/FineData/bin/gpcopy_helper

=> exit

source FineData/greenplum_path.sh

安装完成后,若要集群1到集群2的数据迁移,要建立集群1主节点到集群2主节点的免密:

1、在pg_hba.conf文件中 加 host all gpadmin ip/32 trust

2、gpstop -u 刷新配置

如果配置完成没有实现免密,可能存在权限冲突,可在pg_hba.conf文件中,把IP限制小的放在前面,例如把172.25.5.1/32放在0.0.0.0/32前

注意:数据迁移完成后,去掉免密的认证

迁移命令:

迁移集群一fine_data_db库到集群二gpdb,参数设置表存在时跳过:

gpcopy --source-host 192.168.4.141 --dest-host 192.168.4.147 --dbname fine_data_db --dest-dbname gpdb --skip-existing

详细参数可参考:gpcopy官网命令说明

更多推荐