一、系統設置(所有主機)
1、操作系統環境
CentOS 7.5.1804,64位操作系統,沒有更新過
[root@localhost tools]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
2、關閉防火牆
#systemctl stop firewalld.service #停止firewall
3、關閉NetworkManager
#systemctl stop NetworkManager
4、關閉selinux
root@mdw gpAdminLogs]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
5、配置/etc/sysctl.conf
加入有關共享內存與網絡參數配置:
net.ipv4.ip_forward = 0 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.sem = 250 64000 100 512 kernel.shmmax = 500000000 kernel.shmmni = 4096 kernel.shmall = 4000000000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.core.netdev_max_backlog = 10000 vm.overcommit_memory = 2 net.ipv4.conf.all.arp_filter = 1
6、配置/etc/security/limits.conf
加入限制參數
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
7、手動執行命令讓參數生效,也可以重啟系統
#sysctl -p
8、修改/etc/hosts文件配置主機與ip地址的映射
192.168.2.9 mdw 192.168.2.10 sdw1 192.168.2.11 sdw2
9、修改主機名
[root@mdw1 ~]# vim /etc/sysconfig/network
# Created by anaconda
HOSTNAME=mdw(各主機依此修改)
10、創建gpadmin用戶
[root@mdw ~]# groupadd gpadmin [root@mdw ~]# useradd -g gpadmin gpadmin [root@mdw1~]# passwd gpadmin #####密碼臨時給一個:123456
二、安裝和分發
2.1 聯網安裝必要的包(所有機器)
[root@mdw~]# yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotate gcc-c++ python-py [root@mdw~]# yum -y install bzip2-devel libevent-devel apr-devel curl-devel ed python-paramiko python-devel [root@mdw~]# wget https://bootstrap.pypa.io/get-pip.py [root@mdw~]# python get-pip.py [root@mdw~]# pip install lockfile paramiko setuptools epydoc psutil [root@mdw~]# pip install --upgrade setuptools
2.2 master節點解壓代碼編譯安裝Greenplum
切換到gpadmin登錄,在https://github.com/greenplum-db/gpdb/archive/5.15.1.zip上下載源碼,並在對應的目錄下安裝。
一般來說安裝目錄安裝在應用目錄下,如果不慎安裝在根目錄下,做壓測的時候很容易把磁盤寫滿,給壓測造成麻煩。本文以/home/gpadmin為例
在下載源碼zip包解壓后會生成gpdb-5.15.1文件夾。可將其移動到/home/gpadmin目錄下。
創建程序安裝目錄gpdb,安裝目錄也放在home下,確認目錄所有者為gpadmin,如果是root用戶創建的,之后需要chown修改
gpadmin用戶執行配置 --prefix后是安裝目錄,可知道的參數如下,由於ORCA優化器初始化容易報錯,一般執行紅色那各參數即可:
#####編譯
[root@mdw1 gpdb-5.15.1]# ./configure --prefix=/home/gpsql --with-gssapi --with-pgport=5432 --with-libedit-preferred --with-perl --with-python --with-openssl --with-pam --with-krb5 --with-ldap --with-libxml --enable-cassert --enable-debug --enable-testutils --enable-debugbreak --enable-depend --disable-orca
常見的錯誤:
checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes ./configure: line 12043: #include: command not found checking how to run the C++ preprocessor... g++ -std=c++11 -E checking gpos/_api.h usability... no checking gpos/_api.h presence... no checking for gpos/_api.h... no configure: error: GPOS header files are required for Pivotal Query Optimizer (orca)
這個問題解決時在編譯命令上加上:–dsiable-orca
###make -j8
[root@mdw1 gpdb-5.15.1]# make -j8 make[2]:Leaving directory `/home/tools/gpdb-5.15.1/gpAux/extensions/gpcloud/bin/gpcheckcloud' make[1]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/extensions' make -C gpAux/gpperfmon all make[1]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/gpperfmon' Configuration not enabled for gpperfmon. make[1]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/gpperfmon' make -C gpAux/platform all make[1]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/platform' make -C gpnetbench all make[2]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' gcc -Werror -Wall -g -O2 -o gpnetbenchServer.o -c gpnetbenchServer.c gcc -Werror -Wall -g -O2 -o gpnetbenchClient.o -c gpnetbenchClient.c gcc -o gpnetbenchServer gpnetbenchServer.o gcc -o gpnetbenchClient gpnetbenchClient.o make[2]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' make[1]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/platform' All of Greenplum Database successfully made. Ready to install.
#####make install
[root@mdw1 gpdb-5.15.1]# make install make -C gpAux/gpperfmon install make[1]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/gpperfmon' make[1]: Nothing to be done for `install'. make[1]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/gpperfmon' make -C gpAux/platform install make[1]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/platform' make -C gpnetbench all make[2]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' make -C gpnetbench install make[2]: Entering directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' mkdir -p /home/gpsql/bin/lib cp -p gpnetbenchServer /home/gpsql/bin/lib cp -p gpnetbenchClient /home/gpsql/bin/lib make[2]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/platform/gpnetbench' make[1]: Leaving directory `/home/tools/gpdb-5.15.1/gpAux/platform' Greenplum Database installation complete.
若出現:
則說明安裝成功。
2.3 分發
因為只在master上安裝了Greenplum,所以下面要將安裝包批量發送到每個slave機器上,才能算是整個Greenplum集群安裝了Greenplum。
先在master主節點上創建GP的tar文件,其中gpsqlpwd是安裝路徑。
[root@mdw1 gpsql]# chown -R gpadmin:gpadmin /home/gpsql/ [root@mdw1 gpadmin]# gtar -cvf /home/gpadmin/gp.tar /home/gpsql
下面的操作都是為了連接所有節點,並將安裝包發送到每個節點
在master主機,以gpadmin用戶身份創建以下文本,可在gpadmin目錄下創建conf文件夾,用來放這些啟動互信信息
[root@mdw1 conf]# vim /home/gpadmin/conf/all_hosts mdw sdw1 sdw2 保存並退出 [root@mdw1 conf]# vim /home/gpadmin/conf/seg_hosts sdw1 sdw2 保存並退出
安裝目錄下的 greenplum_path.sh中保存了運行Greenplum的一些環境變量設置,包括GPHOME、PYTHONHOME等設置。
以gpadmin身份執行source命令生效,之后gpssh-exkeys交換密鑰
gpadmin@mdw gpsql]$ gpssh-exkeys -f /home/gpadmin/conf/all_hosts [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 sdw1 *** *** Enter password for sdw1: ... send to sdw2 [STEP 4 of 5] determine common authentication file content [STEP 5 of 5] copy authentication files to all remote hosts ... finished key exchange with sdw1 ... finished key exchange with sdw2 [INFO] completed successfully
通過gpscp命令將之前的壓縮包分發到/conf/seg_hosts文件配置的segment節點
[gpadmin@mdw ~]$ gpscp -f /home/gpadmin/conf/seg_hosts /home/gpadmin/gp.tar =:/home/gpadmin/
查看是否將壓縮包分發成功
[gpadmin@sdw1 ~]$ ll total 96780 -rw-r--r--. 1 gpadmin gpadmin 99102720 Apr 26 15:18 gp.tar
[gpadmin@swd2 ~]$ ll total 96780 -rw-r--r--. 1 gpadmin gpadmin 99102720 Apr 26 15:18 gp.tar
通過gpssh協議連接到segment節點時,all_hosts里有多少機器應該有多少輸出
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/all_hosts => pwd [ mdw] /home/gpadmin [sdw2] /home/gpadmin [sdw1] /home/gpadmin
=>
解壓之間的安裝包
=> gtar -xvf gp.tar
最后創建數據庫工作目錄
=> pwd [ mdw] /home/gpadmin [sdw2] /home/gpadmin [sdw1] /home/gpadmin => mkdir gpdata [ mdw] [sdw2] [sdw1] => cd gpdata [ mdw] [sdw2] [sdw1] => mkdir gpdatap1 gpdatap2 gpdatam1 gpdatam2 gpmaster [ mdw] [sdw2] [sdw1] => ll [ mdw] total 20 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam1 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam2 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap1 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap2 [ mdw] drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 26 15:30 gpmaster [sdw2] total 20 [sdw2] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam1 [sdw2] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam2 [sdw2] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap1 [sdw2] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap2 [sdw2] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpmaster [sdw1] total 20 [sdw1] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam1 [sdw1] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatam2 [sdw1] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap1 [sdw1] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpdatap2 [sdw1] drwxrwxr-x. 2 gpadmin gpadmin 4096 Apr 26 15:30 gpmaster =>exit
3、初始化和創建數據庫
3.1 配置.bash_profile 環境變量(每台機器都要配置)
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
source /home/gpsql/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpadata/gpmaster/gpseg-1
export PGPORT=2346
讓環境變量生效
[gpadmin@mdw ~]$ . ~/.bash_profile
3.2 同步時鍾
在gpadmin下:
檢查時鍾:
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/all_hosts -v date [WARN] Reference default values as $MASTER_DATA_DIRECTORY/gpssh.conf could not be found Using delaybeforesend 0.05 and prompt_validation_timeout 1.0 [Reset ...] [INFO] login mdw [INFO] login sdw2 [INFO] login sdw1 [ mdw] Fri Apr 26 15:51:13 CST 2019 [sdw2] Fri Apr 26 15:51:13 CST 2019 [sdw1] Fri Apr 26 15:51:16 CST 2019 [INFO] completed successfully [Cleanup...]
同步:
[gpadmin@mdw ~]$ gpssh -f /home/gpadmin/conf/all_hosts -v ntpd [WARN] Reference default values as $MASTER_DATA_DIRECTORY/gpssh.conf could not be found Using delaybeforesend 0.05 and prompt_validation_timeout 1.0 [Reset ...] [INFO] login mdw [INFO] login sdw1 [INFO] login sdw2 [ mdw] must be run as root, not uid 1001 [sdw1] must be run as root, not uid 1001 [sdw2] must be run as root, not uid 1001 [INFO] completed successfully
3.3 編寫數據庫啟動參數文件
將安裝目錄下的/home/gpsql/docs/cli_help/gpconfigs/gpinitsystem_config文件copy到/home/gpadmin/conf目錄下,然后編輯,保留如下參數即可,
#vi /home/gpadmin/conf/gpinitsystem_config
文件中添加如下參數: ARRAY_NAME="Greenplum Data Platform" SEG_PREFIX=gpseg PORT_BASE=42000 declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2) MASTER_HOSTNAME=mdw MASTER_DIRECTORY=/home/gpadmin/gpdata/gpmaster MASTER_PORT=2346 TRUSTED_SHELL=/usr/bin/ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE
####可選參數,針對mirror的參數 MIRROR_PORT_BASE=53000 REPLICATION_PORT_BASE=43000 MIRROR_REPLICATION_PORT_BASE=54000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2) MACHINE_LIST_FILE=/home/gpadmin/conf/seg_hosts
3.4初始化
[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -a 20190429:15:23:32:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, please wait... /bin/mv: try to overwrite ?.home/gpadmin/conf/gpinitsystem_config?. overriding mode 0644 (rw-r--r--)? 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Reading Greenplum configuration file /home/gpadmin/conf/gpinitsystem_config 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Locale has not been set in /home/gpadmin/conf/gpinitsystem_config, will set to default value 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Locale set to en_US.utf8 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, Completed 20190429:15:23:33:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, please wait... ... 20190429:15:23:34:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Configuring build for standard array 20190429:15:23:34:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, Completed 20190429:15:23:34:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Building primary segment instance array, please wait... ...... 20190429:15:23:39:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Building group mirror array type , please wait... ...... 20190429:15:23:43:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Checking Master host 20190429:15:23:43:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Checking new segment hosts, please wait... ............ 20190429:15:24:02:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Checking new segment hosts, Completed 20190429:15:24:02:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Building the Master instance database, please wait... 20190429:15:24:18:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Starting the Master in admin mode 20190429:15:24:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing parallel build of primary segment instances 20190429:15:24:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Spawning parallel processes batch [1], please wait... ...... 20190429:15:24:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait... ......................................................... 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Parallel process exit status 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as completed = 6 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as killed = 0 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as failed = 0 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:27:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing parallel build of mirror segment instances 20190429:15:25:28:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Spawning parallel processes batch [1], please wait... ...... 20190429:15:25:28:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait... .......................... 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Parallel process exit status 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as completed = 6 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as killed = 0 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Total processes marked as failed = 0 20190429:15:25:54:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------ 20190429:15:25:55:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Deleting distributed backout files 20190429:15:25:55:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Removing back out file 20190429:15:25:55:096604 gpinitsystem:mdw:gpadmin-[INFO]:-No errors generated from parallel processes 20190429:15:25:55:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Restarting the Greenplum instance in production mode 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -a -l /home/gpadmin/gpAdminLogs -i -m -d /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment... 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master... 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.0.0 build dev' 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-There are 0 connections to the database 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='immediate' 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Master host=mdw 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=immediate 20190429:15:25:55:106448 gpstop:mdw:gpadmin-[INFO]:-Master segment instance directory=/home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:25:56:106448 gpstop:mdw:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process 20190429:15:25:56:106448 gpstop:mdw:gpadmin-[INFO]:-Terminating processes for segment /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:25:57:106476 gpstart:mdw:gpadmin-[INFO]:-Starting gpstart with args: -a -l /home/gpadmin/gpAdminLogs -d /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:25:57:106476 gpstart:mdw:gpadmin-[INFO]:-Gathering information and validating the environment... 20190429:15:25:57:106476 gpstart:mdw:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 5.0.0 build dev' 20190429:15:25:57:106476 gpstart:mdw:gpadmin-[INFO]:-Greenplum Catalog Version: '301705051' 20190429:15:25:57:106476 gpstart:mdw:gpadmin-[INFO]:-Starting Master instance in admin mode 20190429:15:25:58:106476 gpstart:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information 20190429:15:25:58:106476 gpstart:mdw:gpadmin-[INFO]:-Obtaining Segment details from master... 20190429:15:25:58:106476 gpstart:mdw:gpadmin-[INFO]:-Setting new master era 20190429:15:25:58:106476 gpstart:mdw:gpadmin-[INFO]:-Master Started... 20190429:15:25:58:106476 gpstart:mdw:gpadmin-[INFO]:-Shutting down master 20190429:15:26:00:106476 gpstart:mdw:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait... ...... 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:-Process results... 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:----------------------------------------------------- 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:- Successful segment starts = 12 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:- Failed segment starts = 0 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:- Skipped segment starts (segments are marked down in configuration) = 0 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:----------------------------------------------------- 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:-Successfully started 12 of 12 segment instances 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:----------------------------------------------------- 20190429:15:26:06:106476 gpstart:mdw:gpadmin-[INFO]:-Starting Master instance mdw directory /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:26:07:106476 gpstart:mdw:gpadmin-[INFO]:-Command pg_ctl reports Master mdw instance active 20190429:15:26:07:106476 gpstart:mdw:gpadmin-[INFO]:-No standby master configured. skipping... 20190429:15:26:07:106476 gpstart:mdw:gpadmin-[INFO]:-Database successfully started 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Completed restart of Greenplum instance in production mode 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Scanning utility log file for any warning messages 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Log file scan check passed 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Greenplum Database instance successfully created 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------------- 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-To complete the environment configuration, please 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-update gpadmin .bashrc file with the following 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-1. Ensure that the greenplum_path.sh file is sourced 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-2. Add "export MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1" 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:- to access the Greenplum scripts for this instance: 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:- or, use -d /home/gpadmin/gpdata/gpmaster/gpseg-1 option for the Greenplum scripts 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:- Example gpstate -d /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Script log file = /home/gpadmin/gpAdminLogs/gpinitsystem_20190429.log 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-To remove instance, run gpdeletesystem utility 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-To initialize a Standby Master Segment for this Greenplum instance 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Review options for gpinitstandby 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:------------------------------------------------------- 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-The Master /home/gpadmin/gpdata/gpmaster/gpseg-1/pg_hba.conf post gpinitsystem 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-has been configured to allow all hosts within this new 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-new array must be explicitly added to this file 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-located in the /home/gpsql/docs directory 20190429:15:26:07:096604 gpinitsystem:mdw:gpadmin-[INFO]:-----------------
正常得話,會出現
psql (8.3.23)
Type "help" for help.
dbid | content | role | preferred_role | mode | status | port | hostname | address | replication_port
------+---------+------+----------------+------+--------+-------+----------+---------+------------------
1 | -1 | p | p | s | u | 2346 | mdw | mdw |
2 | 0 | p | p | s | u | 42000 | mdw | mdw | 43000
4 | 2 | p | p | s | u | 42000 | sdw1 | sdw1 | 43000
6 | 4 | p | p | s | u | 42000 | sdw2 | sdw2 | 43000
3 | 1 | p | p | s | u | 42001 | mdw | mdw | 43001
5 | 3 | p | p | s | u | 42001 | sdw1 | sdw1 | 43001
7 | 5 | p | p | s | u | 42001 | sdw2 | sdw2 | 43001
8 | 0 | m | m | s | u | 53000 | sdw1 | sdw1 | 54000
9 | 1 | m | m | s | u | 53001 | sdw1 | sdw1 | 54001
10 | 2 | m | m | s | u | 53000 | sdw2 | sdw2 | 54000
11 | 3 | m | m | s | u | 53001 | sdw2 | sdw2 | 54001
12 | 4 | m | m | s | u | 53000 | mdw | mdw | 54000
13 | 5 | m | m | s | u | 53001 | mdw | mdw | 54001
(13 rows)
搭建過程中得遇到得問題,記錄如下:
錯誤1:
[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -a 20190426:16:24:59:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, please wait... /bin/mv: try to overwrite ?.home/gpadmin/conf/gpinitsystem_config?. overriding mode 0644 (rw-r--r--)? 20190426:16:25:05:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Reading Greenplum configuration file /home/gpadmin/conf/gpinitsystem_config 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Locale has not been set in /home/gpadmin/conf/gpinitsystem_config, will set to default value 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Locale set to en_US.utf8 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, Completed 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, please wait... .. 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Configuring build for standard array 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, Completed 20190426:16:25:06:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Building primary segment instance array, please wait... .... 20190426:16:25:10:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Building group mirror array type , please wait... .... 20190426:16:25:14:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Checking Master host 20190426:16:25:14:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Checking new segment hosts, please wait... ........ 20190426:16:25:31:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Checking new segment hosts, Completed 20190426:16:25:31:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Building the Master instance database, please wait... 20190426:16:25:46:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Starting the Master in admin mode 20190426:16:25:54:gpinitsystem:mdw:gpadmin-[FATAL]:-Unknown host swd2 Script Exiting! 20190426:16:25:54:049694 gpinitsystem:mdw:gpadmin-[WARN]:-Script has left Greenplum Database in an incomplete state 20190426:16:25:54:049694 gpinitsystem:mdw:gpadmin-[WARN]:-Run command /bin/bash /home/gpadmin/gpAdminLogs/backout_gpinitsystem_gpadmin_20190426_162459 to remove these changes 20190426:16:25:54:049694 gpinitsystem:mdw:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND 20190426:16:25:54:049694 gpinitsystem:mdw:gpadmin-[INFO]:-End Function BACKOUT_COMMAND
解決方式:
查看各節點的主機名是否正確,發現sdw2的主機名寫成了swd2,將其修改后,再次初始化
錯誤2:
[gpadmin@mdw gpmaster]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -a 20190426:16:35:24:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, please wait... /bin/mv: try to overwrite ?.home/gpadmin/conf/gpinitsystem_config?. overriding mode 0644 (rw-r--r--)? y /bin/mv: cannot move ?.tmp/cluster_tmp_file.51899?.to ?.home/gpadmin/conf/gpinitsystem_config?. Permission denied 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Reading Greenplum configuration file /home/gpadmin/conf/gpinitsystem_config 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Locale has not been set in /home/gpadmin/conf/gpinitsystem_config, will set to default value 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Locale set to en_US.utf8 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, Completed 20190426:16:35:26:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, please wait... .. 20190426:16:35:27:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Configuring build for standard array 20190426:16:35:27:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, Completed 20190426:16:35:27:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Building primary segment instance array, please wait... .... 20190426:16:35:30:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Building group mirror array type , please wait... .... 20190426:16:35:34:051899 gpinitsystem:mdw:gpadmin-[INFO]:-Checking Master host 20190426:16:35:34:gpinitsystem:mdw:gpadmin-[FATAL]:-Found indication of postmaster process on port 2346 on Master host Script Exiting!
解決方式:關閉殺死占用端口2346的進程
先查詢進程
[gpadmin@mdw ~]$ lsof -i:2346 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 51235 gpadmin 3u IPv4 111661 0t0 TCP *:redstorm_join (LISTEN) postgres 51235 gpadmin 4u IPv6 111662 0t0 TCP *:redstorm_join (LISTEN)
然后殺死進程
gpadmin@mdw ~]$ kill -9 51235
錯誤三:
[gpadmin@mdw ~]$ gpinitsystem -c /home/gpadmin/conf/gpinitsystem_config -a 20190426:16:41:38:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, please wait... /bin/mv: try to overwrite ?.home/gpadmin/conf/gpinitsystem_config?. overriding mode 0644 (rw-r--r--)? y /bin/mv: cannot move ?.tmp/cluster_tmp_file.52895?.to ?.home/gpadmin/conf/gpinitsystem_config?. Permission denied 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Reading Greenplum configuration file /home/gpadmin/conf/gpinitsystem_config 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Locale has not been set in /home/gpadmin/conf/gpinitsystem_config, will set to default value 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Locale set to en_US.utf8 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Checking configuration parameters, Completed 20190426:16:41:40:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, please wait... .. 20190426:16:41:41:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Configuring build for standard array 20190426:16:41:41:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Commencing multi-home checks, Completed 20190426:16:41:41:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Building primary segment instance array, please wait... .... 20190426:16:41:44:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Building group mirror array type , please wait... .... 20190426:16:41:48:052895 gpinitsystem:mdw:gpadmin-[INFO]:-Checking Master host 20190426:16:41:48:052895 gpinitsystem:mdw:gpadmin-[WARN]:-Have lock file /tmp/.s.PGSQL.2346.lock but no process running on port 2346 20190426:16:41:48:gpinitsystem:mdw:gpadmin-[FATAL]:-Found indication of postmaster process on port 2346 on Master host Script Exiting!
解決:刪除文件:/tmp/.s.PGSQL.2346.lock
錯誤四:
20190429:14:58:52:095181 gpstart:mdw:gpadmin-[WARNING]:-Segment instance startup failures reported 20190429:14:58:52:095181 gpstart:mdw:gpadmin-[WARNING]:-Failed start 9 of 12 segment instances <<<<<<<< 20190429:14:58:52:095181 gpstart:mdw:gpadmin-[WARNING]:-Review /home/gpadmin/gpAdminLogs/gpstart_20190429.log 20190429:14:58:52:095181 gpstart:mdw:gpadmin-[INFO]:----------------------------------------------------- 20190429:14:58:52:095181 gpstart:mdw:gpadmin-[INFO]:-Commencing parallel segment instance shutdown, please wait... ... 20190429:14:58:57:095181 gpstart:mdw:gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the array. 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]: 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]:-Failed to start Greenplum instance; review gpstart output to 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]:- determine why gpstart failed and reinitialize cluster after resolving 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]:- issues. Not all initialization tasks have completed so the cluster 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]:- should not be used. 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]:-gpinitsystem will now try to stop the cluster 20190429:14:58:57:085332 gpinitsystem:mdw:gpadmin-[WARN]: 20190429:14:58:58:095823 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -a -l /home/gpadmin/gpAdminLogs -i -d /home/gpadmin/gpdata/gpmaster/gpseg-1 20190429:14:58:58:095823 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment... 20190429:14:58:58:095823 gpstop:mdw:gpadmin-[ERROR]:-gpstop error: postmaster.pid file does not exist. is Greenplum instance already stopped?
錯誤5:
[gpadmin@gpmdw ~]$ gpstart 20130815:22:28:28:003675 gpstart:gpmaster:gpadmin-[INFO]:-Starting gpstart with args: 20130815:22:28:28:003675 gpstart:gpmaster:gpadmin-[INFO]:-Gathering information and validating the environment... 20130815:22:28:28:003675
gpstart failed. (Reason='[Errno 2] No such file or directory: '/home/gpadmin/gpadata/gpmaster/gpseg-1/postgresql.conf'') exiting...
解決方法:
.bash_profile文件中添加
export PATH source /home/gpsql/greenplum_path.sh export MASTER_DATA_DIRECTORY=/home/gpadmin/gpadata/gpmaster/gpseg-1 export PGPORT=2346 export PGDATABASE=testDB
並讓其生效:. ~/.bash_profile
注: 一個常見的錯誤是有部分節點死活 start 不起來,log 中顯示 gpdata 下某某文件夾不存在,事實上是該文件夾下初始化了錯誤的文件。嘗試 vi /home/gpadmin/.gphostcache
看看緩存的 host 對不對,不對的話修改過來。因為如果在修改 network 文件之前執行過 gpssh-exkeys ,可能會在 gphostcache 文件中生成主機名和 hostlist 配置中的名字形成對應關系,而 greenplum 之后不會再修改這個文件,這樣的話 gpdata 下就會初始化錯誤的節點數據,所以這里是個大坑。
參考鏈接:
https://www.linuxidc.com/Linux/2018-02/150872.htm
https://www.cnblogs.com/chou1214/p/9846952.html
https://www.linuxidc.com/Linux/2018-02/150872.htm
https://blog.csdn.net/seeyouc/article/details/53102274
https://blog.csdn.net/weixin_34209851/article/details/85973637
https://blog.csdn.net/q936889811/article/details/85612046