最近迁移了一套gp环境,数据大概在32TB左右,所以做一下简单的记录。
OS Version: CentOS release 6.10 (Final)
GP Version: Greenplum Database 4.3.32.0 build 1
PC节点 :8
迁移数据:32TB
过程: 由于数据库属于线上数据仓库,而迁移后的节点 和迁移前的节点数据量一致,所以选择使用gp_dump备份,gp_dump恢复的方式进行迁移。 整个迁移过程分2天完成。
第1天: 迁移数据没有变化的4TB,涉及到8个schema;
第2天: 迁移数据会产生变化的28TB,涉及到3个schema。
迁移数据时间: 第一天: 6小时, 第2天: 13小时, 一共19小时。连同迁移完成后的数据检查,大概花费将近30个小时左右。
只是不同的任务是不同的人完成的,比如环境搭建,并不是我完成的。而是运维完成的。
由于是相同节点迁移,所以这次迁移选择了相对方便一点的gp_dump我gp_restore, 而由于当初始迁移时,进行过充分的测试,所以迁移过程中没有出现任何问题,一切都比较顺利。
反倒是在测试时,有几个点需要注意一下,由于是直接把备份文件写入到目标服务器对应的目录下,所以需要把目标节点的目录 挂载到源服务器下,最好在相同节网络之下,如果达不到,至少也要保证两套环境的网络传输速度。
(1) 安装环境时,一定需要保持源数据库和目标数据库的DBID分配所在的节点一致;
(2) 保证目标节点上的目录权限对于源节点是可写的;
(3) 使用gpadmin用户进行迁移;
(4) 迁移过程中,记录备份时每一个key节点的值和记录备份和恢复时间;
(5) 迁移过程中,记得备份后产生的文件权限和属主在新服务器上是需要重新修改的。
结语:如果greenplum的迁移前的节点和迁移后的节点不一致,目前还有什么方案可选择?
方案1: 先备份和迁移表结构,再迁移数据;
备份表结构:pg_dump
迁移数据:gptransfer, gpcopy(新特性), gpbackup;
方案2:先使用gp_dump, gp_restore进行迁移到相同节点之中,再进行数据节点的扩展gp_expand;
其中方案2的风险比较高。