阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Troubleshooting:重新安装Vertica建库后无法启动

118次阅读
没有评论

共计 4047 个字符,预计需要花费 11 分钟才能阅读完成。

环境:RHEL6.5 + Vertica7.1.0-3

  • 1. 故障现象
  • 2. 重装集群
  • 3. 再次定位
  • 4. 解决问题
  • 5. 总结

1. 故障现象

故障现象:Vertica 集群安装成功,但是创建数据库后一直无法 up.
具体报错输出如下:

        Starting Vertica on all nodes. Please wait, databases with large catalogs may take a while to initialize.

        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
        Node Status: v_wnop_node0001: (DOWN) 
ERROR:  Database did not start cleanly on initiator node!
        Stopping all nodes

进一步查看 vertica 日志:

[root@vnode01 v_wnop_node0001_catalog]# tail -f vertica.log 
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Txn] <INFO> Found my node (v_wnop_node0001) in the catalog
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Txn] <INFO> Catalog info: version=0x1, number of nodes=1, permanent #=1, K=0
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Txn] <INFO> Catalog info: current epoch=0x1
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Catalog] <INFO> Catalog OID generator updated based on GLOBAL tier catalog
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Init] <INFO> Catalog loaded
2016-09-07 15:19:07.018 unknown:0x7f298bac5700 [Comms] <INFO> About to launch spread with '/opt/vertica/spread/sbin/spread -c /data/verticadb/WNOP/v_wnop_node0001_catalog/spread.conf'
2016-09-07 15:19:07.019 unknown:0x7f298bac5700 [Comms] <INFO> forked spread pid=82427, wrote pidfile /data/verticadb/WNOP/v_wnop_node0001_catalog/spread.pid
2016-09-07 15:19:07.020 unknown:0x7f298bac5700 [Init] <INFO> Listening on port: 5433
2016-09-07 15:19:07.020 unknown:0x7f298bac5700 [Init] <INFO> About to fork
2016-09-07 15:19:07.021 unknown:0x7f298bac5700 [Init] <INFO> About to fork again
2016-09-07 15:19:07.023 unknown:0x7f298bac5700 [Init] <INFO> Completed forking
2016-09-07 15:19:07.023 unknown:0x7f298bac5700 [Init] <INFO> Startup [Connecting to Spread] Connecting to spread 4803
2016-09-07 15:19:37.039 unknown:0x7f298bac5700 [Init] <INFO> Spread daemon does not appear to be running on 192.168.1.105 -- exiting!

可以看到大概是 spread 进程在尝试连接 4803 端口时有什么样的问题,似乎 spread 进程压根没启动成功;
在检查各节点的防火墙和 SELinux 之后,都是关闭的状态,并未发现问题。

2. 重装集群

前期准备脚本和互信,可参考:

  • Linux 快速配置集群 ssh 互信  http://www.linuxidc.com/Linux/2016-09/135430.htm

重装集群(先彻底删除再安装)

-- 删除集群 
-- 杀掉 vertica 相关进程 
cluster_run_all_nodes "hostname;ps -ef|grep vertica |grep -v grep|awk'{print $2}'|xargs kill -9"

-- 删除 vertica 软件 
cluster_run_all_nodes "hostname;rpm -e vertica"

-- 杀掉 dbadmin 相关进程 
cluster_run_all_nodes "hostname;ps -ef|grep dbadmin |grep -v grep|awk'{print $2}'|xargs kill -9"

-- 删除之前创建的组和用户 
cluster_run_all_nodes "hostname;id dbadmin"
cluster_run_all_nodes "hostname;groupdel verticadba"
cluster_run_all_nodes "hostname;userdel -r dbadmin"

-- 删除数据存储目录,软件安装目录 
cluster_run_all_nodes "hostname;rm -rf /data/verticadb"
cluster_run_all_nodes "hostname;rm -rf /opt/vertica"

-- 创建数据存储目录 
cluster_run_all_nodes "hostname;mkdir -p /data/verticadb"

-- 安装 
-- 安装软件 
cd /usr2
rpm -ivh vertica-7.1.0-3.x86_64.RHEL5.rpm 

-- 安装集群 
/opt/vertica/sbin/install_vertica -s 192.168.1.105,192.168.1.106,192.168.1.107,192.168.1.108 -r /usr2/vertica-7.1.0-3.x86_64.RHEL5.rpm --failure-threshold=HALT -u dbadmin -p vertica

-- 给数据存储目录赋予权限 
cluster_run_all_nodes "hostname;chown -R dbadmin:verticadba /data/verticadb"

-- 建库 
admintools 建库 

结果这样重装安装的环境,依旧报错,报错内容不变。

3. 再次定位

# cluster_run_all_nodes "hostname; ls -lh /tmp/4803"
vnode01
srw-rw-rw- 1 501 501 0 97 09:54 /tmp/4803
vnode02
srw-rw-rw-. 1 501 501 0 97 09:19 /tmp/4803
vnode03
srw-rw-rw-. 1 501 501 0 97 09:19 /tmp/4803
vnode04
srw-rw-rw- 1 501 501 0 97 09:14 /tmp/4803

可以看到 /tmp/4803 的所属用户和组都是未被识别的 uid 和 gid,怀疑是否是这个问题影响,导致 spread 进程无法集群间通信。

4. 解决问题

再次重装时,dbadmin 用户和组的 uid,gid 有了变化,所以我们将这个文件也先删除掉。

cluster_run_all_nodes "hostname; rm -rf /tmp/4803"

此次环境 dbadmin 用户和组先统一:

-- 保持统一的 uid gid
cluster_run_all_nodes "hostname;groupadd -g 700 verticadba"
cluster_run_all_nodes "hostname;useradd -g verticadba -u 700 dbadmin"

再次重装,建库时,跟踪 /tmp/4083 的状态, 发现各节点 /tmp/4803 依次开始正常:

# cluster_run_all_nodes "hostname; ls -lh /tmp/4803"
vnode01
srw-rw-rw- 1 dbadmin verticadba 0 97 17:04 /tmp/4803
vnode02
ls: 无法访问 /tmp/4803: 没有那个文件或目录
vnode03
ls: 无法访问 /tmp/4803: 没有那个文件或目录
vnode04
ls: 无法访问 /tmp/4803: 没有那个文件或目录 

最终确定果然就是这个问题, 最终建库成功。

5. 总结

在重装 Vertica 集群时,需要关注 /tmp/4803 是否权限有问题,否则会导致 spread 进程故障,进而导致整个库起不来。
各节点 dbadmin 用户的 uid 和 gid 尽量保持一致。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/135429.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4047字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中