1、規劃linux
一、服務器:
192.168.0.191 gpdb01 # master
192.168.0.192 gpdb02 # primary segment 、 mirror segment
192.168.0.193 gpdb03 # primary segment 、 mirror segment
192.168.0.194 gpdb04 # primary segment 、 mirror segment
192.168.0.195 gpdb05 # standysql
二、安裝基本服務數據庫
yum -y install vim edvim
2、配置bash
一、關閉防火牆服務器
sed -i '/SELINUX=enforcing/d' /etc/selinux/config
sed -i '/SELINUX=disabled/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/configssh
sed -e 's/SELINUX=enforcing/SELINUX=disabled/d' /etc/selinux/configide
systemctl stop firewalld
chkconfig firewalld offpost
二、配置/etc/hosts測試
192.168.0.191 gpdb01
192.168.0.192 gpdb02
192.168.0.193 gpdb03
192.168.0.194 gpdb04
192.168.0.195 gpdb05
三、建立用戶
groupadd gpadmin
useradd -g gpadmin gpadmin
echo "gpadmin" | passwd --stdin gpadmin
id gpadmin
3、以root用戶在master節點安裝greenplum
一、準備安裝文件
greenplum-db-4.3.5.1-build-1-RHEL5-x86_64.bin
二、建立安裝目錄
mkdir -p /opt/greenplum
chown -R gpadmin:gpadmin /opt/greenplum/
三、安裝greenplum
./greenplum-db-4.3.5.1-build-1-RHEL5-x86_64.bin
... ...
... ...
********************************************************************************
Do you accept the Pivotal Database license agreement? [yes|no]
********************************************************************************
yes
********************************************************************************
Provide the installation path for Greenplum Database or press ENTER to
accept the default installation path: /usr/local/greenplum-db-4.3.5.1
********************************************************************************
/opt/greenplum/greenplum-db-4.3.5.1
********************************************************************************
Install Greenplum Database into </opt/greenplum/greenplum-db-4.3.5.1>? [yes|no]
********************************************************************************
yes
********************************************************************************
/opt/greenplum/greenplum-db-4.3.5.1 does not exist.
Create /opt/greenplum/greenplum-db-4.3.5.1 ? [yes|no]
(Selecting no will exit the installer)
********************************************************************************
yes
Extracting product to /opt/greenplum/greenplum-db-4.3.5.1
********************************************************************************
Installation complete.
Greenplum Database is installed in /opt/greenplum/greenplum-db-4.3.5.1
Pivotal Greenplum documentation is available
for download at http://docs.gopivotal.com/gpdb
********************************************************************************
安裝目錄以下:
[root@gpdb01 greenplum]# pwd
/opt/greenplum
[root@gpdb01 greenplum]# ll
total 0
lrwxrwxrwx. 1 root root 22 Mar 2 05:34 greenplum-db -> ./greenplum-db-4.3.5.1
drwxr-xr-x. 11 root root 189 Mar 2 05:34 greenplum-db-4.3.5.1
[root@gpdb01 greenplum]# ll greenplum-db/
total 264
drwxr-xr-x. 3 gpadmin gpadmin 4096 May 15 2015 bin
drwxr-xr-x. 2 gpadmin gpadmin 64 May 15 2015 demo
drwxr-xr-x. 5 gpadmin gpadmin 52 May 15 2015 docs
drwxr-xr-x. 2 gpadmin gpadmin 44 May 15 2015 etc
drwxr-xr-x. 3 gpadmin gpadmin 20 May 15 2015 ext
-rw-r--r--. 1 gpadmin gpadmin 43025 May 15 2015 GPDB-LICENSE.txt
-rw-r--r--. 1 root root 680 Mar 2 05:34 greenplum_path.sh
drwxr-xr-x. 6 gpadmin gpadmin 4096 May 15 2015 include
drwxr-xr-x. 9 gpadmin gpadmin 8192 May 15 2015 lib
-rw-r--r--. 1 gpadmin gpadmin 193083 May 15 2015 LICENSE.thirdparty
drwxr-xr-x. 2 gpadmin gpadmin 4096 May 15 2015 sbin
drwxr-xr-x. 3 gpadmin gpadmin 24 May 15 2015 share
[root@gpdb01 greenplum]#
四、應用greenplum的環境變量
source /opt/greenplum/greenplum-db/greenplum_path.sh
五、配置hostlist和segmentlist
cd /opt/greenplum/greenplum-db
mkdir conf
cat conf/hostlist
gpdb01
gpdb02
gpdb03
gpdb04
gpdb05
cat conf/segmentlists
gpdb02
gpdb03
gpdb04
六、使用gpssh-exkeys打通全部服務器
gpssh-exkeys -f ./conf/hostlist
[STEP 1 of 5] create local ID and authorize on local host
[STEP 2 of 5] keyscan all hosts and update known_hosts file
[STEP 3 of 5] authorize current user on remote hosts
... send to gpdb02
***
*** Enter password for gpdb02:
... send to gpdb03
... send to gpdb04
... send to gpdb05
[STEP 4 of 5] determine common authentication file content
[STEP 5 of 5] copy authentication files to all remote hosts
... finished key exchange with gpdb02
... finished key exchange with gpdb03
... finished key exchange with gpdb04
... finished key exchange with gpdb05
[INFO] completed successfully
打通服務器後可使用gpssh進行批量操做了:
gpssh -f ./conf/hostlist
Note: command history unsupported on this machine ...
=> pwd
[gpdb05] /home/gpadmin
[gpdb04] /home/gpadmin
[gpdb01] /home/gpadmin
[gpdb03] /home/gpadmin
[gpdb02] /home/gpadmin
=>
七、將安裝後的軟件分發的每一臺服務器上並建立相應目錄:
tar -cf greenplum-db-4.3.5.1.tar ./greenplum-db-4.3.5.1
gpscp -f /opt/greenplum/greenplum-db/conf/hostlist ../greenplum-db-4.3.5.1.tar =:/opt/greenplum
gpssh -f /opt/greenplum/greenplum-db/conf/hostlist
Note: command history unsupported on this machine ...
=> cd /opt/greenplum
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=> tar -xf greenplum-db-4.3.5.1.tar
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=> ln -s /opt/greenplum/greenplum-db-4.3.5.1 /opt/greenplum/greenplum-db
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=> mkdir -p /home/gpadmin/gpdata/gpmaster
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=> mkdir -p /home/gpadmin/gpdata/gpdatap1
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=> mkdir -p /home/gpadmin/gpdata/gpdatam1
[gpdb05]
[gpdb04]
[gpdb01]
[gpdb03]
[gpdb02]
=>
八、配置環境變量:
vim ~/.bash_profile
source /opt/greenplum/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=chavin
九、初始化greenplum配置文件
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config ./conf/gpinitsystem_config
cat conf/gpinitsystem_config
ARRAY_NAME="Greenplum"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1)
MASTER_HOSTNAME=gpdb01
MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster
MASTER_PORT=2345
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1)
#DATABASE_NAME=name_of_database
MACHINE_LIST_FILE=/opt/greenplum/greenplum-db/conf/segmentlists
十、初始化數據庫
gpinitsystem -c ./conf/gpinitsystem_config -s gpdb05
gpstate -s
$ psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=# create database chavin;
CREATE DATABASE
-- 測試表
drop table if exists dept;
create table dept
(
deptno int primary key,
dname varchar(14),
loc varchar(13)
);
insert into dept(deptno,dname,loc) values(10,'ACCOUNTING','NEW YORK');
insert into dept(deptno,dname,loc) values(20,'RESEARCH','DALLAS');
insert into dept(deptno,dname,loc) values(30,'SALES','CHICAGO');
insert into dept(deptno,dname,loc) values(40,'OPERATIONS','BOSTON');
$ psql
psql (8.2.15)
Type "help" for help.
chavin=# create table dept
chavin-# (
chavin(# deptno int primary key,
chavin(# dname varchar(14),
chavin(# loc varchar(13)
chavin(# );
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "dept_pkey" for table "dept"
CREATE TABLE
chavin=# insert into dept(deptno,dname,loc) values(10,'ACCOUNTING','NEW YORK');
INSERT 0 1
chavin=# insert into dept(deptno,dname,loc) values(20,'RESEARCH','DALLAS');
INSERT 0 1
chavin=# insert into dept(deptno,dname,loc) values(30,'SALES','CHICAGO');
INSERT 0 1
chavin=# insert into dept(deptno,dname,loc) values(40,'OPERATIONS','BOSTON');
INSERT 0 1
chavin=#
啓動關閉數據庫:
gpstart -a
gpstop -a
出現的問題:
一、若是第一次初始化失敗,再次初始化報以下錯誤:
20180302:08:00:01:002185 gpinitsystem:gpdb01:gpadmin-[WARN]:-Have lock file /tmp/.s.PGSQL.2345.lock but no process running on port 2345
20180302:08:00:01:gpinitsystem:gpdb01:gpadmin-[FATAL]:-Found indication of postmaster process on port 2345 on Master host Script Exiting!
刪除/tmp目錄下的隱含文件/tmp/.s.PGSQL.2345.lock後,從新初始化便可。
二、從新初始化出現以下錯誤:
20180302:18:49:37:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
.....................................................................................
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Parallel process exit status
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Total processes marked as completed = 0
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Total processes marked as killed = 0
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[WARN]:-Total processes marked as failed = 6 <<<<<
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Commencing parallel build of mirror segment instances
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Spawning parallel processes batch [1], please wait...
......
20180302:18:51:03:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
........
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Parallel process exit status
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Total processes marked as completed = 0
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Total processes marked as killed = 0
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[WARN]:-Total processes marked as failed = 6 <<<<<
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:------------------------------------------------
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[FATAL]:-Errors generated from parallel processes
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Dumped contents of status file to the log file
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Building composite backout file
20180302:18:51:12:gpinitsystem:gpdb01:gpadmin-[FATAL]:-Failures detected, see log file /home/gpadmin/gpAdminLogs/gpinitsystem_20180302.log for more detail Script Exiting!
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[WARN]:-Script has left Greenplum Database in an incomplete state
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[WARN]:-Run command /bin/bash /home/gpadmin/gpAdminLogs/backout_gpinitsystem_gpadmin_20180302_184756 to remove these changes
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND
20180302:18:51:12:003425 gpinitsystem:gpdb01:gpadmin-[INFO]:-End Function BACKOUT_COMMAND
這是由於缺乏ed依賴包,經過yum -y install ed後重啓服務器,能夠解決。
三、gpstart啓動報錯以下:
20180302:20:33:28:003078 gpstart:gpdb01:gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the array.
這個時候須要檢查一下shared_buffers設置改小點,就好了