greenplum 集群初始化及启动后报错总结
项目背景描述:因 Primary segment 无法恢复,在原实例存在的情况下重新初始化数据库新实例。
此文章是真实项目实战中遇到的问题,我仅作为笔记记录问题与修复过程,请查看本博客的阅读者在有基础的前提下进行操作。数据库可乃重中之重!
问题一:
bin/touch:无法创建 ‘/data/Newcase/gpdate/master/tmp_file_test’ : No such file or directory
原因分析1:
1.gpadmin用户权限不足
解决方式:
1.普通linux服务器需查看 master 文件及父目录是否为 gpadmin用户所有。如不是gpadmin用户所有,需使用以下命令将文件划为 gpadmin 用户。
2.gc服务器直接通过 gpadmin 用户远程链接并执行初始化命令,不可通过登录root用户后切换gpadmin用户的操作再执行初始化命令。
chown -R gpadmin:gpadmin +路径
原因分析2:
1.初始化文件 gpinitsystem_config 配置存在问题
解决方式:
1.检查 gpinitsystem_config 配置文件中的 MASTER_DIRECTORY、DATA_DIRECTORY等路径配置。
2.使用以下命令重新生成 gpinitsystem_config 配置文件,然后重新配置。
#需在gp安装的目录下执行
cp docs/cli_help/gpconfigs/gpinitsystem_config gpinitsystem_config
chmod 755 gpinitsystem_config
问题二:
Warning: the RSA host key for ‘hostname’ differs from the key for the IP address ‘x.x.x.x’
offending key for IP in /home/gpadmin/.ssh/known_hosts:1
Matching host key in /home/gpadmin/.ssh/known_hosts :5
原因分析:
1.当前用户下家目录中 ./ssh/known_hosts 文件中已经存在session,提示IP冲突
解决方式1:
手动将 host key 报错的行删除。命令如下:
“sed -i ’5d’ ~/.ssh/known_hosts”
解决方式2:
清空 known_hosts 重新生成所需要的session,然后通过 ssh 命令重新生成新的session。【注:需生成 master 到各个 segment 的session,各个 segment之间不需要】
“echo "" > ~/.ssh/known_hosts”
ssh gpadmin@x.x.x.x
解决方式3:
彻底解除:
将“StrictHostKeyChecking no
CheckHostIP no ”添加到~/.ssh/config
问题三:
启动报未找到 gpstart 命令
原因分析1:
1.未加载gp环境变量。
解决方式:
1.在gp安装目录下执行
source greenplum_path.sh
export MASTER_DATA_DIRECTORY= {master 路径}
问题四:
mirror 节点 Not In Sync
解决方式:
使用 gprecoverseg 命令进行恢复节点
gprecoverseg
问题五:
gprecoverseg 恢复节点时报错:
CRITICAL]:-Error occurred:Failed while trying to remove postmaster.pid.
Command was:‘ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 xxx[hostname] "/usr/local/greenplum-db/./greenplum_path.sh;rm -f /thunisoft/Newcasodata/mirror/gpsego/postmaster.pid"rc=l,stdout:’‘,stderr=‘rm:无法删除’/thunisoft/Newcase/gpdata/mirror/gpsego/postmaster.pid’:Permission denied
解决思路方向:
1.检查实例目录权限、所有者和所属组是否为 gpadmin 用户。
然后重新执行恢复操作,恢复提示成功后,等待片刻,显示同步即成功。
问题六:
进入数据库查看节点状态,发现 segment 的 primary 与 mirror 节点互换
psql -U gpadmin -d postgres
select * from gp_segment_configuration;
解决方式:
使用 gprecoverseg -r 命令恢复到原设定角色
gprecoverseg -r

问题七:
重新启动数据库报 “核心已转储” 问题

解决思路方向:
1.查看数据库实例所在位置的硬盘空间大小,留出10G左右大小的空间。
2.查看gp环境变量配置是否生效,参数配置是否合理。【见上一gp部署博客,环境变量及参数设置】
数据库启动成功

感谢阅读,后续将更新其他报错相关解决方式!!!!!!!!

文章详细记录了在Greenplum数据库集群初始化及启动过程中遇到的问题,包括文件权限问题、主机键冲突、gpstart命令找不到、镜像节点不同步、角色交换以及核心已转储的错误。解决方案涉及检查和调整用户权限、配置文件、环境变量,以及使用gprecoverseg命令进行恢复。



1589

被折叠的 条评论
为什么被折叠?



