- nebula 版本:v2.6.1
- 部署方式:分布式
- 安装方式:RPM
- 硬件信息
- 磁盘 500G
- CPU 8核、内存信息 16G
- 问题的具体描述
按照 执行多次alter tag后nebula崩溃(稳定复现) 的描述复现崩溃后,无法启动服务。我试过清空整个data目录是可以重启的,但是会把其他图谱空间的数据也清掉。我知道是哪个图谱空间有问题,有没有办法定位到这个图谱空间对应的文件夹,删除其数据?
在 Storage 服务的配置文件中设置 auto_remove_invalid_space=true
,然后 Drop Space 就好了。参见文档:DROP SPACE - Nebula Graph Database 手册
注意,开启了 auto_remove_invalid_space=true
,Drop 的空间数据会被清理掉。
加上配置后,执行启动命令 /usr/local/nebula/scripts/nebula.service start all,graphd和storaged两个服务还是无法启动
你图空间删掉了,然后 meta 服务起来了,但是 storage 和 graph 没起来是嘛
不是,我无法启动 graphd,所以没办法登录 nebula-console,也就没法执行 drop space 语句。
鸡蛋问题啊。- -。你等等,我找个研发同学来。
graphd 跟数据没有关系,不能启动 graphd 有 error 的日志吗?
graphd-stderr.log和graphd-stdout.log 都是空的
把安装目录里的 pids 下的文件清空之后再试试呢?
还是不行。执行步骤如下:
- 停止所有服务 /usr/local/nebula/scripts/nebula.service stop all
- 删掉 pids 目录下三个文件
- 启动服务 /usr/local/nebula/scripts/nebula.service start all
最终只有 meta 服务起来了,且 graphd 的 stderr.log 和 stdout.log 均为空。
能否认为 927 这个目录对应 2月17日 进行的所有操作,如果删除了,不影响服务的启动和之前的所有数据?
没用,起不来,现在想搞定得把meta里的数据通过写工具把多余的数据删掉,那个bug在master已经修掉了,可能升级也行。
“写工具把多余的数据删掉”这个具体咋操作?
这个会比较麻烦,得理解 meta 的数据格式,然后写一个读写 rocksdb 的读写小脚本,直接打开 metad 使用的 rocksdb,将对应的数据删掉。会比较麻烦,如果你懂 rocksdb,我们可以提供下需要删除的 key。
要不升级下版本号吧。升级到 3.0,这个版本中 bug 已经修好了。
略懂
这个pr改动也不多,自己改一下重新编译再启动服务应该就可以了吧
是不是用 ldb 去写/删特定格式的key就可以?可以提供一下要删除的 key 么?
不知道我这个会不会帮助到一点(不过我的例子里读的是storage data 不是 meta)
https://gist.github.com/wey-gu/921ade08cccbe285a5f3c34dbc3329de