碎碎念

        db2的配置对于新手来说真的不友好(大概是企业级应用都会这样)官方文档又臭又长并且有时候只有sql错误代码但是根本没有解决方案,这次的问题发生在使用preprpnode加入集群的时候,要使用preprpnode之前必须确保节点的host文件中都有彼此的ip和hostname

Debug

目前遇到过两种报错(还有的话就再追加)

preprpnode: No route to hosts

经典网络错误,首先集群在逻辑上不一定非要在同一子网,但是要确保ping能够到达

依次检查 

1        host文件(所有节点上的host文件都要保持一致)

2        本地的防火墙策略,一般是 firewalld 或者 iptables,使用db2 get db cfg for <数据库名>拿到数据库的设置,找到HADR的选项,一般有HADR_P,HADR_S和db2c 三个端口,确保端口启用并且允许访问

3        云环境确保安全组策略允许上述3个端口,检查子网的NACL

4        有些虚拟机环境可能需要指定dns服务器

preprpnode: Unable to obtain the public key from

看到public key我的第一反应是检查 %HOME/.ssh/authorized_keys中是否包含了各自的公钥

结果都配置得好好的

ssh自身访问也没有问题

查了很多文档后发现TSAMP安装或者再安装的时候,srcmstr这个服务会自己关闭(因为是使用ansible自动化安装的,自动化构筑很多时候是需要保证幂等性的)

所以使用命令重启一下服务就可以了(如果遇到这个错误,重启机器后发现可以使用preprpnode,其实就是因为重启了这个服务)

sudo systemctl restart srcmstr
12-29 22:34