**
Greenplum5.9.0安裝部署(三臺機器)
**
一. 配置系統並安裝greenplum數據庫
按順序執行下面安裝任務:
- 確認系統配置要求
- 操作系統參數配置
- (master only) 創建管理員用戶賬號
- (master only) 安裝Greenplum數據庫軟件
- 在所有的主機上安裝和配置Greenplum
- 創建數據存儲目錄
注意:除了有特殊說明外,這些任務要在所有的主機上進行安裝(master,
standby master and segments)
1. 系統要求
下表爲生產環境中推薦的最低配置要求。
(1) 下面的命令是覈對SELinux的狀態(以root用戶運行)
#sestatus
可以編輯/etc/selinux/config文件,修改SELINUX參數的值,將SELINUX修改爲disabled,然後重啓操作系統
SELINUX=disabled
(2) 下面的命令是檢查iptables的狀態,以root用戶運行(CentOS 6.x)
# /sbin/chkconfig --list 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
(3) 下面的命令是檢查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)
(1) Linux系統配置
•編輯/etc/hosts文件,確保包括主機名和ip地址
• 編輯/etc/sysctl.conf文件,修改下面的配置並重啓
Note:下面爲需要添加的內容:
kernel.shmmni = 4096
kernel.sem = 500 1024000 200 4096
kernel.msgmni = 2048
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
下面爲需要修改的內容:
kernel.shmmax = 500000000(default 68719476736)
kernel.shmall = 4000000000(default 4294967296)
kernel.sysrq = 1(default 0)
• 在/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 數據庫
(1) 使用root用戶登錄需要安裝Greenplum數據庫的master節點的機器.
(2)下載安裝文件,將安裝文件複製到master節點的機器
(3) 解壓安裝文件:
# unzip greenplum-db-5.9.0-rhel6-x86_64.zip
(4)執行安裝文件:
# /bin/bash greenplum-db-5.9.0-rhel6-x86_64.bin
(5) 安裝過程會提示接受Greenplum Database license agreement,輸入yes,接受license agreement。
(6)安裝過程會提示輸入安裝路徑,輸入ENTER鍵使用默認安裝目錄(/usr/local/greenplum-db-),或者輸入自定義路徑(絕對路徑)
注意:必須要有安裝目錄的write權限
(7)安裝結束會創建一個greenplum-db的軟連接,查看安裝目錄如下:
(8)如果是以root用戶安裝的,需要將安裝文件的屬主和組改變成gpadmin
# chown -R gpadmin /usr/local/greenplum*
# chgrp -R gpadmin /usr/local/greenplum*
(9)安裝成功之後,文件包括以下內容
5.在所有主機上安裝配置greenplum
當以root用戶運行gpseginstall命令時,會將Greenplum安裝文件複製到其他主機上(hostfile_exkeys進行配置),同時會創建Greenplum操作系統用戶賬號(gpadmin),設置賬號密碼(默認爲changeme),設置安裝目錄的屬主和組,並且會在所有主機之間配置SSH免密.
注意:如果只在一臺機器上安裝greenplum,也可以使用gpseginstall命令,但是hostfile_exkeys文件只有當前主機的主機名
在所有的主機上安裝和配置greenplum數據庫
(1) 以root用戶登錄master主機
(2) 在greenplum安裝目錄下,對greenplum_path.sh 執行source命令
# source /usr/local/greenplum-db/greenplum_path.sh
(3) 創建hostfile_exkeys文件,包括所有主機名(master, standby master and
segments),例如:如果有一個master和一個standby master以及兩個segment,配置文件配置如下:
mdw
sdw1
sdw2
smdw
(4)運行gpseginstall命令,下面的是以root用戶運行的,該命令會在所有主機上創建gpadmin的系統賬號,在所有segment主機上設置用戶的密碼爲123qwe,-u和-p分別設置賬號名和密碼
# gpseginstall -f hostfile_exkeys -p 123qwe
驗證安裝
(1)以gpadmin用戶登錄master節點
(2)對greenplum_path.sh執行source命令
# source /usr/local/greenplum-db/greenplum_path.sh
(3)使用gpssh命令驗證是否可以免密登錄
$ gpssh -f hostfile_exkeys -e ls -l $GPHOME
如果不能免密登錄,使用下面命令進行免密配置
$ gpssh-exkeys -f hostfile_exkeys
6.創建數據存儲區域
在Master主機上創建數據存儲目錄
(1) 創建屬主和組都爲gpadmin的目錄,以root用戶運行下面命令
# mkdir -p /home/gpadmin/gpdata/gpmaster
(2) 改變創建目錄的屬主和組,例如:
# chown -R gpadmin:gpadmin /home/gpadmin/gpdata/gpmaster/
(3) 使用gpssh命令,在standby master上創建相同的目錄,例如:
$ source /usr/local/greenplum-db/greenplum_path.sh
$ gpssh -h smdw -e 'mkdir -p /home/gpadmin/gpdata/gpmaster'
在segment主機上創建數據存儲目錄
(1)以root用戶登錄master主機:
(2) 創建hostfile_gpssh_segonly文件,該文件僅僅包括所有segment的主機名
sdw1
sdw2
(3)使用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. 初始化數據庫
創建用於初始化的文件
(1) 以gpadmin用戶登錄
(2) 創建hostfile_gpinitsystem文件,該文件僅僅包括segment主機名
sdw1
sdw2
(3)保存文件
創建gpinitsystem_config的文件
(1) 以gpadmin用戶登錄
(2) 將gpinitsystem_config文件複製到/usr/local/greenplum-db/conf/目錄下
$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config \
/usr/local/greenplum-db/conf/gpinitsystem_config
(3) 編輯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
(4) 保存文件
運行初始化命令
(1) -s參數是指定standby master,本環境由於只有兩個segment節點,選擇group方式備份。
$ gpinitsystem -c gpinitsystem_config -s smdw
(2) 該命令會驗證安裝信息,如果所有的預檢查都成功,會提示需要確認配置,例如:
=> Continue with Greenplum creation? Yy/Nn
(3) 輸入確認啓動初始化.
(4) 初始化成功會提示如下內容:
=> Greenplum Database instance successfully created.
2設置環境變量
(1) 以 gpadmin用戶登錄:
(2) 編輯.bashrc文件:
$ vi ~/.bashrc
(3) 添加如下內容:
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY= /home/gpadmin/gpdata/gpmaster/gpseg-1
(4) (注意)如果是RHEL 7 or CentOS 7系統,需要在.bashrc文件的末尾添加如下內容:
export LD_PRELOAD=/lib64/libz.so.1 ps
(5) 使用文件生效:
$ source ~/.bashrc
(6) 如果有standy master,將環境變量文件複製到standy master主機上
$ cd ~
$ scp .bashrc standby_hostname:`pwd`
3.控制訪問權限
編輯 pg_hba.conf
(1)進入psql客戶端
testDB=# alter role gpadmin with password '123qwe';
(2) 編輯 $MASTER_DATA_DIRECTORY/pg_hba.conf,添加訪問數據庫的主機信息.
host testDB gpadmin 10.6.150.102/32 md5
(3) 使pg_hba.conf文件生效:
$ gpstop -u