最近又遇到了几个坑,逐一记录分析下。
1、主机名hostname和address不一致
在又一次部署压测环境交由测试组进行压测时,同事修改了pg_hba.conf文件重新加载配置文件时报错。(找不到localhost.localdomain服务器)
看到这个报错时,我仔细回想,我是对着部署文档进行操作的,/etc/hosts、/etc/sysconfig/network也都改过了。
ping主机名的时候是正常的,gpssh互信的时候返回的也是hadoop-test1、hadoop-test2、hadoop-test3。
只能再去查看一下主机名设置,都是正常的。
psql登录数据库查看了下gp_segment_configuration时发现hostname和address不一致。
百度查了一圈确定是由于在修改/etc/hosts、/etc/sysconfig/network后未重启生效,导致地址名变了,主机名未变。
一开始想简单粗暴的修改gp_segment_configuration,发现报错。
update gp_segment_configuration set hostname='hadoop-test1' where address='hadoop-test1';
ERROR: permission denied: "gp_segment_configuration" is a system catalog
搜索修改系统表的方法发现了一个参数 allow_system_table_mods。
set allow_system_table_mods='dml'; update gp_segment_configuration set hostname='hadoop-test1' where address='hadoop-test1';
再次执行gpstop -u发现加载配置文件正常
总结:在修改了主机名配置文件后,尽量重启机器(或其他办法)让主机名生效。避免地址和主机名不一致导致后续的配置加载等各种命令无法执行。
参考文档:https://blog.csdn.net/wxc20062006/article/details/78853737