greenplum数据迁移

  • 说明
  • 软件
  • gpcogy设置
  • 实践
  • 报错
  • 验证
  • 查看数据库和表大小
  • 查看数据库和磁盘base对应关系
  • gpcopy数据同步
  • 疑问
  • 数据库疑问
  • mirror进程没有启动
  • 参考

说明

本次测试基于
greenplum-db-6.4.0-rhel6-x86_64.rpm
gpcopy-2.3.1.tar.gz(仅在百度云分享)

软件

百度云:
https://pan.baidu.com/s/1tBqGEEeye_NRAVnbu9Nptw
u4j8
阿里云:
链接:https://www.aliyundrive.com/s/DE1cDbrfMiP
官网:
greenplum:
https://network.pivotal.io/products/vmware-tanzu-greenplum#/releases/972275/file_groups/5616
gpcopy:
https://network.pivotal.io/products/gpdb-data-copy

gpcogy设置

1.解压安装包
tar xzvf gpcopy-2.3.1.tar.gz 

2.在master节点,复制gpcopy和gpcopy_helper到相应的bin目录 
cp gpcopy $GPHOME/bin  
cp gpcopy_helper $GPHOME/bin

3.赋予权限
chmod 755 $GPHOME/bin/gpcopy
chmod 755 $GPHOME/bin/gpcopy_helper

4.在segment节点的操作如下,只拷贝gpcopy_helper到相应目录下并赋予权限即可。

自定义安装的路径

kettle greenplum批量加载 greenplum copy命令_postgres

默认安装的路径

/usr/local/greenplum-db-6.4.0/bin

kettle greenplum批量加载 greenplum copy命令_postgres_02

实践

部分实践,其他迁移方法 参考官网等方式

# --debug 是为了在前台查看日志
# 从21服务器上把dmtestone表 数据迁移到 102服务器上
# datadev.public.dmtestone      
# 库:datadev 模式:public 表:dmtestone

gpcopy --source-host 192.168.100.21 --dest-host 192.168.100.102 --include-table datadev.public.dmtestone --drop --dest-table postgres2.public.dmtestone --debug


# 从21服务器上把dc数据库 迁移到 102服务器上
gpcopy --source-host 192.168.100.21 --dest-host 192.168.100.102 --dbname dc --dest-dbname  dc --skip-existing --debug

kettle greenplum批量加载 greenplum copy命令_gpcopy_03

kettle greenplum批量加载 greenplum copy命令_数据库_04

报错

迁移的时候 目前数据库如果存在也会 ***报错***,应该是有其他方式的。

迁移的时候 报错 pq: password authentication failed for user “gpadmin”

kettle greenplum批量加载 greenplum copy命令_greenplum_05

修改了

master/gpseg-1/pg_hba.conf

#host all all 0.0.0.0/0 md5

host all all 0.0.0.0/0 trust

kettle greenplum批量加载 greenplum copy命令_数据迁移_06

报错

DDL renaming for schema or table is not supported for “datassets_dev” .“public” ." dmtestone" =s “postgres" .“public” ."newtable2*

kettle greenplum批量加载 greenplum copy命令_数据迁移_07

修改命令:不要修改表名

验证

Navicat或者 DBeaver 连接到数据库

从21 迁移数据库dc到102

102数据库 刷新一下,有了dc数据库

Navicat

kettle greenplum批量加载 greenplum copy命令_数据库_08


DBeaver

工具需要设置一下

kettle greenplum批量加载 greenplum copy命令_gpcopy_09

kettle greenplum批量加载 greenplum copy命令_数据迁移_10

查看数据库和表大小

查看库:
select pg_size_pretty(pg_relation_size('abg'));
查看表:
select pg_size_pretty(pg_total_relation_size('newtable'));

kettle greenplum批量加载 greenplum copy命令_greenplum_11

查看数据库和磁盘base对应关系

select oid, datname from pg_database;

kettle greenplum批量加载 greenplum copy命令_gpcopy_12


kettle greenplum批量加载 greenplum copy命令_数据库_13

gpcopy数据同步

源数据源新建一个数据库,新建一张表
执行gpcopy 数据不会丢失

21机器上新建了一个cppytest1的新数据库 新表wert
执行命令
gpcopy --source-host 192.168.100.21 --dest-host 192.168.100.102 --dbname copytest1 --dest-dbname  copytest1 --skip-existing

kettle greenplum批量加载 greenplum copy命令_gpcopy_14


kettle greenplum批量加载 greenplum copy命令_数据迁移_15

疑问

数据库疑问

迁移的数据库 表的大小发生了变化,但是经抽查表数据,数据未丢失
还望大佬赐教

kettle greenplum批量加载 greenplum copy命令_greenplum_16

mirror进程没有启动

gpstate -m

kettle greenplum批量加载 greenplum copy命令_postgres_17

SELECT * from gp_segment_configuration ;

kettle greenplum批量加载 greenplum copy命令_gpcopy_18


分别在故障的gp3 gp4 创建配置文件

cd /home/greenplum/gp3/
cd /home/greenplum/gp4/

使用命令gprecoverseg -o ./recov

kettle greenplum批量加载 greenplum copy命令_数据迁移_19


gprecoverseg -i ./recov

报错了 数据库gpadmin找不见,手动创建了一个

kettle greenplum批量加载 greenplum copy命令_postgres_20


重新执行

gprecoverseg -i ./recov

kettle greenplum批量加载 greenplum copy命令_数据迁移_21

验证:mirror已经启动

kettle greenplum批量加载 greenplum copy命令_greenplum_22

数据已经同步

kettle greenplum批量加载 greenplum copy命令_数据迁移_23

recov文件的内容

cat /home/greenplum/gp3/recov
 cat /home/greenplum/gp4/recov

kettle greenplum批量加载 greenplum copy命令_数据库_24

参考

greenplum 数据库的拷贝-gpcopy
https://www.jianshu.com/p/dde22ad9a04a Greenplum数据迁移–gpcopy的知识点整理

https://gpdb.docs.pivotal.io/data-copy/2-2/install.htmlhttps://gpdb.docs.pivotal.io/data-copy/2-2/gpcopy-migrate.htmlhttps://gpdb.docs.pivotal.io/data-copy/2-2/gpcopy.html

GreenPlum查看表和数据库大小

记录一次GreenPlum6 故障以及恢复方法
https://blog.51cto.com/lishiyan/2706887

Greenplum数据迁移工具gpcopy升级到 1.1.0
https://cloud.tencent.com/developer/news/355959