1.报错信息
数据库本来是有2️⃣个segment,但是其中一台服务器无法启动,需要重新初始化数据库。以下是原来初始化文件gpinitsystem_config
的内容:
ARRAY_NAME="Greenplum Data Platform" SEG_PREFIX=gpseg PORT_BASE=6000 declare -a DATA_DIRECTORY=(/home/gpadmin/data/primary /home/gpadmin/data/primary /home/gpadmin/data/primary /home/gpadmin/data/primary) MASTER_HOSTNAME=nodeMaster MASTER_DIRECTORY=/home/gpadmin/data/master MASTER_PORT=5432 TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE DATABASE_NAME=gp_sydb MACHINE_LIST_FILE=/opt/scripts/hostfile_segonly
此时只要修改hostfile_segonly
文件将无法启动的节点去掉即可,然后进行数据库初始化:
gpinitsystem -c gpinitsystem_config
初始化过程中的报错信息:
gpinitsystem:nodeSeg001:gpadmin-[FATAL]: -Host nodeSeg001 has an active database process on port = 6000 Script Exiting! gpstart:nodeMaster:gpadmin-[INFO]:-Starting gpstart with args: gpstart:nodeMaster:gpadmin-[INFO]:-Gathering information and validating the environment... gpstart:nodeMaster:gpadmin-[CRITICAL]: -gpstart failed. (Reason='[Errno 2] No such file or directory: '/home/gpadmin/data/master/gpseg-1/postgresql.conf'') exiting...
在nodeSeg001
上查询端口6000
:
netstat -tunlp|grep 6000
发现并没有进程占用此端口。然而/home/gpadmin/data/master/gpseg-1/postgresql.conf
确实是没有这个文件。
2.正确步骤
- 查看一下gpadmin用户下的临时文件,如果有
.s.PGSQL.5432
文件就删掉。
2. 删除原data
下的所有数据。
3. 重新初始化。
3.报错原因
报错的原因是没有删除nodeSeg001
下的data
目录下的文件导致的。