Greenplum集群迁移--gptransfer的使用

gptransfer 是 Greenplum 数据库的高效迁移工具,可在相同或不同集群间迁移数据库内容,包括表数据、索引、视图等。本文详解 gptransfer 的工作原理、操作流程及最佳实践。

在使用greenplum时,当想将旧的集群中的数据迁移到新的集群中,有多种方法。如使用gp_dump命令进行数据的备份、拷贝与恢复,但相比较来说,还是使用gptransfer工具更简单方便,且更高效。

总述

gptransfer迁移工具把Greenplum数据库元数据从一个Greenplum数据库传输到另一个Greenplum数据库,允许用户迁移整个数据库的内容或者选中的表到另一个数据库。源数据库和目标数据库可以在相同或者不同的集群中。gptransfer在所有Segment间并行地移动数据,它使用gpfdist数据装载工具以获得最高的传输率。

gptransfer会处理数据传输的设置和执行。参与其中的集群必须已经存在,在两个集群的所有主机之间都有网络访问和证书认证的ssh访问。

gptransfer接口包括传输一个或者更多完整数据库以及一个或者更多数据库表的选项。一次完整数据库传输包括数据库模式、表数据、索引、视图、角色、用户定义的函数以及资源队列。包括postgres.conf和pg_hba.conf在内的配置文件必须由管理员手工传输。用gppkg安装在数据库中的扩展(例如MADlib和编程语言扩展)必须由管理员安装在目标数据库中。

gptransfer会做什么

gptransfer会使用可写和可读外部表、Greenplum的gpfdist并行数据装载工具以及命名管道来从源数据库传输数据到目标数据库。源集群上的Segment从源数据库表中选择并且插入到一个可写外部表中。目标集群中的Segment从一个可读外部表选择并且插入到目标数据库表。可写和可读外部表由源集群的Segment主机上的命名管道支撑,并且每个命名管道都有一个gpfdist进程负责把该管道的输出供应给目标Segment上的可读外部表。

gptransfer通过以批次处理要被传输的数据库对象来编排其处理过程。对于每个要被传输的表,它会执行下列任务:
1.在源数据库中创建一个可写外部表
2.在目标数据库中创建一个可读外部表
3.在源集群中的Segment主机上创建命名管道和gpfdist进程
4.在源数据库中执行一个SELECT INTO语句以插入源数据到可写外部表中
5.在目标数据库中执行一个SELECT INTO语句把数据从可读外部表插入到目标表中
6.可以选择通过在源和目标中比较行计数或者行的MD5哈希来验证数据
7.清除外部表、命名管道和gpfdist进程

先决条件

1.gptransfer功能只能用于Greenplum数据库,包括Dell EMC DCA appliance。不支持用Pivotal HAWQ作为源或者目的。
2.源和目的Greenplum集群必须为4.2及以上版本。
3.至少一个Greenplum实例必须在其发布中包括有gptransfer工具。该工具被包括在4.2.8.1或更高版本以及4.3.2.0或更高版本的 Greenplum数据库中。如果源或目标都不包括gptransfer,用户必须升级其中一个集群以使用gptransfer。
4.可以从源数据库或者目标数据库的集群中运行gptransfer工具。

Greenplum 集群之间同步数据方法及性能.....................................................................................1 1 概述.................................................................................................................................................2 2 相同集群相同数据库不同 SCHEMA 之间同步数据....................................................................2 2.1 查看原始表的大小行数与结构......................................................................................... 2 2.2 同步语句..............................................................................................................................2 2.3 查看 cpu 与内存的使用情况..............................................................................................3 2.3.1 查看 Master CPU 与内存使用情况.........................................................................3 2.3.2 查看数据节点的 CPU 使用情况..............................................................................3 2.3.3 查看数据节点的内存与磁盘使用情况..................................................................6 2.4 查看耗时与表的大小..........................................................................................................7 3 相同集群不同数据库之间同步数据.............................................................................................8 3.1 使用 pg_dum 方式同步数据..............................................................................................8 3.1.1 查看原始表的信息...................................................................................................8 3.1.2 把数据下载到磁盘...................................................................................................9 3.1.2.1 下载数据语句............................................................................................... 9 3.1.2.2 查看 Master 节点详细信息.........................................................................9 3.1.3 把数据导入到数据库中........................................................................................ 10 3.1.3.1 导入数据库语句......................................................................................... 10 3.1.3.2 查看 Master 节点的详细信息...................................................................11 3.1.3.3 查看数据节点的详细信息.........................................................................11 3.1.4 验证数据的准确性................................................................................................ 13 3.1.5 pg_dump 同步数据总结........................................................................................13 3.2 使用 dblink 同步数据........................................................................................................13 3.2.1 dblink 同步相同集群不同数据库的数据.............................................................13 3.2.1.1 同步语句......................................................................................................13 3.2.1.2 查看 Master 节点的详细信息...................................................................15 3.2.1.3 查看数据节点的详细信息.........................................................................15 3.2.2 验证数据的准确性................................................................................................ 17 3.2.3 dblink 使用总结......................................................................................................17 3.3 使用 gptransfer 同步数据.................................................................................................17 3.3.1 gptransfer 介绍.......................................................................................................17 3.3.2 gptransfer 命令参数介绍.......................................................................................18 3.3.3 查看集群及硬件信息............................................................................................ 19 3.3.4 同集群之间同步数据............................................................................................ 19 3.3.4.1 查看表的详细信息..................................................................................... 19 3.3.4.2 进行表数据同步......................................................................................... 19 3.3.4.3 查看硬件详细信息..................................................................................... 21 3.3.4.4 查看数据的准确性..................................................................................... 23 3.3.4.5 使用 gptransfer 总结...................................................................................23 3.3.5 不同集群之间同步数据........................................................................................ 24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值