配置系统并安装greenplum数据库

按顺序执行下面安装任务:

  • 1. 确认系统配置要求

  • 2. 操作系统参数配置

  • 3. (master only) 创建管理员用户账号

  • 4. (master only) 安装Greenplum数据库软件

  • 5. 在所有的主机上安装和配置Greenplum

  • 6. 创建数据存储目录

注意:除了有特殊说明外,这些任务要在所有的主机上进行安装(master,standby master and segments)

1. 系统要求

  • 下面的命令是核对SELinux的状态(以root用户运行)

    # sestatus
    SELinuxstatus: disabled

    可以编辑/etc/selinux/config文件,修改SELINUX参数的值,然后重启操作系统

SELINUX=disabled
  • 下面的命令是检查iptables的状态,以root用户运行(CentOS 6.x)
# /sbin/chkconfig --list iptables

关闭iptables

#chkconfig iptables off
#service iptables stop
#chkconfig --list iptables

如果iptables的状态是disabled,将会显示下面输出

iptables 0:off 1:off 2:off 3:off 4:off 5:off  6:off
  • 下面的命令是检查iptables的状态,以root用户运行(CentOS 7.x)
# systemctl status firewalld

如果firewalld为disabled,显示如下

firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service;
disabled; vendor preset: enabled)
Active: inactive (dead)

下面命令是禁用firewalld(以root用户运行)

# systemctl stop firewalld.service
# systemctl disable firewalld.service

2.设置操作系统参数

Greenplum的安装需要修改操作系统的参数配置(masters和Segments)

  • Linux系统配置

编辑/etc/hosts文件,确保包括主机名和ip地址

编辑/etc/sysctl.conf文件,修改下面的配置并重启

kernel.shmmax = 500000000(default 68719476736)
kernel.shmmni = 4096
kernel.shmall = 4000000000(default 4294967296)
kernel.sem = 500 1024000 200 4096
kernel.sysrq = 1(default 0)
kernel.core_uses_pid = 1(default 1)
kernel.msgmnb = 65536(default 65536)
kernel.msgmax = 65536(default 65536)
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1(default 1)
net.ipv4.conf.default.accept_source_route = 0(default 0)
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

在/etc/security/limits.conf文件中配置如下参数

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3.创建Greenplum 数据库管理员账户

必须要在master节点创建运行数据库的用户,可以使用操作系统的用户作为Greenplum管理员用户,为了方便可以使用gpadmin

注意:不能用root用户运行greenlum

Gpadmin用户必须要有访问安装了Greenplum的主机目录权限

在Greenplum的master节点上创建操作系统账户,以root用户运行groupadd, useradd,和 passwd命令。例如:

# groupadd gpadmin
# useradd gpadmin -g gpadmin
# passwd gpadmin
New password: <changeme>
Retype new password: <changeme>

4.安装 Greenplum 数据库

  • 使用root用户登录需要安装Greenplum数据库的master节点的机器.

  • 下载安装文件,将安装文件复制到master节点的机器

  • 解压安装文件:

# unzip greenplum-db-5.9.0-rhel6-x86_64.zip
  • 执行安装文件:
# /bin/bash greenplum-db-5.9.0-rhel6-x86_64.bin
  • 安装过程会提示接受Greenplum Database license agreement,输入yes,接受license agreement。

  • 安装过程会提示输入安装路径,输入ENTER键使用默认安装目录(/usr/local/greenplum-db-),或者输入自定义路径(绝对路径)

注意:必须要有安装目录的write权限

  • 安装结束会创建一个greenplum-db的软连接,查看安装目录如下:

  • 如果是以root用户安装的,需要将安装文件的属主和组改变成gpadmin
# chown -R gpadmin /usr/local/greenplum*
# chgrp -R gpadmin /usr/local/greenplum*

5.在所有主机上安装配置greenplum

当以root用户运行gpseginstall命令时,会将Greenplum安装文件复制到其他主机上(hostfile_exkeys进行配置),同时会创建Greenplum操作系统用户账号(gpadmin),设置账号密码(默认为changeme),设置安装目录的属主和组,并且会在所有主机之间配置SSH免密.

注意:如果只在一台机器上安装greenplum,也可以使用gpseginstall命令,但是hostfile_exkeys文件只有当前主机的主机名

在所有的主机上安装和配置greenplum数据库

  • 以root用户登录master主机

  • 在greenplum安装目录下,对greenplum_path.sh 执行source命令

# source /usr/local/greenplum-db/greenplum_path.sh
  • 创建hostfile_exkeys文件,包括所有主机名(master, standby master and

segments),例如:如果有一个master和一个standby master以及两个segment,配置文件配置如下:

mdw
sdw1
sdw2
smdw
  • 运行gpseginstall命令,下面的是以root用户运行的,该命令会在所有主机上创建gpadmin的系统账号,在所有segment主机上设置用户的密码为123qwe
# gpseginstall -f hostfile_exkeys -p 123qwe

-u和-p分别设置账号名和密码

验证安装

  • 以gpadmin用户登录master节点
$ su - gpadmin
  • 对greenplum_path.sh执行source命令
# source /usr/local/greenplum-db/greenplum_path.sh
  • 使用gpssh命令验证是否可以免密登录,$GPHOME默认为/user/local
$ gpssh -f hostfile_exkeys -e ls -l $GPHOME

如果不能免密登录,使用下面命令进行免密配置

$ gpssh-exkeys -f hostfile_exkeys

6.创建数据存储区域

Master主机上创建数据存储目录

  • 创建属主和组都为gpadmin的目录,以root用户运行下面命令
# mkdir -p /home/gpadmin/gpdata/gpmaster
  • 改变创建目录的属主和组,例如:
# chown -R gpadmin:gpadmin /home/gpadmin/gpdata/gpmaster/
  • 使用gpssh命令,在standby master上创建相同的目录,例如:
$ source /usr/local/greenplum-db/greenplum_path.sh
$ gpssh -h smdw -e 'mkdir -p /home/gpadmin/gpdata/gpmaster'

在segment主机上创建数据存储目录

  • 以root用户登录master主机

  • 创建hostfile_gpssh_segonly文件,该文件仅仅包括所有segment的主机名

sdw1
sdw2
  • 使用hostfile_gpssh_segonly文件,通过gpssh命令在所有的segment主机上创建primary 和 mirror的目录
$ source /usr/local/greenplum-db/greenplum_path.sh 
$ gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /home/gpadmin/gpdata/gpdatap1'
$ gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /home/gpadmin/gpdata/gpdatap2'
$ gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /home/gpadmin/gpdata/gpdatam1'
$ gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /home/gpadmin/gpdata/gpdatam2'

初始化greenplum数据库系统

1. 初始化数据库

创建用于初始化的文件

  • 以gpadmin用户登录
$ su – gpadmin
  • 创建hostfile_gpinitsystem文件,该文件仅仅包括segment主机名
sdw1
sdw2
  • 保存文件

创建gpinitsystem_config的文件

  • 以gpadmin用户登录

    $ su – gpadmin
  • 将gpinitsystem_config文件复制到/usr/local/greenplum-db/conf/目录下

$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config \
/usr/local/greenplum-db/conf/gpinitsystem_config
  • 编辑gpinitsystem_config文件,内容如下:
################################################
#### REQUIRED PARAMETERS
################################################
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
################################################
#### OPTIONAL MIRROR PARAMETERS
################################################
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)
################################################
#### OTHER OPTIONAL PARAMETERS
################################################
#DATABASE_NAME=name_of_database
MACHINE_LIST_FILE=/usr/local/greenplum-db/conf/hostfile_gpinitsystem

  • 保存文件

运行初始化命令

  • -s参数是指定standby master,本环境由于只有两个segment节点,选择group方式备份。
$ gpinitsystem -c gpinitsystem_config -s smdw
  • 该命令会验证安装信息,如果所有的预检查都成功,会提示需要确认配置,例如:
=> Continue with Greenplum creation? Yy/Nn
  • 输入确认启动初始化.

  • 初始化成功会提示如下内容:

=> Greenplum Database instance successfully  created.

2.设置环境变量

  • 以 gpadmin用户登录:
$ su - gpadmin
  • 编辑.bashrc文件:
$ vi ~/.bashrc
  • 添加如下内容:
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY= /home/gpadmin/gpdata/gpmaster/gpseg-1
  • (注意)如果是RHEL 7 or CentOS 7系统,需要在.bashrc文件的末尾添加如下内容:
export LD_PRELOAD=/lib64/libz.so.1 ps
  • 使用文件生效:
$ source ~/.bashrc
  • 如果有standy master,将环境变量文件复制到standy master主机上
$ cd ~
$ scp .bashrc standby_hostname:`pwd`

3.控制访问权限

编辑 pg_hba.conf

  • 修改密码
**testDB=# alter role gpadmin with password '123qwe';**
  • 编辑 $MASTER_DATA_DIRECTORY/pg_hba.conf,添加访问数据库的主机信息.
host   testDB   gpadmin     10.6.150.102/32      md5
  • 使pg_hba.conf文件生效:
$ gpstop -u