Docker 安装 GreenPlum 6.1.9

10 阅读7分钟

一、下载镜像文件

docker pull wangbangming/greenplum:6.19.1

二、根据镜像创建容器

docker run --hostname master --restart=always --privileged=true -e "container=docker" --name greenplum -p 5432:5432 wangbangming/greenplum:6.19.1 /usr/sbin/init &

--hostname 设置容器主机名

--privileged=true 由于镜像由centos:7为基础镜像构建,需要授权

--name greenplum 容器名称

-p 5432:5432 Greenplum数据库端口

/usr/sbin/init & centos初始化系统

三、数据库配置

1. 进入容器

docker exec -it greenplum bash;

2. 切换greenplum数据库用户

su gpadmin

3.设置环境变量

source /usr/local/greenplum-db-6.19.1/greenplum_path.sh

source /home/greenplum/.bashrc

4.启动数据库

gpstart

四、使用数据库

psql

数据库默认账号密码为 gpadmin/gpadmin,数据库名称为:gpdb

五、你以为结束了吗?No

1、gpstart执行完会报错:

"(Reason='FATAL: no pg_hba.conf entry for host "::1", user "gpadmin", database "template1", SSL off ') exiting..."

[gpadmin@master gpAdminLogs]$ more gpstart_20240329.log
20240329:04:20:49:000125 gpstart:master:gpadmin-[INFO]:-Starting gpstart with args: 
20240329:04:20:49:000125 gpstart:master:gpadmin-[INFO]:-Gathering information and validating the environment...
20240329:04:20:49:000125 gpstart:master:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 6.19.1 build commit:0e314744a460630073b46cea7b7cf20a81e3da63'
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-Greenplum Catalog Version: '301908232'
20240329:04:20:50:000125 gpstart:master:gpadmin-[WARNING]:-postmaster.pid file exists on Master, checking if recovery startup required
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-Commencing recovery startup checks
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-No socket connection or lock file in /tmp found for port=5432
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-No Master instance process, entering recovery startup mode
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-Clearing Master instance pid file
20240329:04:20:50:000125 gpstart:master:gpadmin-[INFO]:-Starting Master instance in admin mode
20240329:04:20:51:000125 gpstart:master:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20240329:04:20:51:000125 gpstart:master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240329:04:20:51:000125 gpstart:master:gpadmin-[CRITICAL]:-gpstart failed. (Reason='FATAL:  no pg_hba.conf entry for host "::1", user "gpadmin", database "template1", SSL off
') exiting...

此时不要慌

进到 /home/greenplum/gpdata/master/gpseg-1 目录下修改 pg_hba.conf 文件

host all gpadmin ::1/128 trust 

保存后,还需要执行一个命令pg_ctl reload -D /home/greenplum/gpdata/master/gpseg-1重新加载该配置项。

[gpadmin@master /]$ pg_ctl reload -D /home/greenplum/gpdata/master/gpseg-1

然后执行gpstop -a

[gpadmin@master gpseg-1]$ pg_ctl reload -D /home/greenplum/gpdata/master/gpseg-1
server signaled
[gpadmin@master gpseg-1]$ gpstop -a
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Starting gpstop with args: -a
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Gathering information and validating the environment...
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 6.19.1 build commit:0e314744a460630073b46cea7b7cf20a81e3da63'
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='smart'
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Master segment instance directory=/home/greenplum/gpdata/master/gpseg-1
20240329:05:00:00:000289 gpstop:master:gpadmin-[INFO]:-Stopping master segment and waiting for user connections to finish ...
server shutting down
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Terminating processes for segment /home/greenplum/gpdata/master/gpseg-1
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-No standby master host configured
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Targeting dbid [2, 3] for shutdown
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Commencing parallel segment instance shutdown, please wait...
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-0.00% of jobs completed
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-100.00% of jobs completed
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-----------------------------------------------------
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-   Segments stopped successfully      = 2
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-   Segments with errors during stop   = 0
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-----------------------------------------------------
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Successfully shutdown 2 of 2 segment instances 
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Database successfully shutdown with no errors reported
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Cleaning up leftover gpmmon process
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-No leftover gpmmon process found
20240329:05:00:01:000289 gpstop:master:gpadmin-[INFO]:-Cleaning up leftover gpsmon processes
20240329:05:00:02:000289 gpstop:master:gpadmin-[INFO]:-No leftover gpsmon processes on some hosts. not attempting forceful termination on these hosts
20240329:05:00:02:000289 gpstop:master:gpadmin-[INFO]:-Cleaning up leftover shared memory

最后重新执行 gpstart

[gpadmin@master gpseg-1]$ gpstart
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Starting gpstart with args: 
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Gathering information and validating the environment...
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 6.19.1 build commit:0e314744a460630073b46cea7b7cf20a81e3da63'
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Greenplum Catalog Version: '301908232'
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Starting Master instance in admin mode
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Obtaining Segment details from master...
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Setting new master era
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Master Started...
20240329:05:00:20:000443 gpstart:master:gpadmin-[INFO]:-Shutting down master
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:---------------------------
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Master instance parameters
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:---------------------------
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Database                 = template1
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Master Port              = 5432
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Master directory         = /home/greenplum/gpdata/master/gpseg-1
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Timeout                  = 600 seconds
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Master standby           = Off 
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:---------------------------------------
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-Segment instances that will be started
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:---------------------------------------
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-   Host     Datadir                                 Port
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-   master   /home/greenplum/gpdata/gpnode1/gpseg0   6000
20240329:05:00:21:000443 gpstart:master:gpadmin-[INFO]:-   master   /home/greenplum/gpdata/gpnode2/gpseg1   6001

Continue with Greenplum instance startup Yy|Nn (default=N):
> y
20240329:05:00:25:000443 gpstart:master:gpadmin-[INFO]:-Commencing parallel segment instance startup, please wait...
..
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Process results...
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-----------------------------------------------------
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-   Successful segment starts                                            = 2
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-   Failed segment starts                                                = 0
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-   Skipped segment starts (segments are marked down in configuration)   = 0
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-----------------------------------------------------
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Successfully started 2 of 2 segment instances 
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-----------------------------------------------------
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Starting Master instance master directory /home/greenplum/gpdata/master/gpseg-1 
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Command pg_ctl reports Master master instance active
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Connecting to dbname='template1' connect_timeout=15
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-No standby master configured.  skipping...
20240329:05:00:28:000443 gpstart:master:gpadmin-[INFO]:-Database successfully started

问题完美解决

用客户端软件连接

image.png