本质上讲GREENPLUM是一个关系型数据库集群. 它实际上是由数个独立的数据库服务组合成的逻辑数据库。与RAC不同,这种数据库集群采取的是MPP架构。
它的组件分成三个部分MASTER/SEGMENT以及MASTER与SEGMENT之间的高效互联技术GNET。其中MASTER和SEGMENT本身就是独立的数据库SERVER。不同之处在于,MASTER只负责应用的连接,生成并拆分执行计划,把执行计划分配给SEGMENT节点,以及返回最终结果给应用,它只存储一些数据库的元数据,不负责运算,因此不会成为系统性能的瓶颈。这也是GREENPLUM与传统MPP架构数据库的一个重要区别。 SEGMENT节点存储用户的业务数据,并根据得到执行计划,负责处理业务数据。也就是用户关系表的数据会打散分布到每个SEGMENGT节点。当进行数据访问时,首先所有SEGMENT并行处理与自己有关的数据,如果需要segment可以通过进行innterconnect进行彼此的数据交互。 segment节点越多,数据就会打的越散,处理速度就越快。因此与SHARE ALL数据库集群不同,通过增加SEGMENT节点服务器的数量,GREENPLUM的性能会成线性增长。
结合官网和一些资料搭建GP集群环境,这里记录一下自己的搭建过程。
一、搭建说明
Greenplum集群环境,一个主节点、一个备节点、二个数据节点。
[root@mdw ~]# cat /etc/redhat-release
操作系统:CentOS Linux release 7.4.1708 (Core)
数据库:greenplum-db-4.3.12.0-rhel5-x86_64
下载地址:https://network.pivotal.io/products/pivotal-gpdb#/releases/4540/file_groups/560
192.168.122.150 master节点
192.168.122.151 standby节点
192.168.122.152 segment节点
192.168.122.153 segment节点
安装分为两步,先做系统配置,主要是磁盘优化,主机通讯等工作,再做数据库安装。
二、系统配置
参考:http://gpdb.docs.pivotal.io/6-12/install_guide/prep_os.html
以下步骤,所有机器都要处理
1.查看SELinux status
[root@localhost tools]# sestatus
SELinux status: enabled
[root@localhost tools]# vi /etc/selinux/config
SELINUX=disabled
需要重启后才会生效,可以在所有设置完成后,重启。
2.关闭防火墙
CentOS7默认防火墙为firewall,先查看状态
[root@localhost tools]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-12-03 05:40:14 EST; 2h 46min ago
关闭防火墙命令
[root@localhost tools]# systemctl stop firewalld
[root@localhost tools]# systemctl disable firewalld
3.添加推荐配置
编辑文件/etc/sysctl.conf,可以优化性能,包括共享内存、网络和用户限制
[root@localhost ~]# vi /etc/sysctl.conf
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000