zoukankan      html  css  js  c++  java
  • greenplum6.9踩坑总结

    最近做了greenplum 4.3 --> greenplum 6.9 的迁移升级, 踩坑无数, 先写个总结:

    • 迁移方案:

      • 构建新集群, 再将老集群数据迁移到新集群。
      • 自带的gptransfer不能用, 执行时会报一个参数不存在。
      • 最终只能回到原始的pg_dump。
      • 理想的方式是gptransfer大表, 小表dump。
      • greenplum 5开始不支持 date类型 --> text类型的自动隐式转换, 会导致部分sql兼容性问题。
    • 在使用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
        
        • 实践下来是没有问题的。
    • 客户环境问题

      • 偶尔会出现cpu异常导致的软中断进程ksoftrqd占满资源, 具体底层应该和他们那一套基于openstack的超融合虚拟机的问题, 与我无瓜。
    • 性能问题

      • 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)
        
  • 相关阅读:
    众包兼职平台有哪些?
    提高页面速度的10种相对简单方法
    如何设计第三方账号登陆
    Nginx的配置参数中文说明
    确定你已经彻底搞懂Nginx了
    云编程,这是我见过最优雅的Web云端集成开发IDE-Cloud Studio
    Excel制作三级下拉菜单
    Excel多人共享
    spring_2_注入详解
    spring_1_工厂与第一个 Spring 程序
  • 原文地址:https://www.cnblogs.com/ronnieyuan/p/13594740.html
Copyright © 2011-2022 走看看