Nebula Graph Meta 服务无法启动

一、错误呈现

日志显示它尝试加载 /usr/local/nebula/data/meta/nebula/0/data/000063.ldb 文件失败。系统提示 No such file or directory,说明此 .ldb 文件确实 物理上丢失了

可能原因包括:

  1. 误删数据文件

  2. 断电/系统崩溃后数据未完全写盘

  3. 磁盘损坏或 mount 异常

  4. 备份或恢复操作不完整(尤其你之前尝试 br restore

  5. 多次启动中断导致 meta 状态异常

二、解决方式

# 先清空损坏的 meta 数据目录
sudo systemctl stop nebula-*
rm -rf /usr/local/nebula/data/meta/*

# 重启 nebula
sudo /usr/local/nebula/scripts/nebula.service start all

# 再执行 restore
./br restore full --meta "127.0.0.1:9559" --storage "local:///home/kg/nebula/backup" --name BACKUP_2025_07_01_15_19_54

解决问题:

这种方法导致数据全部丢失,需要提前进行数据库的备份。

官网地址对于备份有详细的介绍使用 BR 备份数据 - NebulaGraph Database 手册

主要是以下过程:

安装br和agent后

#列出现有备份信息
./br show --storage "local:///home/kg/nebula/backup"

sudo chmod +x agent
 #这一步前需要重新添加 Storage 主机(127.0.0.1:9779)
sudo nohup ./agent --agent="127.0.0.1:8888" --meta="127.0.0.1:9559" > nebula-agent.log 2>&1 &
 
 #备份命令
./br backup full --meta "127.0.0.1:9559" --storage "local:///home/kg/nebula/backup/" 

#恢复命令:
./br restore full --meta "127.0.0.1:9559" --storage "local:///home/kg/nebula/backup" --name  BACKUP_2025_07_01_15_19_54

恢复数据

 

### Nebula Graph 安装与使用教程概述 Nebula Graph 是一款分布式图数据库,适用于社交网络分析、推荐系统、知识图谱等多种场景[^1]。以下是关于其安装、使用教程和技术文档的相关信息。 #### 安装教程 Nebula Graph 的安装需要配置存储服务组件(NebulaStorage)。在首次启动时,用户可能会遇到“Host not enough”的错误提示[^4]。这是因为尚未注册 Storage 服务。解决方法是在 NebulaGraph Studio 界面的命令行中执行以下命令以添加主机: ```sql ADD HOSTS <ip>:<port>; ``` 这里的 `<ip>` 和 `<port>` 需要替换为实际的 IP 地址和端口号。 #### 使用教程 Nebula Graph 提供了丰富的查询功能,支持复杂的图数据操作需求。用户可以通过 nGQL(Nebula Graph Query Language)进行数据的增删改查。例如,创建一个图空间可以使用以下语句: ```sql CREATE SPACE IF NOT EXISTS my_space( partition_num = 10, replica_factor = 1, vid_type = FIXED_STRING(30) ); ``` 此外,Nebula Graph 支持索引的创建,以便优化查询性能。具体语法可参考官方文档[^2]。 #### 技术文档 Nebula Graph 的技术文档详细描述了其内核代码结构和功能实现。例如,在 `src/common/clients/` 目录下提供了 meta 和 storage 客户端的 C++ 实现[^3]。对于开发者而言,了解这些工具包有助于深入理解 Nebula Graph 的工作机制。 ```python # 示例:通过 Python SDK 连接 Nebula Graph from nebula3.Config import SessionPoolConfig from nebula3.gclient.net import ConnectionPool config = SessionPoolConfig() connection_pool = ConnectionPool() if not connection_pool.init(['127.0.0.1:9669'], config): print("Failed to connect to Nebula Graph") else: session = connection_pool.get_session('root', 'nebula') result = session.execute('SHOW SPACES;') print(result) session.release() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值