1. 首页 > 软件安装教程 > 正文

NebulaGraph安装配置-NebulaGraph数据库安装配置_升级迁移详细过程

1. NebulaGraph概述与环境规划

NebulaGraph是一款开源的分布式图数据库,具有高性能、高可用、易扩展的特点。NebulaGraph采用原生图存储结构,支持nGQL查询语言,适合处理大规模图数据,广泛应用于社交网络、知识图谱、风控等场景。更多学习教程www.fgedu.net.cn

1.1 NebulaGraph版本说明

NebulaGraph目前主要版本为3.x,本教程以NebulaGraph 3.6为例进行详细讲解。

# 查看NebulaGraph版本
$ /usr/local/nebula/bin/nebula –version
nebula version 3.6.0

# 查看服务状态
$ /usr/local/nebula/scripts/nebula.service status all
[INFO] nebula-graphd: Running as 12345, listening on 9669
[INFO] nebula-storaged: Running as 12346, listening on 9779
[INFO] nebula-metad: Running as 12347, listening on 9559

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
Graph端口:9669
Storage端口:9779
Meta端口:9559
数据目录:/data/nebula
配置目录:/usr/local/nebula/etc
日志目录:/usr/local/nebula/logs

存储规划:
图空间:fgedudb
副本数:1

1.3 NebulaGraph核心特性

主要特点:
1. 分布式架构:支持水平扩展
2. 高性能:毫秒级查询延迟
3. 高可用:支持多副本
4. nGQL查询:类SQL的图查询语言
5. 强一致性:支持ACID事务
6. 多租户:支持多图空间隔离
7. 可视化:支持NebulaGraph Studio
8. 多语言客户端:支持Java、Python、Go等

2. 硬件环境要求与检查

在安装NebulaGraph之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

最低配置:
CPU:4核心
内存:8GB
磁盘:50GB

推荐配置(生产环境):
CPU:16核心以上
内存:64GB以上
磁盘:500GB以上SSD

大规模部署配置:
CPU:32核心以上
内存:128GB以上
磁盘:2TB以上SSD

2.2 系统环境检查

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)

# 检查内核版本
# uname -a
Linux fgedudb01 4.18.0-477.10.1.el8_8.x86_64 #1 SMP Fri Apr 4 10:00:00 CST 2026 x86_64 x86_64 x86_64 GNU/Linux

# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 31Gi 1.0Gi 29Gi 256Mi 1.0Gi 30Gi
Swap: 7Gi 0B 7Gi

# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 50G 2.5G 48G 5% /
/dev/sda2 1014M 150M 865M 15% /boot
/dev/mapper/vg_data-lv_data 500G 50G 450G 10% /data

# 检查时间同步
# timedatectl status
Local time: 五 2026-04-04 10:00:00 CST
Universal time: 五 2026-04-04 02:00:00 UTC
RTC time: 五 2026-04-04 02:00:00
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes

2.3 内核参数配置

# 配置内核参数
# vi /etc/sysctl.d/99-nebula.conf

# 添加以下参数
# 网络参数
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 文件描述符限制
fs.file-max = 655360

# 内存参数
vm.max_map_count = 262144
vm.swappiness = 1

# 使内核参数生效
# sysctl -p /etc/sysctl.d/99-nebula.conf

# 输出示例:
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535

# 配置用户限制
# vi /etc/security/limits.conf

# 添加以下配置
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft core unlimited
* hard core unlimited

生产环境建议:NebulaGraph对磁盘I/O要求较高,建议使用SSD存储。时间同步对分布式系统非常重要,务必配置NTP服务。

3. NebulaGraph安装步骤

本节详细介绍NebulaGraph 3.6的安装过程。学习交流加群风哥QQ113257174

3.1 下载并安装NebulaGraph

# 创建安装目录
# mkdir -p /usr/local/nebula
# cd /usr/local/src

# 下载NebulaGraph
# wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.el8.x86_64.rpm

# 输出示例:
–2026-04-04 10:00:00– https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.el8.x86_64.rpm
正在解析主机 oss-cdn.nebula-graph.com.cn… 140.82.121.4
正在连接 oss-cdn.nebula-graph.com.cn|140.82.121.4|:443… 已连接。
已发出 HTTP 请求,正在等待回应… 200 OK
长度:100000000 (95M) [application/x-rpm]
正在保存至: “nebula-graph-3.6.0.el8.x86_64.rpm”
100%[======================================>] 100,000,000 10.0MB/s 用时 9.5s
2026-04-04 10:00:10 (10.0 MB/s) – 已保存 “nebula-graph-3.6.0.el8.x86_64.rpm”

# 安装RPM包
# rpm -ivh nebula-graph-3.6.0.el8.x86_64.rpm

# 输出示例:
Verifying… ################################# [100%]
Preparing… ################################# [100%]
Updating / installing…
1:nebula-graph-3.6.0-1 ################################# [100%]

# 查看安装目录
# ls -la /usr/local/nebula/
总用量 0
drwxr-xr-x. 2 root root 6 4月 4 10:00 bin
drwxr-xr-x. 2 root root 6 4月 4 10:00 etc
drwxr-xr-x. 2 root root 6 4月 4 10:00 lib
drwxr-xr-x. 2 root root 6 4月 4 10:00 logs
drwxr-xr-x. 2 root root 6 4月 4 10:00 pids
drwxr-xr-x. 2 root root 6 4月 4 10:00 scripts
drwxr-xr-x. 2 root root 6 4月 4 10:00 share

3.2 配置数据目录

# 创建数据目录
# mkdir -p /data/nebula/data
# mkdir -p /data/nebula/logs

# 设置权限
# chown -R root:root /data/nebula
# chmod -R 755 /data/nebula

# 修改配置文件
# vi /usr/local/nebula/etc/nebula-graphd.conf

# 添加以下配置
–log_dir=/data/nebula/logs
–meta_server_addrs=192.168.1.51:9559
–local_ip=192.168.1.51

# 修改storage配置
# vi /usr/local/nebula/etc/nebula-storaged.conf

–log_dir=/data/nebula/logs
–meta_server_addrs=192.168.1.51:9559
–local_ip=192.168.1.51
–data_path=/data/nebula/data

# 修改meta配置
# vi /usr/local/nebula/etc/nebula-metad.conf

–log_dir=/data/nebula/logs
–local_ip=192.168.1.51
–data_path=/data/nebula/data/meta

3.3 启动NebulaGraph服务

# 启动所有服务
# /usr/local/nebula/scripts/nebula.service start all

# 输出示例:
[INFO] Starting nebula-metad…
[INFO] Done
[INFO] Starting nebula-graphd…
[INFO] Done
[INFO] Starting nebula-storaged…
[INFO] Done

# 检查服务状态
# /usr/local/nebula/scripts/nebula.service status all

[INFO] nebula-metad: Running as 12347, listening on 9559
[INFO] nebula-graphd: Running as 12345, listening on 9669
[INFO] nebula-storaged: Running as 12346, listening on 9779

# 检查端口
# netstat -tlnp | grep nebula
tcp 0 0 0.0.0.0:9669 0.0.0.0:* LISTEN 12345/nebula-graphd
tcp 0 0 0.0.0.0:9779 0.0.0.0:* LISTEN 12346/nebula-storag
tcp 0 0 0.0.0.0:9559 0.0.0.0:* LISTEN 12347/nebula-metad

# 端口说明:
# 9669: Graph服务端口
# 9779: Storage服务端口
# 9559: Meta服务端口

3.4 连接NebulaGraph

# 使用命令行客户端连接
# /usr/local/nebula/bin/nebula-console -addr 192.168.1.51 -port 9669 -u root -p nebula

Welcome to Nebula Graph!

(root@nebula) [(none)]> SHOW HOSTS;

+—————–+——+———-+————–+———————-+————————+
| Host | Port | Status | Leader count | Leader distribution | Partition distribution |
+—————–+——+———-+————–+———————-+————————+
| “192.168.1.51” | 9779 | “ONLINE” | 0 | “No valid partition” | “No valid partition” |
+—————–+——+———-+————–+———————-+————————+

Got 1 rows (time spent 1234/5678 us)

# 查看版本
(root@nebula) [(none)]> SHOW VERSION;

+————–+———+
| Host | Version |
+————–+———+
| “graphd” | “3.6.0” |
| “metad” | “3.6.0” |
| “storaged” | “3.6.0” |
+————–+———+

风哥提示:NebulaGraph默认用户名root,密码nebula。首次登录后建议修改密码。

4. NebulaGraph参数配置

NebulaGraph参数配置是数据库性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com

4.1 Graph服务配置

# 编辑配置文件
# vi /usr/local/nebula/etc/nebula-graphd.conf

# 主要配置参数

# 网络配置
–listen_addr=0.0.0.0
–port=9669
–meta_server_addrs=192.168.1.51:9559

# 日志配置
–log_dir=/data/nebula/logs
–log_level=INFO

# 会话配置
–max_sessions_per_ip_per_user=300
–session_idle_timeout_secs=28800

# 查询配置
–max_allowed_query_size=4194304

# 重启服务
# /usr/local/nebula/scripts/nebula.service restart graphd

4.2 Storage服务配置

# 编辑配置文件
# vi /usr/local/nebula/etc/nebula-storaged.conf

# 主要配置参数

# 网络配置
–listen_addr=0.0.0.0
–port=9779
–meta_server_addrs=192.168.1.51:9559

# 数据目录
–data_path=/data/nebula/data

# 日志配置
–log_dir=/data/nebula/logs
–log_level=INFO

# 存储引擎配置
–rocksdb_cache_capacity=4096
–rocksdb_disable_wal=false

# 重启服务
# /usr/local/nebula/scripts/nebula.service restart storaged

4.3 Meta服务配置

# 编辑配置文件
# vi /usr/local/nebula/etc/nebula-metad.conf

# 主要配置参数

# 网络配置
–listen_addr=0.0.0.0
–port=9559

# 数据目录
–data_path=/data/nebula/data/meta

# 日志配置
–log_dir=/data/nebula/logs
–log_level=INFO

# 重启服务
# /usr/local/nebula/scripts/nebula.service restart metad

生产环境建议:根据服务器资源合理配置rocksdb_cache_capacity参数。建议将日志和数据目录配置到独立磁盘。

5. 图空间与Schema管理

NebulaGraph使用图空间(Space)管理数据,每个图空间有独立的Schema定义。from:www.itpux.com

5.1 创建图空间

# 连接NebulaGraph
# /usr/local/nebula/bin/nebula-console -addr 192.168.1.51 -port 9669 -u root -p nebula

# 创建图空间
(root@nebula) [(none)]> CREATE SPACE IF NOT EXISTS fgedudb(partition_num=10, replica_factor=1, vid_type=FIXED_STRING(32));

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 查看所有图空间
(root@nebula) [(none)]> SHOW SPACES;

+————+
| Name |
+————+
| “fgedudb” |
+————+

# 使用图空间
(root@nebula) [(none)]> USE fgedudb;

Execution succeeded (time spent 123/456 us)

(root@nebula) [fgedudb]>

# 查看图空间详情
(root@nebula) [fgedudb]> DESCRIBE SPACE fgedudb;

+————+——————-+——————+—————-+———+———+——————-+
| Name | Partition Number | Replica Factor | Charset | Collate | Vid Type | Atomic Edge |
+————+——————-+——————+—————-+———+———+——————-+
| “fgedudb” | 10 | 1 | “utf8” | “utf8_bin”| “FIXED_STRING(32)”| false |
+————+——————-+——————+—————-+———+———+——————-+

5.2 创建Tag和Edge Type

# 创建Tag(点类型)
(root@nebula) [fgedudb]> CREATE TAG IF NOT EXISTS person(name string, age int, city string);

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 创建Edge Type(边类型)
(root@nebula) [fgedudb]> CREATE EDGE IF NOT EXISTS follow(degree int, since string);

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 查看所有Tag
(root@nebula) [fgedudb]> SHOW TAGS;

+————+
| Name |
+————+
| “person” |
+————+

# 查看所有Edge Type
(root@nebula) [fgedudb]> SHOW EDGES;

+————+
| Name |
+————+
| “follow” |
+————+

# 查看Tag结构
(root@nebula) [fgedudb]> DESCRIBE TAG person;

+——–+———-+——-+———+———+
| Field | Type | Null | Default | Comment |
+——–+———-+——-+———+———+
| “name” | “string” | “YES” | | |
| “age” | “int64” | “YES” | | |
| “city” | “string” | “YES” | | |
+——–+———-+——-+———+———+

# 查看Edge Type结构
(root@nebula) [fgedudb]> DESCRIBE EDGE follow;

+———-+———-+——-+———+———+
| Field | Type | Null | Default | Comment |
+———-+———-+——-+———+———+
| “degree” | “int64” | “YES” | | |
| “since” | “string” | “YES” | | |
+———-+———-+——-+———+———+

5.3 插入数据

# 插入点(Vertex)
(root@nebula) [fgedudb]> INSERT VERTEX person(name, age, city) VALUES “p1”:(“张三”, 30, “北京”), “p2”:(“李四”, 28, “上海”), “p3”:(“王五”, 35, “广州”);

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 插入边(Edge)
(root@nebula) [fgedudb]> INSERT EDGE follow(degree, since) VALUES “p1″->”p2”:(5, “2020-01-01”), “p1″->”p3”:(3, “2021-06-15”);

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 批量插入
(root@nebula) [fgedudb]> INSERT VERTEX person(name, age, city) VALUES
“p4”:(“赵六”, 32, “深圳”),
“p5”:(“钱七”, 29, “杭州”),
“p6”:(“孙八”, 31, “南京”);

# 插入多条边
(root@nebula) [fgedudb]> INSERT EDGE follow(degree, since) VALUES
“p2″->”p3”:(4, “2020-03-15”),
“p2″->”p4”:(2, “2021-01-20”),
“p3″->”p5”:(6, “2019-11-11”);

5.4 查询数据

# 查询所有点
(root@nebula) [fgedudb]> MATCH (p:person) RETURN p;

+——————————————+
| p |
+——————————————+
| (“p1” :person{age: 30, city: “北京”, name: “张三”}) |
| (“p2” :person{age: 28, city: “上海”, name: “李四”}) |
| (“p3” :person{age: 35, city: “广州”, name: “王五”}) |
+——————————————+

# 条件查询
(root@nebula) [fgedudb]> MATCH (p:person) WHERE p.age > 30 RETURN p.name, p.age;

+———-+——-+
| p.name | p.age |
+———-+——-+
| “王五” | 35 |
| “赵六” | 32 |
| “孙八” | 31 |
+———-+——-+

# 关系查询
(root@nebula) [fgedudb]> MATCH (p1:person)-[r:follow]->(p2:person)
RETURN p1.name, r.degree, p2.name;

+———-+———-+———-+
| p1.name | r.degree | p2.name |
+———-+———-+———-+
| “张三” | 5 | “李四” |
| “张三” | 3 | “王五” |
| “李四” | 4 | “王五” |
+———-+———-+———-+

# 多跳查询
(root@nebula) [fgedudb]> MATCH (p1:person)-[:follow*1..2]->(p2:person)
WHERE p1.name == “张三”
RETURN DISTINCT p2.name;

+———-+
| p2.name |
+———-+
| “李四” |
| “王五” |
| “赵六” |
+———-+

# 聚合查询
(root@nebula) [fgedudb]> MATCH (p:person)
RETURN p.city, count(*) as count, avg(p.age) as avg_age;

+———-+——-+———+
| p.city | count | avg_age |
+———-+——-+———+
| “北京” | 1 | 30.0 |
| “上海” | 1 | 28.0 |
| “广州” | 1 | 35.0 |
+———-+——-+———+

# 最短路径查询
(root@nebula) [fgedudb]> FIND SHORTEST PATH FROM “p1” TO “p5” OVER *;

+———————————-+
| path |
+———————————-+
| <("p1")-[:follow@0]->(“p2”)-[:follow@0]->(“p3”)-[:follow@0]->(“p5”)> |
+———————————-+

风哥提示:NebulaGraph使用VID(Vertex ID)唯一标识点。建议为常用查询字段创建索引以提高查询性能。

6. 网络连接配置

网络连接配置是客户端访问NebulaGraph的关键,需要正确配置监听端口和连接方式。更多学习教程www.fgedu.net.cn

6.1 配置网络监听

# 查看当前监听端口
# netstat -tlnp | grep nebula
tcp 0 0 0.0.0.0:9669 0.0.0.0:* LISTEN 12345/nebula-graphd
tcp 0 0 0.0.0.0:9779 0.0.0.0:* LISTEN 12346/nebula-storag
tcp 0 0 0.0.0.0:9559 0.0.0.0:* LISTEN 12347/nebula-metad

# 配置防火墙
# firewall-cmd –permanent –add-port=9669/tcp
success
# firewall-cmd –permanent –add-port=9779/tcp
success
# firewall-cmd –permanent –add-port=9559/tcp
success
# firewall-cmd –reload
success

6.2 使用Python连接

# 安装Python驱动
$ pip install nebula3-python

# Python连接示例
from nebula3.gclient.net import ConnectionPool
from nebula3.Config import Config

config = Config()
config.max_connection_pool_size = 10

pool = ConnectionPool()
pool.init([(‘192.168.1.51’, 9669)], config)

session = pool.get_session(‘root’, ‘nebula’)

# 执行查询
result = session.execute(‘USE fgedudb; MATCH (p:person) RETURN p.name, p.age LIMIT 5;’)
print(result)

# 输出示例:
+———-+——-+
| p.name | p.age |
+———-+——-+
| “张三” | 30 |
| “李四” | 28 |
| “王五” | 35 |
+———-+——-+

# 关闭连接
session.release()
pool.close()

6.3 创建索引

# 创建Tag索引
(root@nebula) [fgedudb]> CREATE TAG INDEX person_name_index ON person(name(20));

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 创建复合索引
(root@nebula) [fgedudb]> CREATE TAG INDEX person_city_age_index ON person(city(20), age);

# 创建Edge索引
(root@nebula) [fgedudb]> CREATE EDGE INDEX follow_degree_index ON follow(degree);

# 重建索引
(root@nebula) [fgedudb]> REBUILD TAG INDEX person_name_index;

# 查看索引状态
(root@nebula) [fgedudb]> SHOW TAG INDEX STATUS;

+———————-+———-+
| Name | Status |
+———————-+———-+
| “person_name_index” | “FINISHED” |
+———————-+———-+

# 查看所有索引
(root@nebula) [fgedudb]> SHOW TAG INDEXES;

+———————-+
| Index Name |
+———————-+
| “person_name_index” |
| “person_city_age_index” |
+———————-+

生产环境建议:为常用查询字段创建索引可以显著提高查询性能。创建索引后需要执行REBUILD命令。

7. 备份恢复配置

备份恢复是数据库管理的重要环节,NebulaGraph提供了多种备份恢复方式。学习交流加群风哥微信: itpux-com

7.1 数据备份

# 创建备份目录
# mkdir -p /backup/nebula

# 停止服务
# /usr/local/nebula/scripts/nebula.service stop all

# 备份数据目录
# tar -czf /backup/nebula/nebula_data_$(date +%Y%m%d).tar.gz /data/nebula/data

# 备份配置文件
# tar -czf /backup/nebula/nebula_conf_$(date +%Y%m%d).tar.gz /usr/local/nebula/etc

# 启动服务
# /usr/local/nebula/scripts/nebula.service start all

# 验证备份文件
# ls -la /backup/nebula/
总用量 2048
-rw-r–r–. 1 root root 1024000 4月 4 10:00 nebula_conf_20260404.tar.gz
-rw-r–r–. 1 root root 5120000 4月 4 10:00 nebula_data_20260404.tar.gz

7.2 数据恢复

# 停止服务
# /usr/local/nebula/scripts/nebula.service stop all

# 恢复数据目录
# rm -rf /data/nebula/data/*
# tar -xzf /backup/nebula/nebula_data_20260404.tar.gz -C /

# 恢复配置文件
# rm -rf /usr/local/nebula/etc/*
# tar -xzf /backup/nebula/nebula_conf_20260404.tar.gz -C /

# 启动服务
# /usr/local/nebula/scripts/nebula.service start all

# 验证恢复
(root@nebula) [(none)]> SHOW SPACES;
(root@nebula) [fgedudb]> MATCH (p:person) RETURN count(p);

7.3 自动备份脚本

# 创建备份脚本
# vi /usr/local/bin/nebula_backup.sh

#!/bin/bash
BACKUP_DIR=/backup/nebula
DATE=$(date +%Y%m%d)
LOG_FILE=/data/nebula/logs/backup.log

echo “=== Backup started at $(date) ===” >> $LOG_FILE

# 停止服务
/usr/local/nebula/scripts/nebula.service stop all >> $LOG_FILE 2>&1

# 备份数据
tar -czf ${BACKUP_DIR}/nebula_data_${DATE}.tar.gz /data/nebula/data >> $LOG_FILE 2>&1
tar -czf ${BACKUP_DIR}/nebula_conf_${DATE}.tar.gz /usr/local/nebula/etc >> $LOG_FILE 2>&1

# 启动服务
/usr/local/nebula/scripts/nebula.service start all >> $LOG_FILE 2>&1

if [ $? -eq 0 ]; then
echo “Backup completed successfully” >> $LOG_FILE
else
echo “Backup failed” >> $LOG_FILE
fi

# 清理30天前的备份
find ${BACKUP_DIR} -name “*.tar.gz” -mtime +30 -delete >> $LOG_FILE 2>&1

echo “=== Backup finished at $(date) ===” >> $LOG_FILE
echo “” >> $LOG_FILE

# 设置脚本权限
# chmod +x /usr/local/bin/nebula_backup.sh

# 配置定时任务
# crontab -e

# 添加以下内容(每天凌晨2点执行备份)
0 2 * * * /usr/local/bin/nebula_backup.sh

风哥提示:生产环境建议配置自动备份脚本,定期执行备份。备份前需要停止服务以确保数据一致性。

8. 升级与迁移

NebulaGraph升级和迁移是运维工作中的重要环节,需要仔细规划和执行。更多学习教程公众号风哥教程itpux_com

8.1 版本升级

# 检查当前版本
(root@nebula) [(none)]> SHOW VERSION;

# 执行完整备份
# /usr/local/nebula/scripts/nebula.service stop all
# tar -czf /backup/nebula/pre_upgrade.tar.gz /data/nebula/data /usr/local/nebula/etc

# 下载新版本
# cd /usr/local/src
# wget https://oss-cdn.nebula-graph.com.cn/package/3.7.0/nebula-graph-3.7.0.el8.x86_64.rpm

# 升级安装
# rpm -Uvh nebula-graph-3.7.0.el8.x86_64.rpm

# 启动服务
# /usr/local/nebula/scripts/nebula.service start all

# 验证版本
(root@nebula) [(none)]> SHOW VERSION;

8.2 迁移到新服务器

# 在源服务器执行备份
# /usr/local/nebula/scripts/nebula.service stop all
# tar -czf nebula_full_backup.tar.gz /data/nebula /usr/local/nebula/etc

# 传输备份文件
# scp nebula_full_backup.tar.gz new-server:/backup/

# 在新服务器安装NebulaGraph
# 参考3.1节安装步骤

# 恢复数据
# tar -xzf /backup/nebula_full_backup.tar.gz -C /

# 启动服务
# /usr/local/nebula/scripts/nebula.service start all

# 验证迁移
(root@nebula) [(none)]> SHOW SPACES;
(root@nebula) [fgedudb]> MATCH (p:person) RETURN count(p);

生产环境建议:升级前必须执行完整备份。跨大版本升级需要仔细阅读升级文档,确认兼容性。

9. 生产环境实战案例

本节提供一个完整的生产环境配置案例,帮助读者更好地理解NebulaGraph的实际应用。from:www.itpux.com

9.1 集群部署

# NebulaGraph集群架构
# 至少需要3个Meta节点,建议奇数个

# 节点1: fgedudb01 (192.168.1.51)
# 节点2: fgedudb02 (192.168.1.52)
# 节点3: fgedudb03 (192.168.1.53)

# 在所有节点配置hosts
# vi /etc/hosts
192.168.1.51 fgedudb01
192.168.1.52 fgedudb02
192.168.1.53 fgedudb03

# 节点1配置
# vi /usr/local/nebula/etc/nebula-graphd.conf
–meta_server_addrs=192.168.1.51:9559,192.168.1.52:9559,192.168.1.53:9559
–local_ip=192.168.1.51

# vi /usr/local/nebula/etc/nebula-storaged.conf
–meta_server_addrs=192.168.1.51:9559,192.168.1.52:9559,192.168.1.53:9559
–local_ip=192.168.1.51

# vi /usr/local/nebula/etc/nebula-metad.conf
–local_ip=192.168.1.51

# 在所有节点启动服务
# /usr/local/nebula/scripts/nebula.service start all

# 检查集群状态
(root@nebula) [(none)]> SHOW HOSTS;

+—————–+——+———-+————–+———————-+————————+
| Host | Port | Status | Leader count | Leader distribution | Partition distribution |
+—————–+——+———-+————–+———————-+————————+
| “192.168.1.51” | 9779 | “ONLINE” | 5 | “fgedudb:5” | “fgedudb:10” |
| “192.168.1.52” | 9779 | “ONLINE” | 3 | “fgedudb:3” | “fgedudb:10” |
| “192.168.1.53” | 9779 | “ONLINE” | 2 | “fgedudb:2” | “fgedudb:10” |
+—————–+——+———-+————–+———————-+————————+

9.2 性能监控

# 查看集群统计
(root@nebula) [(none)]> SHOW STATS;

+———+————+———–+
| Type | Name | Count |
+———+————+———–+
| “Space” | “fgedudb” | 1 |
| “Tag” | “person” | 1 |
| “Edge” | “follow” | 1 |
| “Vertex”| “person” | 6 |
| “Edge” | “follow” | 5 |
+———+————+———–+

# 查看会话信息
(root@nebula) [(none)]> SHOW SESSIONS;

+———-+———-+——————-+——————-+———–+
| SessionId| UserName | GraphSpaceName | IpAddress | StartTime |
+———-+———-+——————-+——————-+———–+
| 1 | “root” | “fgedudb” | “192.168.1.100” | 1712205600|
+———-+———-+——————-+——————-+———–+

# 查看查询执行计划
(root@nebula) [fgedudb]> EXPLAIN MATCH (p:person) WHERE p.name == “张三” RETURN p;

# 查看配置
(root@nebula) [(none)]> SHOW CONFIGS GRAPH;

9.3 用户权限管理

# 创建用户
(root@nebula) [(none)]> CREATE USER fgedu_user WITH PASSWORD ‘fgedupass123’;

# 输出示例:
Execution succeeded (time spent 1234/5678 us)

# 授权
(root@nebula) [(none)]> GRANT ROLE USER ON fgedudb TO fgedu_user;

# 查看用户
(root@nebula) [(none)]> SHOW USERS;

+————-+
| Account |
+————-+
| “root” |
| “fgedu_user”|
+————-+

# 查看权限
(root@nebula) [(none)]> SHOW ROLES IN fgedudb;

+————-+———–+
| Account | Role Type |
+————-+———–+
| “fgedu_user”| “USER” |
+————-+———–+

# 修改密码
(root@nebula) [(none)]> CHANGE PASSWORD fgedu_user FROM ‘fgedupass123’ TO ‘newpass456’;

# 使用新用户连接
# /usr/local/nebula/bin/nebula-console -addr 192.168.1.51 -port 9669 -u fgedu_user -p newpass456

风哥提示:NebulaGraph集群部署建议至少3个Meta节点,确保高可用。建议创建专用用户并授予最小权限。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息