Appearance
greenplum安装部署 - CentOS 7.9
一、安装说明
1.1 环境说明
1、首先确定部署的环境,确定下服务器的端口,一般默认是22的端口
2、操作系统Centos7.9
3、 数据库greenplum-db-6.13.0
1.2 集群介绍
1、本次采用的是3台机器组成的集群:1台机器是master节点,2台机器是segment节点。
2、集群的ip和hostname如下(都是虚拟机环境):
| IP | 主机名 | 说明 |
|---|---|---|
| 192.168.5.12 | gp-master | master节点 |
| 192.168.5.13 | gp-sdw1 | segment节点 |
| 192.168.5.14 | gp-sdw2 | segment节点 |
二、安装环境准备
2.1关闭防火墙(所有节点)
1、配置的时候,要保证所有的机器的网络都是通的,并且每台机器的防火墙都是关闭的,避免存在网络不通的情况。
具体操作:
bash
# 停止防火墙
$ systemctl stop firewalld
# 关闭防火墙
$ systemctl disable firewalld
# 查看防火墙状态
$ systemctl status firewalldbash
$ systemctl stop firewalld
$ systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
5月 28 17:12:25 gp1 systemd[1]: Starting firewalld - dynamic firewall daemon...
5月 28 17:12:26 gp1 systemd[1]: Started firewalld - dynamic firewall daemon.
5月 28 17:12:26 gp1 firewalld[689]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
5月 28 22:42:14 gp1 systemd[1]: Stopping firewalld - dynamic firewall daemon...
5月 28 22:42:15 gp1 systemd[1]: Stopped firewalld - dynamic firewall daemon.2.2关闭SELINUX(所有节点)
1、修改/etc/selinux/config文件(在某些系统中,可能是/etc/sysconfig/selinux文件),将SELINUX=enforcing修改为SELINUX=disabled。更新配置之后要重启服务器生效或者执行:setenforce 0,使其立即生效。
2、具体操作:(每个节点直接执行如下命令)
bash
$ sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/configbash
$ sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
$ 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 values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted注:执行完也可以直接进入
/etc/selinux/config的文件查看是否修改完全
2.3修改内核配置参数 (所有节点)
1、修改/etc/sysctl.conf文件,其中的配置文件是官方配置的。
具体操作:
shell
$ vi /etc/sysctl.conf
# 计算:echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))
# kernel.shmmax=echo $(expr $(getconf _PHYS_PAGES) / 2)
# kernel.shmmax = kernel.shmall * PAGE_SIZE
kernel.shmmax = 15000000000
kernel.shmmni = 4096
# kernel.shmall=echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGESIZE))
# kernel.shmall = _PHYS_PAGES / 2
# 计算:echo $(expr $(getconf _PHYS_PAGES) / 2)
kernel.shmall = 8000000000
kernel.sem = 500 1024000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
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 = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
vm.swappiness = 10
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 3
vm.dirty_ratio=102、执行完上述操作后,执行sysctl -p 使配置生效。
bash
$ sysctl -p2.4配置/etc/hosts (所有节点)
1、主要是为之后 Greenplum 能够在各个节点之间相互通信做准备。
bash
$ vi /etc/hosts
192.168.5.12 gp-master
192.168.5.13 gp-sdw1
192.168.5.14 gp-sdw22.5配置资源限制参数etc/security/limits.conf(所有节点)
bash
$ vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 1310722.6将所有服务器重启(所有节点)
bash
$ reboot三、GreenPlum的数据库安装
3.1添加组和用户(所有节点机器 root 用户操作)
1、创建 gpadmin 用户及用户组,将其作为安装 greenplum 的操作系统用户。
2、如果已经存在,先删除,
bash
$ groupdel gpadmin
$ userdel gpadmin3、创建新的用户和用户组
bash
$ groupadd gpadmin
$ useradd -r -m -g gpadmin gpadmin
$ passwd gpadmin (设置密码) # echo "gpadmin:gpadmin" | chpasswd3.2集群相互之间ssh免密(所有节点机器 gpadmin 用户操作)
1、具体操作:(操作为master节点)
bash
$ su gpadmin
$ mkdir -p /home/gpadmin/conf
$ cd /home/gpadmin/
$ ssh-keygen -t rsa (生成密钥对)
$ ssh-copy-id gp-master
$ ssh-copy-id gp-sdw1
$ ssh-copy-id gp-sdw2注:每个节点都需要这样操作。
验证如下:在gpadmin用户下,ssh smdw 输入后,无需密码直接登录到了smdw服务器。
bash
$ su gpadmin
$ ssh gp-master问题注意点:(如果是10002端口/其他端口 这个地方一定需要改)
解决办法:
修改
/etc/services文件,将ssh 对应的端口改为10022/对应端口 即可
3.3 ssh权限互通设置(Master节点)
1、在/home/gpadmin/conf的路径下生成 hostlist,seg_hosts文件:
bash
$ cd /home/gpadmin/confbash
$ vi hostlist
gp-master
gp-sdw1
gp-sdw2bash
$ vi seg_hosts
gp-sdw1
gp-sdw23.4 Greenplum集群安装(所有节点)
1、首先是将greenplum的安装包导入到服务器上(可以新建一个文件夹);、
2、具体操作:
bash
# root用户
su root
# 这个安装包的所在位置
cd /root/gpadmin
# 查看安装包,确认位置
ls
# 这个是官方的安装步骤,是不需要再去下载依赖的
yum install -y ./greenplum-db-6.13.0-rhel7-x86_64.rpm
# 安装完之后,这个地方是将这个文件在gpadmin用户赋予权限
chown -R gpadmin:gpadmin /usr/local/greenplum*注:所有节点都需要安装
3.5使用 gpssh-exkeys 打通所有服务器 (Master节点)
1、使用 gpssh-exkeys 将所有机器的通道打开,这样在每台机器之间跳转,就不需要输入密码。
具体操作:
bash
$ su gpadmin
$ cd /usr/local/greenplum-db-6.13.0/
$ source /usr/local/greenplum-db-6.13.0/greenplum_path.sh
$ gpssh-exkeys -f /home/gpadmin/conf/hostlist执行样例
bash
[root@gp-master gpadmin]# chown -R gpadmin:gpadmin /usr/local/greenplum*
[root@gp-master gpadmin]# su gpadmin
[gpadmin@gp-master ~]$ cd /usr/local/greenplum-db-6.13.0/
[gpadmin@gp-master greenplum-db-6.13.0]$ source /usr/local/greenplum-db-6.13.0/greenplum_path.sh
[gpadmin@gp-master greenplum-db-6.13.0]$ gpssh-exkeys -f /home/gpadmin/conf/hostlist
[STEP 1 of 5] create local ID and authorize on local host
... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped
[STEP 2 of 5] keyscan all hosts and update known_hosts file
[STEP 3 of 5] retrieving credentials from remote hosts
... send to gp-sdw1
... send to gp-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 gp-sdw1
... finished key exchange with gp-sdw2
[INFO] completed successfully3.6环境变量配置.bashrc和GPHOME(所有节点机器 gpadmin 用户操作)
1、配置环境变量.bashrc
bash
$ su gpadmin
$ mkdir -p /data/gpdata/master
$ vi /home/gpadmin/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/gpdata/master/gpseg-1
export GPPORT=5432
export PGDATABASE=gpadmin
$ source /home/gpadmin/.bashrc2、配置环境变量GPHOME,首先进到文件中直接修改
bash
$ vi /usr/local/greenplum-db/greenplum_path.sh
添加的路径:GPHOME=/usr/local/greenplum-db
# 修改export GPHOME即可
export GPHOME=/usr/local/greenplum-db3.7创建数据文件夹(Master节点)
1、创建各个节点的数据文件夹,该步骤之后 hostlist 文件包含机器下都会创建 data目录,data目录下都会创建master、primary、mirror文件夹。
具体操作:
bash
$ gpssh -f /home/gpadmin/conf/hostlist
mkdir /data/gpdata
cd /data/gpdata
mkdir master
mkdir primary
mkdir mirror
exit执行样例
bash
$ [gpadmin@gp-master ~]$ gpssh -f /home/gpadmin/conf/hostlist
=> mkdir /data/gpdata
[gp-master] mkdir: 无法创建目录"/data/gpdata": 文件已存在
[ gp-sdw1] mkdir: 无法创建目录"/data/gpdata": 文件已存在
[ gp-sdw2] mkdir: 无法创建目录"/data/gpdata": 文件已存在
=> cd /data/gpdata
[gp-master]
[ gp-sdw1]
[ gp-sdw2]
=> mkdir master
[gp-master] mkdir: 无法创建目录"master": 文件已存在
[ gp-sdw1] mkdir: 无法创建目录"master": 文件已存在
[ gp-sdw2] mkdir: 无法创建目录"master": 文件已存在
=> mkdir primary
[gp-master]
[ gp-sdw1]
[ gp-sdw2]
=> mkdir mirror
[gp-master]
[ gp-sdw1]
[ gp-sdw2]
=> exit如果前面创建了目录的话,这里可能会报错提示
File exists,忽略即可
3.8连通性检查(主节点 gpadmin 用户操作 )
1、检查各个节点的连通性 具体操作:
bash
$ gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp执行样例
bash
[gpadmin@gp-master ~]$ gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp
/usr/local/greenplum-db-6.13.0/bin/gpcheckperf -f /home/gpadmin/conf/hostlist -r N -d /tmp
-------------------
-- NETPERF TEST
-------------------
NOTICE: -t is deprecated, and has no effect
NOTICE: -f is deprecated, and has no effect
NOTICE: -t is deprecated, and has no effect
NOTICE: -f is deprecated, and has no effect
NOTICE: -t is deprecated, and has no effect
NOTICE: -f is deprecated, and has no effect
NOTICE: -t is deprecated, and has no effect
NOTICE: -f is deprecated, and has no effect
====================
== RESULT 2024-05-29T23:19:32.187935
====================
Netperf bisection bandwidth test
gp-master -> gp-sdw1 = 235.930000
gp-sdw2 -> gp-master = 155.240000
gp-sdw1 -> gp-master = 162.890000
gp-master -> gp-sdw2 = 233.600000
Summary:
sum = 787.66 MB/sec
min = 155.24 MB/sec
max = 235.93 MB/sec
avg = 196.91 MB/sec
median = 233.60 MB/sec
[Warning] connection between gp-sdw2 and gp-master is no good
[Warning] connection between gp-sdw1 and gp-master is no good3.9初始化配置文件编辑修改(主节点 gpadmin 用户操作 )
1、这里修改初始化文件,首先拷贝一个文件gpinitsystem_config,在修改。
具体操作:
bash
$ mkdir /home/gpadmin/gpconfigs
$ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config (这个部分是一个命令,比较长)
vi /home/gpadmin/gpinitsystem_config
# 这里先搜索再修改:
# ------------------------以下为配置内容------------------------
# 该项配置设置主节点数据存储位置,括号里边有几个,代表每台主机创建几个postgresql数据库实例,即segment的实例数,示例是2个。
declare -a DATA_DIRECTORY=(/data/gpdata/primary0 /data/gpdata/primary1)
# 该项配置设置主节点机器名字
MASTER_HOSTNAME=gp-master
# 该项配置设置主节点数据存储位置
MASTER_DIRECTORY=/data/gpdata/master
# 该项配置设置是备节点数据存储位置,规则同DATA_DIRECTORY,括号里边数量和DATA_DIRECTORY保持一致。
# greenplum数据分主节点和备节点,主节点挂掉时候备节点数据会启用。
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/data/primary /home/gpadmin/data/primary)
# 该项配置设置默认数据库名字,和环境变量数据库名字保持一致,不然会失败。
DATABASE_NAME=gp_sydb2、在/home/gpadmin/gpconfigs新增一个配置文件hostfile_gpinitsystem
bash
$ cd /home/gpadmin/gpconfigs
$ vi hostfile_gpinitsystem
gp-sdw1
gp-sdw23.10初始化数据库(主节点 gpadmin 用户操作 )
bash
# 注意在gpadmin根目录执行
$ gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem
# 备用:gpinitsystem -c /home/gpadmin/gpconfigs/gpinitsystem_config -h /home/gpadmin/gpconfigs/hostfile_gpinitsystem执行样例
bash
[gpadmin@gp-master ~]$ gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checking configuration parameters, please wait...
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Reading Greenplum configuration file gpconfigs/gpinitsystem_config
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Locale has not been set in gpconfigs/gpinitsystem_config, will set to default value
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Locale set to en_US.utf8
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checking configuration parameters, Completed
20240529:23:31:46:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Commencing multi-home checks, please wait...
..
20240529:23:31:47:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Configuring build for standard array
20240529:23:31:47:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Commencing multi-home checks, Completed
20240529:23:31:47:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Building primary segment instance array, please wait...
....
20240529:23:31:50:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checking Master host
20240529:23:31:50:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checking new segment hosts, please wait...
....
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checking new segment hosts, Completed
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Greenplum Database Creation Parameters
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:---------------------------------------
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master Configuration
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:---------------------------------------
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master instance name = Greenplum Data Platform
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master hostname = gp-master
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master port = 5432
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master instance dir = /data/gpdata/master/gpseg-1
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master LOCALE = en_US.utf8
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Greenplum segment prefix = gpseg
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master Database = gpadmin
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master connections = 250
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master buffers = 128000kB
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Segment connections = 750
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Segment buffers = 128000kB
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Checkpoint segments = 8
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Encoding = UNICODE
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Postgres param file = Off
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Initdb to be used = /usr/local/greenplum-db-6.13.0/bin/initdb
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-GP_LIBRARY_PATH is = /usr/local/greenplum-db-6.13.0/lib
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-HEAP_CHECKSUM is = on
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-HBA_HOSTNAMES is = 0
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Ulimit check = Passed
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Array host connect type = Single hostname per node
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master IP address [1] = ::1
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master IP address [2] = 192.168.5.12
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Master IP address [3] = fe80::a1c:7f19:bb17:b882
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Standby Master = Not Configured
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Number of primary segments = 2
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Total Database segments = 4
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Trusted shell = ssh
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Number segment hosts = 2
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Mirroring config = OFF
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:----------------------------------------
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Greenplum Primary Segment Configuration
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:----------------------------------------
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-gp-sdw1 6000 gp-sdw1 /data/gpdata/primary0/gpseg0 2
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-gp-sdw1 6001 gp-sdw1 /data/gpdata/primary1/gpseg1 3
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-gp-sdw2 6000 gp-sdw2 /data/gpdata/primary0/gpseg2 4
20240529:23:31:57:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-gp-sdw2 6001 gp-sdw2 /data/gpdata/primary1/gpseg3 5
Continue with Greenplum creation Yy|Nn (default=N):
> y
20240529:23:32:15:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Building the Master instance database, please wait...
20240529:23:32:20:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Starting the Master in admin mode
20240529:23:32:22:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Commencing parallel build of primary segment instances
20240529:23:32:22:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Spawning parallel processes batch [1], please wait...
....
20240529:23:32:22:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
.......................
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:------------------------------------------------
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Parallel process exit status
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:------------------------------------------------
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Total processes marked as completed = 4
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Total processes marked as killed = 0
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Total processes marked as failed = 0
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:------------------------------------------------
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Deleting distributed backout files
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Removing back out file
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-No errors generated from parallel processes
20240529:23:32:45:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Restarting the Greenplum instance in production mode
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Starting gpstop with args: -a -l /home/gpadmin/gpAdminLogs -m -d /data/gpdata/master/gpseg-1
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Gathering information and validating the environment...
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 6.13.0 build commit:4f1adf8e247a9685c19ea02bcaddfdc200937ecd Open Source'
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='smart'
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Master segment instance directory=/data/gpdata/master/gpseg-1
20240529:23:32:45:058576 gpstop:gp-master:gpadmin-[INFO]:-Stopping master segment and waiting for user connections to finish ...
server shutting down
20240529:23:32:47:058576 gpstop:gp-master:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
20240529:23:32:47:058576 gpstop:gp-master:gpadmin-[INFO]:-Terminating processes for segment /data/gpdata/master/gpseg-1
20240529:23:32:47:058576 gpstop:gp-master:gpadmin-[ERROR]:-Failed to kill processes for segment /data/gpdata/master/gpseg-1: ([Errno 3] No such process)
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Starting gpstart with args: -a -l /home/gpadmin/gpAdminLogs -d /data/gpdata/master/gpseg-1
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Gathering information and validating the environment...
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 6.13.0 build commit:4f1adf8e247a9685c19ea02bcaddfdc200937ecd Open Source'
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Greenplum Catalog Version: '301908232'
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Starting Master instance in admin mode
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Setting new master era
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Master Started...
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Shutting down master
20240529:23:32:47:058622 gpstart:gp-master:gpadmin-[INFO]:-Commencing parallel segment instance startup, please wait...
..
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-Process results...
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:- Successful segment starts = 4
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:- Failed segment starts = 0
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:- Skipped segment starts (segments are marked down in configuration) = 0
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-Successfully started 4 of 4 segment instances
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240529:23:32:50:058622 gpstart:gp-master:gpadmin-[INFO]:-Starting Master instance gp-master directory /data/gpdata/master/gpseg-1
20240529:23:32:51:058622 gpstart:gp-master:gpadmin-[INFO]:-Command pg_ctl reports Master gp-master instance active
20240529:23:32:51:058622 gpstart:gp-master:gpadmin-[INFO]:-Connecting to dbname='template1' connect_timeout=15
20240529:23:32:51:058622 gpstart:gp-master:gpadmin-[INFO]:-No standby master configured. skipping...
20240529:23:32:51:058622 gpstart:gp-master:gpadmin-[INFO]:-Database successfully started
20240529:23:32:51:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Completed restart of Greenplum instance in production mode
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Scanning utility log file for any warning messages
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[WARN]:-*******************************************************
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[WARN]:-Scan of log file indicates that some warnings or errors
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[WARN]:-were generated during the array creation
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Please review contents of log file
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-/home/gpadmin/gpAdminLogs/gpinitsystem_20240529.log
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-To determine level of criticality
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-These messages could be from a previous run of the utility
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-that was called today!
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[WARN]:-*******************************************************
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Greenplum Database instance successfully created
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-------------------------------------------------------
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-To complete the environment configuration, please
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-update gpadmin .bashrc file with the following
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-1. Ensure that the greenplum_path.sh file is sourced
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-2. Add "export MASTER_DATA_DIRECTORY=/data/gpdata/master/gpseg-1"
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:- to access the Greenplum scripts for this instance:
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:- or, use -d /data/gpdata/master/gpseg-1 option for the Greenplum scripts
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:- Example gpstate -d /data/gpdata/master/gpseg-1
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Script log file = /home/gpadmin/gpAdminLogs/gpinitsystem_20240529.log
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-To remove instance, run gpdeletesystem utility
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-To initialize a Standby Master Segment for this Greenplum instance
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Review options for gpinitstandby
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-------------------------------------------------------
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-The Master /data/gpdata/master/gpseg-1/pg_hba.conf post gpinitsystem
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-has been configured to allow all hosts within this new
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-new array must be explicitly added to this file
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-located in the /usr/local/greenplum-db-6.13.0/docs directory
20240529:23:32:52:055079 gpinitsystem:gp-master:gpadmin-[INFO]:-------------------------------------------------------3.11设置远程登录(主节点 gpadmin 用户操作 )
如需要Navicat能够链接,需要配置如下:
bash
$ echo "host all gpadmin 0.0.0.0/0 trust" >> /data/gpdata/master/gpseg-1/pg_hba.conf
$ gpstop -u (重新加载数据库配置)在服务器上,验证相关端口是否运行
bash
$ ps -ef|grep postgres3.12设置standby节点
【可选操作】前面的配置是没有带standby相关配置的,这里仅单独说明配置standby节点步骤
原有的基础配置这台服务器均需要配置一次:
- 关闭防火墙或开放端口
- 关闭SELinux
- 修改内核配置参数
- 配置hosts
- 配置资源限制参数
- 节点间免密
- ssh权限互通设置
- ...
3.12.1 配置hosts
在原有的hosts配置基础上增加【所有节点都增加】
bash
$ vi /etc/hosts
192.168.5.15 gp-standby3.12.2 设置standby节点(主节点 gpadmin 用户操作 )
standby节点根据之前的步骤,就已经完成了配置,执行
bash
$ gpinitstandby -s gp-standby3.12.3 验证standby节点是否完成配置
在standby的服务器上,验证相关端口是否运行
bash
$ ps -ef|grep postgres四、Greenplum数据库验证
4.1登录验证(主节点 gpadmin 用户操作 )
1、登录验证
bash
$ psql -d postgres2、navicat登录验证
主机: master的IP地址
端口: 5432【默认,如修改使用修改后的】
初始数据库: postgres
用户名: gpadmin
密码: gpadmin如果密码不正确可以尝试
bash# 在master登录控制台 $ psql -d postgres # 然后执行 ALTER USER gpadmin with password '新密码';
3、查看集群状态验证,在主节点上操作命令
具体操作:
Gpstate执行样例
bash
[gpadmin@gp-master ~]$ gpstate
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-Starting gpstate with args:
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 6.13.0 build commit:4f1adf8e247a9685c19ea02bcaddfdc200937ecd Open Source'
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 9.4.24 (Greenplum Database 6.13.0 build commit:4f1adf8e247a9685c19ea02bcaddfdc200937ecd Open Source) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 6.4.0, 64-bit compiled on Dec 18 2020 22:31:16'
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-Gathering data from segments...
20240530:02:35:16:090545 gpstate:gp-master:gpadmin-[INFO]:-Greenplum instance status summary
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Master instance = Active
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Master standby = No master standby configured
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total segment instance count from metadata = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Primary Segment Status
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total primary segments = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total primary segment valid (at master) = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total primary segment failures (at master) = 0
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of postmaster.pid files missing = 0
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of postmaster.pid files found = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of postmaster.pid PIDs missing = 0
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of postmaster.pid PIDs found = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of /tmp lock files missing = 0
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number of /tmp lock files found = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number postmaster processes missing = 0
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Total number postmaster processes found = 4
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Mirror Segment Status
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:- Mirrors not configured on this array
20240530:02:35:17:090545 gpstate:gp-master:gpadmin-[INFO]:-----------------------------------------------------五、Greenplum常用命令
在一个Greenplum数据库DBMS中,数据库服务器实例(Master和所有的Segment)在系统中所有的主机上一起被启动或者停止,它们以这样一种方式作为一个统一的DBMS工作。
由于一个Greenplum数据库系统分布在很多机器上,启动和停止一个Greenplum数据库系统的过程与普通PostgreSQL DBMS不同。
分别使用gpstart和gpstop工具来启动和停止Greenplum数据库。这些工具位于Greenplum数据库的Master主机的$GPHOME/bin目录中。
重要: 不要发出kill命令来结束任何Postgres进程。而是使用数据库命令pg_cancel_backend()。
发出kill -9或者kill -11可能会导致数据库损坏并且妨碍对根本原因的分析。
有关gpstart和gpstop的信息请见Greenplum数据库工具指南。
启动Greenplum数据库
通过在Master实例上运行gpstart可以启动一个初始化好的Greenplum数据库系统。
可以使用gpstart工具来启动一个已经由gpinitsystem工具初始化好但已经被gpstop工具停止的Greenplum数据库系统。gpstart通过启动Greenplum数据库集群上所有的Postgres数据库实例来启动Greenplum数据库。gpstart会精心安排这一过程并且以并行的方式执行它。
在Master主机上运行gpstart启动Greenplum数据库:
$ gpstart重启Greenplum数据库
停止Greenplum数据库系统然后重新启动它。
带-r选项的gpstop工具可以停止Greenplum数据库,并且在关闭完成后重新启动Greenplum数据库。
要重启Greenplum数据库,在Master主机上输入下面的命令:
$ gpstop -r仅重新载入配置文件更改
重新载入对Greenplum数据库配置文件的更改而不中断系统。
gpstop工具可以在不中断服务的前提下重新载入对pg_hba.conf配置文件和Master上postgresql.conf、pg_hba.conf文件中运行时参数的更改。活动会话将会在它们重新连接到数据库时使用这些更新。很多服务器配置参数需要完全重启系统(gpstop -r)才能激活。有关服务器配置参数的信息请见Greenplum数据库参考指南。
使用gpstop工具重新载入配置文件更改而不关闭系统:
$ gpstop -u以维护模式启动Master
只启动Master来执行维护或者管理任务而不影响Segment上的数据。
例如,可以用维护模式连接到一个只在Master实例上的数据库并且编辑系统目录设置。更多有关系统目录表的信息请见Greenplum数据库参考指南。
使用-m模式运行gpstart:
$ gpstart -m以维护模式连接到Master进行目录维护。例如:
$ PGOPTIONS='-c gp_session_role=utility' psql postgres在完成管理任务后,停止处于维护模式的额Master。然后以生产模式重启它。
$ gpstop -mr警告:
对维护模式连接的不当使用可能会导致不一致的系统状态。只有技术支持才应该执行这一操作。
停止Greenplum数据库
gpstop工具可以停止或者重启Greenplum数据库系统,它总是运行在Master主机上。当被激活时,gpstop会停止系统中所有的postgres进程,包括Master和所有的Segment实例。gpstop工具使用一种默认的最多64个并行工作者线程的方式来关闭构成整个Greenplum数据库集群的Postgres实例。系统在关闭之前会等待所有的活动事务完成。要立即停止Greenplum数据库,可以使用快速模式。
要停止Greenplum数据库:
$ gpstop要以快速模式停止Greenplum数据库:
$ gpstop -M fast默认情况下,如果有任何客户端连接存在,就不允许关闭Greenplum数据库。使用-M fast选项可以在关闭前回滚所有正在进行中的事务并且中断所有连接。