Troubleshooting:重新安装Vertica建库后无法启动
环境:RHEL6.5 + Vertica7.1.0-3
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.重装集群
前期准备脚本和互信,可参考:
重装集群(先彻底删除再安装)
--删除集群
--杀掉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 9月 7 09:54 /tmp/4803
vnode02
srw-rw-rw-. 1 501 501 0 9月 7 09:19 /tmp/4803
vnode03
srw-rw-rw-. 1 501 501 0 9月 7 09:19 /tmp/4803
vnode04
srw-rw-rw- 1 501 501 0 9月 7 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 9月 7 17:04 /tmp/4803
vnode02
ls: 无法访问/tmp/4803: 没有那个文件或目录
vnode03
ls: 无法访问/tmp/4803: 没有那个文件或目录
vnode04
ls: 无法访问/tmp/4803: 没有那个文件或目录
最终确定果然就是这个问题,最终建库成功。
5.总结
在重装Vertica集群时,需要关注 /tmp/4803是否权限有问题,否则会导致spread进程故障,进而导致整个库起不来。
各节点dbadmin用户的uid和gid尽量保持一致。
Troubleshooting:重新安装Vertica建库后无法启动的更多相关文章
- 升级_开阔视野之Oracle图形化升级(dbca建库后升级)—10.2.0.1.0升为10.2.0.5.0
***********************************************声明*************************************************** ...
- 基于ArcEngine的空间数据通用建库软件介绍
最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用.易用.通用.稳定的入库程序. 1.软件特点: 基于模板(方案)的数据更新 ...
- CentOS 6.2 X64上64位Oracle11gR2 静默安装,静默设置监听,静默建库经验
1 安装前环境: 操作系统:CetnOS6.2x64 最小化安装,已配置好网络IP:172.16.2.182,物理内存8GB,硬盘100GB. 已下载: Linux.x64_11gR2_datab ...
- github建库不成功,不能用SVN上传
说明(2017-12-7 11:37:35): 1. 之前用SVN向gihub提交代码没有一点问题,昨天新建了一个仓库,结果死活提交不上去,以为是SVN的问题,折腾了一天都没弄好. 2. github ...
- Oracle 建库
Oracle得安装就不多说了 不过还是建议直接去官网下 其他渠道可能会导致安装问题 具体自己慢慢体会吧 ! 下面主要说下怎么用Oracle建库并且建用户角色 Database configur ...
- Vertica 安装,建库,新建测试用户并授予权限,建表,入库
测试环境:RHEL 6.4 + Vertica 6.1.3-7 需求:搭建Vertica数据库3节点的测试环境,建立测试用户,建表,测试数据入库. 1.各节点关闭防火墙和SELinux,配置主机名,I ...
- 升级_宽视野Oracle图形升级(升级后dbca建库)—10.2.0.1.0提拔10.2.0.5.0
***********************************************声明********************************************** 原创作 ...
- docker重新安装后无法启动
问题描述: docker版本升级或者重新安装后,无法启动服务,出现如下报错: level=error msg="[graphdriver] prior storage driver over ...
- Vertica 6.1不完全恢复启动到LGE方法
环境:RHEL6.2 + Vertica 6.1.3-7 确定所有节点的vertica进程都停掉(包括agent和python),如果有运行的,停止它或者杀掉它. 确定所有节点的spread进程都正常 ...
随机推荐
- 细说前端自动化打包工具--webpack
背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
- EntityFramework之DetectChanges's Secrets(三)(我为EF正名)
前言 对于应用程序开发者来说,通常不需要考虑太多对于Entity Framework中的变更追踪(change tracking),但是变更追踪和DetectChanges方法是栈的一部分,在这其中, ...
- js学习之类型识别
用来判别类型的方法有好多,整理了一下4种方法,平时用的时候,在不同情景下,还是要结合着使用的. 方法一 typeof:可以识别标准类型,除了Null:不能识别具体的对象类型,除了Function &l ...
- LINQ to SQL Select查询
1. 查询所有字段 using (NorthwindEntities context = new NorthwindEntities()) { var order = from n in contex ...
- __Block与__Weak区别
一.__block理解: Blocks可以访问局部变量,但是不能修改, 声明block的时候实际上是把当时的临时变量又复制了一份, 在block里即使修改了这些复制的变量,也不影响外面的原始变量.即所 ...
- Android的Kotlin秘方(I):OnGlobalLayoutListener
春节后,又重新“开张”.各位高手请继续支持.谢谢! 原文标题:Kotlin recipes for Android (I): OnGlobalLayoutListener 原文链接:http://an ...
- 1.Hibernate简介
1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发; b.大大减少代码量; c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...
- jetBrain系列软件
请尽量支持正版软件!https://www.jetbrains.com/ 本文仅供参考 以下提供一种方法可以无限期体验JetBrain2016系列软件. 1.下载JetbrainsCrack-2.5. ...