- 背景记录
- 问题
- 解决方案
数据库集群(cassandra)因为长时间未维护,导致部分节点服务停止,重启问题节点服务后,两个节点开始二级索引重建工作。
因业务急需,创建新的图库(nsf1~3,顺序创建),创建过程中,hugegraph多次创建失败,(默认创建33张表,但后台5节点创建的表数量不一致,无任何节点创建成功),无奈下只能去数据库后台删除nsf1,登陆集群2个seed节点进行删库工作,删除成功。等待集群自行同步。
第二天发现数据库两个节点服务挂掉,尝试重启后,查看日志报错如下,且无法正常启动,查看日志发现,seed节点删库操作并未同步到问题节点,导致服务挂掉,查看官网,问题原因是磁盘上存储的模式属性与 Cassandra 认为的集群的当前属性之间存在不一致。
-
分别登陆两台问题节点,修改jvm.optimon 使服务能够启动(目的是无需从备份恢复即可启动节点的方法)
添加 -Dcassandra.ignore_corrupted_schema_tables=true到/cassandra/conf/jvm.options -
重启cassandra
systemctl restart dse -
确定服务启动后,进入数据库后台,删除导致报错的库表
/cassandra/bin/cqlsh ip port
desc keypaces;
drop keypaces nsfocus1(若报错,则尝试执行多次,直至删除为止,若多次仍未删除,也可以再次重启服务)
- 若删除成功,则将第1步中的内容删除,重新启动服务,若还是未删除,则继续第3步操作,最后查看日志,通过nodetool验证集群服务,网络等。



