标签:相同 greenplum 隐式 system sql 情况 情况下 转换 社区
最近做了greenplum 4.3 --> greenplum 6.9 的迁移升级, 踩坑无数, 先写个总结:
迁移方案:
坑
在使用mirror的情况下, 一次导入过多数据可能导致节点挂掉, 导致primary和mirror替换。
临时的处理方案是导出数据时拆的更细一点
# 原导出操作
pg_dump -t ‘dw.src*‘ dw | gzip > src.sql.gz
# 拆分后的导出操作
pg_dump -t ‘dw.src_c*‘ dw | gzip > src_c.sql.gz
pg_dump -t ‘dw.src_e*‘ dw | gzip > src_e.sql.gz
pg_dump -t ‘dw.src_f*‘ dw | gzip > src_f.sql.gz
... etc
客户环境问题
性能问题
Greenplum的查询优化器对一个节点上多个segment的集群有比较好的优化, 一开始部署一台一个节点的时候性能反而不如老集群, 与官方社区沟通后是查询优化器的问题, 后来一个节点上装了3个segment后性能显著提升, 复杂sql比老集群快了一倍多。
使用的gpinitsystem_config
#数据库代号
ARRAY_NAME="Greenplum"
#segment前缀
SEG_PREFIX=gpseg
#primary segment 起始的端口号
PORT_BASE=33000
#指定primary segment的数据目录,网上写的是多个相同目录,多个目录表示一台机器有多个segment
declare -a DATA_DIRECTORY=(/home/gpadmin/data/datap1 /home/gpadmin/data/datap2 /home/gpadmin/data/datap3)
#master所在机器的host name
MASTER_HOSTNAME=mdw
#master的数据目录
MASTER_DIRECTORY=/home/gpadmin/data/master
#master的端口
MASTER_PORT=5432
#指定bash的版本
TRUSTED_SHELL=/usr/bin/ssh
#将日志写入磁盘的间隔,每个段文件通常 =16MB < 2 * CHECK_POINT_SEGMENTS + 1
CHECK_POINT_SEGMENTS=8
#字符集
ENCODING=UNICODE
#mirror segment 起始的端口号
MIRROR_PORT_BASE=44000
# mirror的数据目录,和主数据一样,一个对一个,多个对多个
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/datam1 /home/gpadmin/data/datam2 /home/gpadmin/data/datam3)
标签:相同 greenplum 隐式 system sql 情况 情况下 转换 社区
原文地址:https://www.cnblogs.com/ronnieyuan/p/13594740.html