说明
本次测试基于
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到相应目录下并赋予权限即可。
自定义安装的路径
默认安装的路径
/usr/local/greenplum-db-6.4.0/bin
实践
部分实践,其他迁移方法 参考官网等方式
# --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
报错
迁移的时候 目前数据库如果存在也会 ***报错***,应该是有其他方式的。
迁移的时候 报错 pq: password authentication failed for user “gpadmin”
修改了
master/gpseg-1/pg_hba.conf
#host all all 0.0.0.0/0 md5
host all all 0.0.0.0/0 trust
报错
DDL renaming for schema or table is not supported for “datassets_dev” .“public” ." dmtestone" =s “postgres" .“public” ."newtable2*
修改命令:不要修改表名
验证
Navicat或者 DBeaver 连接到数据库
从21 迁移数据库dc到102
102数据库 刷新一下,有了dc数据库
Navicat
DBeaver
工具需要设置一下
查看数据库和表大小
查看库:
select pg_size_pretty(pg_relation_size('abg'));
查看表:
select pg_size_pretty(pg_total_relation_size('newtable'));
查看数据库和磁盘base对应关系
select oid, datname from pg_database;
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
疑问
数据库疑问
迁移的数据库 表的大小发生了变化,但是经抽查表数据,数据未丢失
还望大佬赐教
mirror进程没有启动
gpstate -m
SELECT * from gp_segment_configuration ;
分别在故障的gp3 gp4 创建配置文件
cd /home/greenplum/gp3/
cd /home/greenplum/gp4/
使用命令gprecoverseg -o ./recov
gprecoverseg -i ./recov
报错了 数据库gpadmin找不见,手动创建了一个
重新执行
gprecoverseg -i ./recov
验证:mirror已经启动
数据已经同步
recov文件的内容
cat /home/greenplum/gp3/recov
cat /home/greenplum/gp4/recov
参考
greenplum 数据库的拷贝-gpcopy
https://www.jianshu.com/p/dde22ad9a04a
Greenplum数据迁移–gpcopy的知识点整理
https://blog.csdn.net/qq_42957844/article/details/103235035
Greenplum gpcopy 安装使用介绍
https://blog.csdn.net/dazuiba008/article/details/107068259
迁移先决条件,迁移命令参数,等等可以参考官方文档,如下:
https://gpdb.docs.pivotal.io/data-copy/2-2/install.html
https://gpdb.docs.pivotal.io/data-copy/2-2/gpcopy-migrate.html
https://gpdb.docs.pivotal.io/data-copy/2-2/gpcopy.html
GreenPlum查看表和数据库大小
https://www.cnblogs.com/jiang910/p/10076462.html
记录一次GreenPlum6 故障以及恢复方法
https://blog.51cto.com/lishiyan/2706887
Greenplum数据迁移工具gpcopy升级到 1.1.0
https://cloud.tencent.com/developer/news/355959