greenplum数据迁移gpcopy

2023-03-20 00:00:00 数据 数据库 命令 报错 迁移

说明
本次测试基于
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


本文来源:https://blog.csdn.net/weixin_44385419/article/details/121010960

相关文章