一、基本概念

Greenplum是一个面向数据仓库应用的关系型数据库,因为有良好的体系结构,所以

在数据存储、高并发、高可用、线性扩展、反应速度、易用性和性价比等方面有非常

明显的优势。Greenplum是一种基于PostgreSQL的分布式数据库,其采用sharednothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享。

本质上讲Greenplum是一个关系型数据库集群,它实际上是由数个独立的数据库服务

组合成的逻辑数据库。与RAC不同,这种数据库集群采取的是MPP(Massively

Parallel Processing)架构。跟MySQL、Oracle 等关系型数据不同,Greenplum可以理解为分布式关系型数据库。

关于Greenplum的更多信息请访问https://greenplum.org/

二、安装准备

1.下载离线安装包

  1. https://github.com/greenplum-db/gpdb/releases/tag/6.1.0

2.上传到服务器,放在/home/softs下(自定义目录)

3.关闭防火墙

  1. - 关闭防火墙(所有机器)
  2. iptables centos6.x
  3. 关闭:service iptables stop
  4. 永久关闭:chkconfig iptables off
  5. - 检查firewalld centos 7.x
  6. 关闭:systemctl stop firewalld
  7. 永久关闭 systemctl disable firewalld

4.关闭SELINUX(所有机器)

  1. [root@mdw ~]# vi /etc/selinux/config
  2. 确保SELINUX=disabled

5.配置/etc/hosts (所有机器)

  1. 为之后GP在各个节点之间相互通信做准备。
  2. 修改各台主机的主机名称。 一般建议的命名规则如下: 项目名_gp_节点
  3. Master : dis_gp_mdw
  4. Standby Master : dis_gp_smdw
  5. Segment Host : dis_gp_sdw1 dis_gp_sdw2 以此类推
  6. 如果Standby也搭建在某Segment host下,则命名为:dis_gp_sdw3_smdw

[root@mdw ~]# vi /etc/hosts

  1. 添加每台机器的ip hostname,确保所有机器的/etc/hosts中包含以下信息:
  2. 192.168.xxx.xxx gp-mdw
  3. 192.168.xxx.xxx gp-sdw1
  4. 192.168.xxx.xxx gp-sdw2
  5. 192.168.xxx.xxx gp-sdw3-mdw2

6.修改主机名

  1. Centos7.x vi /etc/hostname
  2. Centos6.x vi /etc/sysconfig/network
  3. 修改完之后 reboot机器

7.配置sysctl.conf(所有机器)

  1. vi /etc/sysctl.conf
  1. kernel.shmall = 197951838 # echo $(expr $(getconf _PHYS_PAGES) / 2)
  2. kernel.shmmax = 810810728448 # echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))
  3. kernel.shmmni = 4096
  4. vm.overcommit_memory = 2
  5. vm.overcommit_ratio = 75 #vm.overcommit_ratio = (RAM - 0.026 * gp_vmem_rq) / RAM #gp_vmem_rq = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7
  6. net.ipv4.ip_local_port_range = 10000 65535
  7. kernel.sem = 500 2048000 200 4096
  8. kernel.sysrq = 1
  9. kernel.core_uses_pid = 1
  10. kernel.msgmnb = 65536
  11. kernel.msgmax = 65536
  12. kernel.msgmni = 2048
  13. net.ipv4.tcp_syncookies = 1
  14. net.ipv4.conf.default.accept_source_route = 0
  15. net.ipv4.tcp_max_syn_backlog = 4096
  16. net.ipv4.conf.all.arp_filter = 1
  17. net.core.netdev_max_backlog = 10000
  18. net.core.rmem_max = 2097152
  19. net.core.wmem_max = 2097152
  20. vm.swappiness = 10
  21. vm.zone_reclaim_mode = 0
  22. vm.dirty_expire_centisecs = 500
  23. vm.dirty_writeback_centisecs = 100
  24. #vm.min_free_kbytes = 487119#awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo
  25. #对于大于64GB的主机,加上下面4行
  26. vm.dirty_background_ratio = 0
  27. vm.dirty_ratio = 0
  28. vm.dirty_background_bytes = 1610612736 # 1.5GB
  29. vm.dirty_bytes = 4294967296 # 4GB
  30. #对于小于64GB的主机删除dirty_background_bytes dirty_bytes,加上下面2行
  31. vm.dirty_background_ratio = 3
  32. vm.dirty_ratio = 10
  33. #vm.min_free_kbytes在内存 > 64GB系统的时候可以设置,一般比较少设置此参数。
  34. #vm.min_free_kbytes,确保网络和存储驱动程序PF_MEMALLOC得到分配。这对内存大的系统尤其重要。一般系统上,默认值通常太低。可以使用awk命令计算vm.min_free_kbytes的值,通常是建议的系统物理内存的3%:
  35. #awk 'BEGIN {OFMT = "%.0f";} /MemTotal/ {print "vm.min_free_kbytes =", $2 * .03;}' /proc/meminfo >> /etc/sysctl.conf
  36. #不要设置 vm.min_free_kbytes 超过系统内存的5%,这样做可能会导致内存不足。
  37. file-max:这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。
  38. tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。这个对服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。
  39. tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接。
  40. tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
  41. tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认是i180000,过多TIME_WAIT套接字会使Web服务器变慢。
  42. tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。
  43. ip_local_port_range:这个参数定义了在UDPTCP连接中本地端口的取值范围。
  44. net.ipv4.tcp_rmem:这个参数定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。
  45. net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。
  46. netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
  47. rmem_default:这个参数表示内核套接字接收缓存区默认的大小。
  48. wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
  49. rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。
  50. wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。

8.配置资源限制参数(所有机器)

在/etc/security/limits.conf文件下增加以下参数

  1. vi /etc/security/limits.conf
  2. * soft nofile 524288
  3. * hard nofile 524288
  4. * soft nproc 131072
  5. * hard nproc 131072
  6. “*” 星号表示所有用户
  7. noproc 是代表最大进程数
  8. nofile 是代表最大文件打开数
  9. RHEL / CentOS 6.X
  10. 修改:/etc/security/limits.d/90-nproc.conf 文件的nproc
  11. [root@mdw ~]# vi /etc/security/limits.d/90-nproc.conf
  12. 确保 * soft nproc 131072
  13. RHEL / CentOS 7.X 修改:
  14. 修改:/etc/security/limits.d/20-nproc.conf 文件的nproc
  15. [root@mdw ~]# vi /etc/security/limits.d/20-nproc.conf
  16. 确保 * soft nproc 131072
  17. ulimit -u 命令显示每个用户可用的最大进程数 max user processes,验证返回值为131072.

9.检查字符集

  1. [root@mdw greenplum-db]# echo $LANG
  2. en_US.UTF-8
  3. 如果为zh_CN.UTF-8
  4. 则要修改 CentOS 6.X /etc/syscconfig/i18n
  5. CentOS 7.X /etc/locale.conf

10..SSH连接阈值

  1. Greenplum数据库管理程序中的gpexpand gpinitsystemgpaddmirrors,使用 SSH连接来执行任务。在规模较大的Greenplum集群中,程序的ssh连接数可能会超出主机的未认证连接的最大阈值。发生这种情况时,会收到以下错误:ssh_exchange_identification:连接被远程主机关闭。
  2. 为避免这种情况,可以更新 /etc/ssh/sshd_config 或者 /etc/sshd_config 文件的 MaxStartups MaxSessions 参数
  3. vi /etc/ssh/sshd_config
  4. MaxStartups 300:30:1000
  5. 重启sshd,使参数生效
  6. service sshd restart

11.同步集群时钟(NTP) (此项为操作,环境已经设置好ntp)

  1. 为了保证集群各个服务的时间一致,首先在master 服务器上,编辑 /etc/ntp.conf,配置时钟服务器为数据中心的ntp服务器。若没有,先修改master 服务器的时间到正确的时间,再修改其他节点的 /etc/ntp.conf,让他们跟随master服务器的时间。
  2. [root@mdw ~]# vi /etc/ntp.conf
  3. server 最前面加上
  4. master
  5. server1234全删
  6. 改成 server xxx,可以问公司IT人员公司的时钟IP,如果没有就设置成
  7. server 1.cn.pool.ntp.org
  8. segment
  9. server mdw prefer # 优先主节点
  10. server smdw # 其次standby 节点,若没有standby ,可以配置成数据中心的时钟服务器
  11. [root@mdw ~]# service ntpd restart # 修改完重启ntp服务

12.创建gpadmin用户(所有机器)

  1. 在每个节点上创建gpadmin用户,用于管理和运行gp集群
  2. [root@mdw ~]# groupadd gpadmin
  3. [root@mdw ~]# useradd gpadmin -g gpadmin -s /bin/bash
  4. [root@mdw ~]# passwd gpadmin
  5. 密码:gpadmin

三、集群安装部署

1.安装依赖(所有机器)root用户执行

  1. [root@mdw ~]# yum install -y zip unzip openssh-clients ed ntp net-tools perl perl-devel perl-ExtUtils* mlocate lrzsz parted apr apr-util bzip2 krb5-devel libevent libyaml rsync

2.执行安装程序(root用户执行)

  1. 执行安装脚本,默认安装到/usr/local/ 目录下。
  2. [root@mdw ~]# rpm -ivh greenplum-db-6.12.1-rhel7-x86_64.rpm
  3. 安装完成后可在/usr/local下看到greenplum-db-6.12.1和它的软连接greenplum-db
  4. 由于权限的问题,建议手动修改安装路径,放在/home/gpadmin下,执行以下语句
  5. 1.进入安装父目录
  6. cd /usr/local
  7. 2.把安装目录移动到/home/gpadmin
  8. mv greenplum-db-6.12.1 /home/gpadmin
  9. 3.删除软连接
  10. /bin/rm r greenplum-db
  11. 4.在/home/gpadmin下建立新的软链接
  12. ln -s /home/gpadmin/greenplum-db-6.12.1 /home/gpadmin/greenplum-db
  13. 5.修改greenplum_path.sh (重要)【greenplum-db-6.12.1可能不用修改】
  14. vi /home/gpadmin/greenplum-db/greenplum_path.sh
  15. GPHOME=/usr/local/greenplum-db-6.12.1
  16. 修改为
  17. GPHOME=/home/gpadmin/greenplum-db
  18. 6.把文件赋权给gpadmin
  19. cd /home
  20. chown -R gpadmin:gpadmin /home/gpadmin
  1. 执行安装脚本,默认安装到/usr/local/ 目录下。
  2. [root@mdw ~]# rpm -ivh greenplum-db-6.12.1-rhel7-x86_64.rpm
  3. 安装完成后可在/usr/local下看到greenplum-db-6.12.1和它的软连接greenplum-db
  4. 由于权限的问题,建议手动修改安装路径,放在/home/gpadmin下,执行以下语句
  5. 。。。。。
  6. 6.把文件赋权给gpadmin
  7. cd /home
  8. chown -R gpadmin:gpadmin /home/gpadmin

3.集群互信,免密登陆(root用户执行)

  1. 生成密钥
  2. GP6.x开始gpssh-exkeys命令已经不带自动生成密钥了,所以需要自己手动生成
  3. cd /home/gpadmin/greenplum-db
  4. [root@mdw greenplum-db]# ssh-keygen -t rsa
  5. 提示语不用管,一直按Enter键使用默认值即可

4.将本机的公钥复制到各个节点机器的authorized_keys文件中

  1. [root@mdw greenplum-db]# ssh-copy-id gp-sdw1
  2. [root@mdw greenplum-db]# ssh-copy-id gp-sdw2
  3. [root@mdw greenplum-db]# ssh-copy-id gp-sdw3-mdw2

5.使用gpssh-exkeys 工具,打通n-n的免密登陆

  1. vi all_host
  2. 增加所有hostname到文件中
  3. gp-mdw
  4. gp-sdw1
  5. gp-sdw2
  6. gp-sdw3-mdw2
  7. [root@mdw greenplum-db]# source /home/gpadmin/greenplum-db/greenplum_path.sh
  8. [root@mdw greenplum-db]# gpssh-exkeys -f all_host

6.同步master 配置到各个主机

  1. 打通gpadmin 用户免密登录
  2. [root@mdw greenplum-db-6.2.1]# su - gpadmin
  3. [gpadmin@mdw ~]$ source /home/gpadmin/greenplum-db/greenplum_path.sh
  4. [gpadmin@mdw ~]$ ssh-keygen -t rsa
  5. [gpadmin@mdw greenplum-db]$ ssh-copy-id gp-sdw1
  6. [gpadmin@mdw greenplum-db]$ ssh-copy-id gp-sdw2
  7. [gpadmin@mdw greenplum-db]$ ssh-copy-id gp-sdw3-mdw2
  8. [gpadmin@mdw greenplum-db]$ mkdir gpconfigs
  9. [gpadmin@mdw greenplum-db]$ cd gpconfigs
  10. [gpadmin@mdw greenplum-db]$ vi all_hosts
  11. 把所有主机hostname添加进去
  12. gp-mdw
  13. gp-sdw1
  14. gp-sdw2
  15. gp-sdw3-mdw2
  16. [gpadmin@mdw ~]$ gpssh-exkeys -f /home/gpadmin/gpconfigs/all_hosts
  17. [gpadmin@mdw greenplum-db]$ vi /home/gpadmin/gpconfigs/seg_hosts
  18. 把所有数据节点hostname添加进去
  19. gp-sdw1
  20. gp-sdw2
  21. gp-sdw3-mdw2

7.批量设置greenplum在gpadmin用户的环境变量(gpadmin用户下)

  1. 添加gp的安装目录,和环境信息到用户的环境变量中。
  2. vi .bashrc
  3. source /home/gpadmin/greenplum-db/greenplum_path.sh

8.批量复制系统参数到其他节点(如果前面已经每台机器设置过可以跳过)

  1. 示例:
  2. [gpadmin@mdw gpconfigs]$ exit
  3. [root@mdw ~]# source /home/gpadmin/greenplum-db/greenplum_path.sh
  4. [root@mdw ~]# gpscp -f /home/gpadmin/gpconfigs/seg_hosts /etc/hosts root@=:/etc/hosts
  5. [root@mdw ~]# gpscp -f /home/gpadmin/gpconfigs/seg_hosts /etc/security/limits.conf root@=:/etc/security/limits.conf
  6. [root@mdw ~]# gpscp -f /home/gpadmin/gpconfigs/seg_hosts /etc/sysctl.conf root@=:/etc/sysctl.conf
  7. [root@mdw ~]# gpscp -f /home/gpadmin/gpconfigs/seg_hosts /etc/security/limits.d/20-nproc.conf root@=:/etc/security/limits.d/20-nproc.conf
  8. [root@mdw ~]# gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'sysctl -p'
  9. [root@mdw ~]# gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'reboot'

9.集群节点安装

  1. 3.5.1 模拟gpseginstall 脚本(gpadmin用户执行)
  2. GP6.xgpseginstall 命令,以下模拟此命令主要过程,完成gpsegment的部署
  3. gpadmin 用户下执行
  4. [root@gp-mdw gpadmin]# su - gpadmin
  5. [gpadmin@gp-mdw ~]$ cd /home/gpadmin
  6. [gpadmin@gp-mdw ~]$ tar -cf gp6.tar greenplum-db-6.12.1/
  7. [gpadmin@gp-mdw ~]$ vi /home/gpadmin/gpconfigs/gpseginstall_hosts
  8. 添加
  9. gp-sdw1
  10. gp-sdw2
  11. gp-sdw3-smdw

10.把压缩包分发到segment上

  1. [gpadmin@gp-mdw ~]$ gpscp -f /home/gpadmin/gpconfigs/gpseginstall_hosts gp6.tar gpadmin@=:/home/gpadmin

11.通过gpssh命令链接到各个segment上执行命令

  1. [gpadmin@mdw gpconfigs]$ gpssh -f /home/gpadmin/gpconfigs/gpseginstall_hosts
  2. tar -xf gp6.tar
  3. ln -s greenplum-db-6.12.1 greenplum-db
  4. exit

12.环境变量文件分发到其他节点

  1. [gpadmin@mdw gpconfigs]$ exit
  2. [root@mdw greenplum-db-6.2.1]# su - gpadmin
  3. [gpadmin@mdw ~]$ cd gpconfigs
  4. [gpadmin@mdw gpconfigs]$ vi seg_hosts
  5. segmenthostname都添加到文件中
  6. gp-sdw1
  7. gp-sdw2
  8. gp-sdw3-smdw
  9. [gpadmin@mdw gpconfigs]$ gpscp -f /home/gpadmin/gpconfigs/seg_hosts /home/gpadmin/.bashrc gpadmin@=:/home/gpadmin/.bashrc

13.创建集群数据目录(root用户执行)

  1. 1. 创建master 数据目录
  2. mkdir -p /data/master
  3. chown -R gpadmin:gpadmin /data
  4. source /home/gpadmin/greenplum-db/greenplum_path.sh
  5. 如果有standby节点则需要执行下面2 gp-sdw3-mdw2 这个hostname灵活变更
  6. gpssh -h gp-sdw3-mdw2 -e 'mkdir -p /data/master'
  7. gpssh -h gp-sdw3-mdw2 -e 'chown -R gpadmin:gpadmin /data'
  8. 2. 创建segment数据目录
  9. source /home/gpadmin/greenplum-db/greenplum_path.sh
  10. gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'mkdir -p /data/p1'
  11. gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'mkdir -p /data/p2'
  12. gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'mkdir -p /data/m1'
  13. gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'mkdir -p /data/m2'
  14. gpssh -f /home/gpadmin/gpconfigs/seg_hosts -e 'chown -R gpadmin:gpadmin /data'

四、集群初始化

1.编写初始化配置文件(gpadmin用户)

  1. 拷贝配置文件模板
  2. su - gpadmin
  3. cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config

2.根据需要修改参数

  1. vi /home/gpadmin/gpconfigs/gpinitsystem_config
  2. 注意:To specify PORT_BASE, review the port range specified in the net.ipv4.ip_local_port_range parameter in the /etc/sysctl.conf file.
  3. 主要修改的参数:
  4. #primary的数据目录
  5. declare -a DATA_DIRECTORY=(/data/p1 /data/p2)
  6. #master节点的hostname
  7. MASTER_HOSTNAME=gp-mdw
  8. #master节点的主目录
  9. MASTER_DIRECTORY=/data/master
  10. #mirror的端口要把前面的#去掉(启用mirror)
  11. MIRROR_PORT_BASE=7000
  12. #mirror的数据目录要把前面的#去掉(启用mirror)
  13. declare -a MIRROR_DATA_DIRECTORY=(/data/m1 /data/m2)

3.集群初始化(gpadmin用户)

  1. 执行脚本:
  2. gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config --locale=C -h /home/gpadmin/gpconfigs/gpseginstall_hosts --mirror-mode=spread
  3. 注意:spread是指spread分布策略,只允许主机数>每个主机中的段实例数情况(number of hosts is greater than the number of segment instances.)
  4. 如果不指定mirror_mode,则是默认的group策略,这样做的情况在段实例数>1时,down机之后不会导致它的镜像全在另外一台机器中,降低另外一台机器的性能瓶颈。
  1. 安装成功日志
  2. .
  3. .
  4. .
  5. .
  6. server shutting down
  7. 20201220:12:06:59:017597 gpstop:gp-mdw:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
  8. 20201220:12:06:59:017597 gpstop:gp-mdw:gpadmin-[INFO]:-Terminating processes for segment /data/master/gpseg-1
  9. 20201220:12:06:59:017597 gpstop:gp-mdw:gpadmin-[ERROR]:-Failed to kill processes for segment /data/master/gpseg-1: ([Errno 3] No such process)
  10. 20201220:12:07:00:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Starting gpstart with args: -a -l /home/gpadmin/gpAdminLogs -d /data/master/gpseg-1
  11. 20201220:12:07:00:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
  12. 20201220:12:07:00:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 6.1.0 build commit:6788ca8c13b2bd6e8976ccffea07313cbab30560'
  13. 20201220:12:07:00:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Greenplum Catalog Version: '301908232'
  14. 20201220:12:07:00:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Starting Master instance in admin mode
  15. 20201220:12:07:01:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
  16. 20201220:12:07:01:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
  17. 20201220:12:07:01:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Setting new master era
  18. 20201220:12:07:01:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Master Started...
  19. 20201220:12:07:01:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Shutting down master
  20. 20201220:12:07:02:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Commencing parallel segment instance startup, please wait...
  21. ..
  22. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Process results...
  23. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-----------------------------------------------------
  24. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:- Successful segment starts = 6
  25. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:- Failed segment starts = 0
  26. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:- Skipped segment starts (segments are marked down in configuration) = 0
  27. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-----------------------------------------------------
  28. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Successfully started 6 of 6 segment instances
  29. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-----------------------------------------------------
  30. 20201220:12:07:04:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Starting Master instance gp-mdw directory /data/master/gpseg-1
  31. 20201220:12:07:05:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Command pg_ctl reports Master gp-mdw instance active
  32. 20201220:12:07:05:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Connecting to dbname='template1' connect_timeout=15
  33. 20201220:12:07:05:017622 gpstart:gp-mdw:gpadmin-[INFO]:-No standby master configured. skipping...
  34. 20201220:12:07:05:017622 gpstart:gp-mdw:gpadmin-[INFO]:-Database successfully started
  35. 20201220:12:07:05:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Completed restart of Greenplum instance in production mode
  36. 20201220:12:07:06:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Commencing parallel build of mirror segment instances
  37. 20201220:12:07:06:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Spawning parallel processes batch [1], please wait...
  38. ......
  39. 20201220:12:07:07:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
  40. .................................................................
  41. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:------------------------------------------------
  42. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Parallel process exit status
  43. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:------------------------------------------------
  44. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Total processes marked as completed = 6
  45. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Total processes marked as killed = 0
  46. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Total processes marked as failed = 0
  47. 20201220:12:08:13:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:------------------------------------------------
  48. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Scanning utility log file for any warning messages
  49. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Log file scan check passed
  50. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Greenplum Database instance successfully created
  51. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-------------------------------------------------------
  52. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-To complete the environment configuration, please
  53. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-update gpadmin .bashrc file with the following
  54. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-1. Ensure that the greenplum_path.sh file is sourced
  55. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-2. Add "export MASTER_DATA_DIRECTORY=/data/master/gpseg-1"
  56. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:- to access the Greenplum scripts for this instance:
  57. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:- or, use -d /data/master/gpseg-1 option for the Greenplum scripts
  58. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:- Example gpstate -d /data/master/gpseg-1
  59. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Script log file = /home/gpadmin/gpAdminLogs/gpinitsystem_20201220.log
  60. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-To remove instance, run gpdeletesystem utility
  61. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-To initialize a Standby Master Segment for this Greenplum instance
  62. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Review options for gpinitstandby
  63. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-------------------------------------------------------
  64. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-The Master /data/master/gpseg-1/pg_hba.conf post gpinitsystem
  65. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-has been configured to allow all hosts within this new
  66. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this
  67. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-new array must be explicitly added to this file
  68. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is
  69. 20201220:12:08:14:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-located in the /home/gpadmin/greenplum-db/docs directory
  70. 20201220:12:08:15:012260 gpinitsystem:gp-mdw:gpadmin-[INFO]:-------------------------------------------------------

4.安装中途失败回退

安装中途失败,提示使用 bash /home/gpadmin/gpAdminLogs/backout_gpinitsystem_gpadmin_* 回退,执行该脚本即可,例如:

  1. 20191218:20:39:53:011405 gpinitsystem:mdw:gpadmin-[FATAL]:-Unknown host gpzq-sh-mb: ping: unknown host gpzq-sh-mb
  2. unknown host Script Exiting!
  3. 20191218:20:39:53:011405 gpinitsystem:mdw:gpadmin-[WARN]:-Script has left Greenplum Database in an incomplete state
  4. 20191218:20:39:53:011405 gpinitsystem:mdw:gpadmin-[WARN]:-Run command bash
  5. /home/gpadmin/gpAdminLogs/backout_gpinitsystem_gpadmin_20191218_203938 to remove these changes
  6. 20191218:20:39:53:011405 gpinitsystem:mdw:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND
  7. 20191218:20:39:53:011405 gpinitsystem:mdw:gpadmin-[INFO]:-End Function BACKOUT_COMMAND
  8. [gpadmin@mdw gpAdminLogs]$ ls
  9. backout_gpinitsystem_gpadmin_20191218_203938 gpinitsystem_20191218.log
  10. [gpadmin@mdw gpAdminLogs]$ bash backout_gpinitsystem_gpadmin_20191218_203938
  11. Stopping Master instance
  12. waiting for server to shut down.... done
  13. server stopped
  14. Removing Master log file
  15. Removing Master lock files
  16. Removing Master data directory files
  17. 若执行后仍然未清理干净,可执行一下语句后,再重新安装:
  18. pg_ctl -D /data/master/gpseg-1 stop
  19. rm -f /tmp/.s.PGSQL.5432 /tmp/.s.PGSQL.5432.lock
  20. 主节点
  21. rm -rf /data/master/gpseg*
  22. 所有数据节点
  23. rm -rf /data/p1/gpseg-x
  24. rm -rf /data/p2/gpseg-x
  25. rm -rf /data/p1/gpseg*
  26. rm -rf /data/p2/gpseg*

5.安装成功后设置环境变量(gpadmin用户)

  1. 编辑gpadmin 用户的环境变量,增加(重要)
  2. export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
  3. 除此之外,通常还增加:(可以不设置)
  4. export PGPORT=5432 # 根据实际情况填写
  5. export PGUSER=gpadmin # 根据实际情况填写
  6. export PGDATABASE=gpdw # 根据实际情况填写
  7. 前面已经添加过 source /usr/local/greenplum-db/greenplum_path.sh,此处操作如下:
  8. vi .bashrc
  9. export MASTER_DATA_DIRECTORY=/data/master/gpseg-1

6.安装成功后配置

  1. psql 登陆gp 并设置密码(gpadmin用户)
  2. psql -h hostname -p port -d database -U user -W password
  3. -h后面接对应的master或者segment主机名
  4. -p后面接master或者segment的端口号
  5. -d后面接数据库名可将上述参数配置到用户环境变量中,linux 中使用gpadmin用户不需要密码。
  6. psql -h 127.0.0.1 -p 5432 -d database -U gpadmin
  7. psql 登录,并设置gpadmin用户密码示例:
  8. psql -d postgres
  9. alter user gpadmin encrypted password 'gpadmin';
  10. su gpadmin
  11. psql -p 5432
  12. 修改数据库密码
  13. alter role gpadmin with password '123456';
  14. 退出:
  15. \q
  16. 显示数据库列表
  17. \l
  18. List of databases
  19. Name | Owner | Encoding | Collate | Ctype | Access privileges
  20. -----------+---------+----------+---------+-------+---------------------
  21. postgres | gpadmin | UTF8 | C | C |
  22. template0 | gpadmin | UTF8 | C | C | =c/gpadmin +
  23. | | | | | gpadmin=CTc/gpadmin
  24. template1 | gpadmin | UTF8 | C | C | =c/gpadmin +
  25. | | | | | gpadmin=CTc/gpadmin
  26. (3 rows)

7.客户端登陆gp

简单介绍

客户端认证是由一个配置文件(通常名为pg_hba.conf)控制的, 它存放在数据库集群的数据目录里。HBA的意思是"host-based authentication", 也就是基于主机的认证。在initdb初始化数据目录的时候, 它会安装一个缺省的pg_hba.conf文件。不过我们也可以把认证配置文件放在其它地方

  1. 配置 pg_hba.conf
  2. vi /data/master/gpseg-1/pg_hba.conf
  3. 新增一行 host all all 0.0.0.0/0 md5

8.初始化standby节点

  1. gpinitstandby -s gp-sdw3-smdw
  1. [gpadmin@gp-mdw ~]$ gpinitstandby -s gp-sdw3-smdw
  2. 20210311:19:25:38:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Validating environment and parameters for standby initialization...
  3. 20210311:19:25:38:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Checking for data directory /data/master/gpseg-1 on gp-sdw3-smdw
  4. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:------------------------------------------------------
  5. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum standby master initialization parameters
  6. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:------------------------------------------------------
  7. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum master hostname = gp-mdw
  8. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum master data directory = /data/master/gpseg-1
  9. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum master port = 5432
  10. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum standby master hostname = gp-sdw3-smdw
  11. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum standby master port = 5432
  12. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum standby master data directory = /data/master/gpseg-1
  13. 20210311:19:25:39:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Greenplum update system catalog = On
  14. Do you want to continue with standby master initialization? Yy|Nn (default=N):
  15. > y
  16. 20210311:19:25:42:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Syncing Greenplum Database extensions to standby
  17. 20210311:19:25:43:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-The packages on gp-sdw3-smdw are consistent.
  18. 20210311:19:25:43:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Adding standby master to catalog...
  19. 20210311:19:25:43:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Database catalog updated successfully.
  20. 20210311:19:25:43:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Updating pg_hba.conf file...
  21. 20210311:19:25:45:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-pg_hba.conf files updated successfully.
  22. 20210311:19:25:49:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Starting standby master
  23. 20210311:19:25:49:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Checking if standby master is running on host: gp-sdw3-smdw in directory: /data/master/gpseg-1
  24. 20210311:19:25:53:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Cleaning up pg_hba.conf backup files...
  25. 20210311:19:25:54:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
  26. 20210311:19:25:54:015347 gpinitstandby:gp-mdw:gpadmin-[INFO]:-Successfully created standby master on gp-sdw3-smdw

Greenplum 6安装指南(CentOS 7.X)的更多相关文章

  1. Greenplum(4.3.73)集群安装手册

    1. 概述 本文档仅限于指导Greenplum 4.3.7.3(对应安装包greenplum-db-4.3.7.3-build-2-RHEL5-x86_64.bin)版本在CentOS6.5 系统进行 ...

  2. Greenplum 4.3 For Centos 6.5 安装指南

    1.greenplum数据库安装前期准备工作 1.1 安装Linux l  内存:最小1GB,推荐2GB或以上. l  交换空间: 内存大小是1-2GB时,交换空间是内存的1.5倍,内存大小2-16G ...

  3. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  4. CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  5. CentOS 7安装指南

    CentOS 7安装指南(U盘版) 一.准备阶段 1.下载CentOS7镜像文件(ISO文件)到自己电脑,官网下载路径: http://isoredirect.centos.org/centos/7/ ...

  6. Greenplum源码安装(CentOS 7)

      最近在看GP,在安装集群的时候遇到了很多问题,在此记录下来. 目录 1 安装环境及软件版本 2 安装准备工作 2.1 修改hosts(所有机器) 2.2 修改系统内核配置(所有机器) 2.3 关闭 ...

  7. CentOS 7.3 安装指南

    摘要: 基于 Red Hat 企业版的源代码的最新版本的 CentOS 7 在今年的 12月发布了 CentOS Linux 7 (1611),包含了许多 bug 修复.新的包更新,比如 Samba. ...

  8. 在CentOS上以源码编译的方式安装Greenplum数据库

    集群组成: 一台主机,一台从节点. 系统环境: 操作系统:CentOS 7,64位,7.4.1708(/etc/redhat-release中查看) CPU:AMD Fx-8300 8核 内存:8GB ...

  9. UltraISO刻录CentOS 7安装指南

    CentOS 7.2 安装指南(U盘版) 一.准备阶段 1.下载CentOS7镜像文件(ISO文件)到自己电脑,官网下载路径: http://isoredirect.centos.org/centos ...

随机推荐

  1. 从S3中拷贝或同步文件

    p.p1 { margin: 0; font: 16px "Helvetica Neue"; color: rgba(53, 53, 53, 1) } p.p2 { margin: ...

  2. buu 刮开有奖

    一.查壳, 二.拖入ida,分析 直接搜字符串完全没头绪,在看了大佬的wp才找到了,关键函数. 明显那个String就是我们要求的flag,要开始分析程序. 字符串长度为8,同时这个函数对字符串进行了 ...

  3. tcp三次握手四次挥手----转

    序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生:给字节编上序号后,就给每一个报文段指派一个序号:序列号seq就是这个报文 ...

  4. 「CF526F」 Pudding Monsters

    CF526F Pudding Monsters 传送门 模型转换:对于一个 \(n\times n\) 的棋盘,若每行每列仅有一个棋子,令 \(a_x=y\),则 \(a\) 为一个排列. 转换成排列 ...

  5. C语言:整数取值范转及溢出

    short.int.long 是C语言中常用的三种整数类型,分别称为短整型.整型.长整型.在现代操作系统中,short.int.long 的长度分别是 2.4.4 或者 8,它们只能存储有限的数值,当 ...

  6. HTML元素属性及意义

    HTML属性可以给元素添加附加信息,设置的时候以 (属性名="属性值")成对出现. 属性值应该始终包括在引号内(单引号或双引号),html对大小写不敏感,所以属性和属性值也不区分大 ...

  7. Quick BI的复杂系统为例:那些年,我们一起做过的性能优化

    背景 一直以来,性能都是技术层面不可避开的话题,尤其在中大型复杂项目中.犹如汽车整车性能,追求极速的同时,还要保障舒适性和实用性,而在汽车制造的每个环节.零件整合情况.发动机调校等等,都会最终影响用户 ...

  8. aria2+uget+chrome

    1.安装aira2 sudo apt install aria2 2.安装及配置uget sudo apt install uget 编辑 -> 设置: 分类 -> 属性: 3.chrom ...

  9. SpringBoot之了解自动配置原理

    承接上文: import注解的使用: 作用:引用时,容器自动创建出这填写的类型的组件,默认组件的名字就是全类名. 往容器中添加两个组件 @Import({User.class, DBHelper.cl ...

  10. tomcat禁用PUT,DELETE等一些不必要的HTTP方法

    一.背景 公司进行安全整改, 技术要求:系统软件所需支撑的WEB容器环境应禁止除GET和POST外其他HTTP(S)方法. 提供凭证:建议在不影响业务的前提下,禁用PUT.DELETE.HEAD.OP ...