一、下载镜像文件
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