一、环境准备
1、安装VMware软件,然后在VMware里安装三台Linux虚拟机(我使用的是redhat)
2、设置虚拟机

主机名

ip

内存

硬盘

mdw

192.168.10.20

500M

8G

sdw1

192.168.10.21

500M

8G

sdw2

192.168.10.22

500M

8G


3、下载数据库安装文件greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386

二、安装
注:标示“三台主机”的表示要在三台电脑上都做该操作,“master节点”表示只在mdw主机上操作


1、关闭防火墙(三台主机)(学习时可以直接关闭,正式环境是通过开放端口)
#service iptables stop  停止防火墙服务,重启电脑后仍然会开启
#chkconfig iptables off  关闭防火墙服务开机启动,重启后生效
    可以两个命令结合使用避免重启

2、修改hosts文件(三台主机)
在hosts文件中添加或修改一下内容(如果主机名无法改,就在后面写多个域名 例子: 192.168.10.200 mdw  master  )
192.168.10.20 mdw
192.168.10.21 sdw1
192.168.10.22 sdw2

添加之后,可以通过ping命令测试是否正确,如:ping sdw1 测试是否能访问sdw1节点

3、修改或添加/etc/sysctl.conf(三台主机)
xfs_mount_options = rw,noatime,inode64,allocsize=16m

kernel.shmmax = 500000000

kernel.shmmni = 4096

kernel.shmall = 4000000000

kernel.sem = 250 512000 100 2048

#如果机子的性能好的好: kernel.sem = 250 512000 100 20480

kernel.sysrq = 1

kernel.core_uses_pid = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.msgmni = 2048

net.ipv4.tcp_syncookies = 1

net.ipv4.ip_forward = 0

net.ipv4.conf.default.accept_source_route = 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 = 1025 65535

net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2



4、配置/etc/security/limits.conf文件,添加以下内容(三台主机)
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

5、设置预读块的值为16384(三台主机)
# /sbin/blockdev --getra /dev/sda 查看预读块,默认大小为256
# /sbin/blockdev --setra 16384 /dev/sda  设置预读块

6、设置磁盘访问I/O调度策略(三台主机)
#echo deadline > /sys/block/sda/queue/scheduler (存储的硬盘/sda)

7、上传并解压数据库安装文件(master节点)

# unzip greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.zip


8、安装软件(master节点)

# /bin/bash greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin

安装过程中会显示以下内容,直接使用默认即可



安装之后的目录文件如下:



9、获取环境参数(master节点)
# source /usr/local/greenplum-db/greenplum_path.sh

10、创建包含所有主机名的文件/home/gpadmin/all_hosts,文件内容:(三台主机)
  mdw
  sdw1
  sdw2

11、运行gpseginstall工具 (master节点)
# gpseginstall -f /home/gpadmin/all_hosts -u gpadmin -p gpadmin


all_hosts是上个步骤创建的文件,安装过程中会让输入三台主机的root密码,完成后提示成功,如下图:



12、切换到gpadmin用户验证无密码登录(三台主机)
        (1)切换用户
            $ su - gpadmin

            (2)获取环境参数(所有节点)
                # source /usr/local/greenplum-db/greenplum_path.sh        

                (3)使用gpssh工具来测试无密码登录所有主机,结果如下图:
                    $ gpssh -f all_hosts -e ls -l $GPHOME




13、配置环境变量(master节点)

[gpadmin@bj-gp-node1 ~]$ cd /home/gpadmin
[gpadmin@bj-gp-node1 ~]$ vi .bashrc
[gpadmin@bj-gp-node1 ~]$ vi .bash_profile

.bashrc和.bash_profile最后都添加下面两行
source /usr/local/greenplum-db/greenplum_path.sh 
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1

 然后将.bashrc文件发送到sdw1和sdw2,命令如下:

  scp .bashrc sdw1:~

  scp .bashrc sdw2:~


14、创建存储区域(master节点)

首先mkfs格式化硬盘/dev/sda,然后在挂载到 /data/ 最后配置自动挂载 vim /etc/fstab  [这个就不详细写了]

    (1) 创建Master数据存储区域

        # mkdir -p /data/master

    (2) 改变目录的所有权

        # chown gpadmin:gpadmin /data/master

    (3) 创建一个包含所有segment主机名的文件/home/gpadmin/segment_hosts,内容如下:

        sdw1

        sdw2

    (4) 使用gpssh工具在所有segment主机上创建主数据和镜像数据目录,如果没有设置镜像可以不创建mirror目录(注意先在每个segment格式硬盘,然后挂载上/data/ 然后设置自启动)

  # gpssh -f seg_hosts -e 'mkdir -p /data/primary'

  # gpssh -f seg_hosts -e 'mkdir -p /data/mirror'

  # gpssh -f seg_hosts -e 'chown gpadmin /data/primary'

  # gpssh -f seg_hosts -e 'chown gpadmin /data/mirror


15、同步系统时间

     (1) 在Master主机上编辑/etc/ntp.conf来设置如下内容:
  server 127.127.1.0
     (2) 在Segment主机上编辑/etc/ntp.conf
  server mdw
     (3) 在Master主机上,通过NTP守护进程同步系统时钟
  # gpssh -f all_hosts -v -e 'ntpd'


16、验证操作系统设置
# gpcheck -f all_hosts -m mdw
注意运行结果是否有error信息,如果有处理掉错误信息后重新执行上面的命令检查,直至没有error信息,error如下图



成功的信息如下:



17、创建Greenplum数据库配置文件
(1) 以gpadmin用户登录
  # su - gpadmin


(2) 从模板中拷贝一份gpinitsystem_config文件
  $  vi /home/gpadmin/gpinitsystem_config   ($GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config 是个模板)

  $ chmod 775 gpinitsystem_config


(3) 设置所有必须的参数
  ARRAY_NAME="EMC Greenplum DW"
  SEG_PREFIX=gpseg
  PORT_BASE=40000
  declare -a DATA_DIRECTORY=(/data/primary)
  MASTER_HOSTNAME=mdw
  MASTER_DIRECTORY=/data/master
  MASTER_PORT=5432
  TRUSTED SHELL=ssh
  CHECK_POINT_SEGMENT=8
  ENCODING=UNICODE


(4) 设置可选参数
  MIRROR_PORT_BASE=50000
  REPLICATION_PORT_BASE=41000
  MIRROR_REPLICATION_PORT_BASE=51000
  declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)

18、运行初始化工具初始化数据库
$ gpinitsystem -c gpinitsystem_config -h seg_hosts
成功之后,数据库便启动了,信息如下:




19、启动和停止数据库测试是否能正常启动和关闭,命令如下
  $ gpstart
  $ gpstop

20、访问数据库
psql -d postgres
输入查询语句
select datname,datdba,encoding,datacl from pg_database;

创建dba用户:

postgres# create role source  password 'source' createdb login;

查看用户信息:

postgres# select rolename, oid from gp_roles;


显示信息如下