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

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

1. ArangoDB概述与环境规划

ArangoDB是一款开源的多模型数据库,支持文档、图和键值三种数据模型。ArangoDB使用统一的查询语言AQL(ArangoDB Query
Language),可以同时处理多种数据类型,适合复杂的数据处理场景。更多学习教程www.fgedu.net.cn

1.1 ArangoDB版本说明

ArangoDB目前主要版本为3.11,本教程以ArangoDB 3.11为例进行详细讲解。

# 查看ArangoDB版本
$ arangod –version
3.11.6

# 查看服务状态
$ systemctl status arangodb3
● arangodb3.service – ArangoDB database server
Loaded: loaded (/usr/lib/systemd/system/arangodb3.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2026-04-04 10:00:00 CST; 1h 30min ago

# 查看集群状态
$ arangosh –server.endpoint tcp://192.168.1.51:8529 –javascript.execute-string
“require(‘@arangodb/cluster’).health()”

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
ArangoDB端口:8529
Agent端口:8531
Coordinator端口:8529
DBServer端口:8530
数据目录:/data/arangodb
配置目录:/etc/arangodb3
日志目录:/var/log/arangodb3

存储规划:
数据库名:fgedudb
集合名前缀:fgedu
数据文件:/data/arangodb/engine-rocksdb

1.3 ArangoDB核心特性

主要特点:
1. 多模型数据库:支持文档、图、键值三种模型
2. AQL查询语言:强大的声明式查询语言
3. 集群架构:支持分布式部署
4. RocksDB存储:高性能的存储引擎
5. Foxx微服务:内置应用服务器
6. 全文搜索:内置ArangoSearch功能
7. 事务支持:ACID事务保证
8. 多语言驱动:支持多种编程语言

2. 硬件环境要求与检查

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

2.1 最低硬件要求

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

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

大规模部署配置:
CPU:16核心以上
内存:64GB以上
磁盘:1TB以上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: 15Gi 512Mi 14Gi 128Mi 512Mi 15Gi
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 200G 20G 180G 10% /data

2.3 内核参数配置

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

# 添加以下参数
# 文件描述符限制
fs.file-max = 131072

# 虚拟内存参数
vm.max_map_count = 256000
vm.overcommit_memory = 0
vm.swappiness = 1

# 网络参数
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

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

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

# 添加以下配置
arangodb soft nofile 131072
arangodb hard nofile 131072
arangodb soft nproc 65535
arangodb hard nproc 65535

生产环境建议:ArangoDB使用RocksDB存储引擎,对磁盘I/O性能要求较高。建议使用SSD存储。

3. ArangoDB安装步骤

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

3.1 使用官方仓库安装

# 添加ArangoDB官方仓库
# cat > /etc/yum.repos.d/arangodb.repo << 'EOF' [arangodb] name=ArangoDB Project baseurl=https://download.arangodb.com/arangodb311/RPM/ enabled=1 gpgcheck=1 gpgkey=https://download.arangodb.com/arangodb311/RPM/repodata/repomd.xml.key EOF # 安装ArangoDB # dnf install -y arangodb3-3.11.6 # 输出示例: 上次元数据过期检查:0:00:00 前,执行于 2026年04月04日 星期五 10时00分00秒。 依赖关系解决。================================================================================软件包 架构 版本 仓库 大小================================================================================安装: arangodb3 x86_64 3.11.6-1.0 arangodb 85 M 已安装: arangodb3-3.11.6-1.0.x86_64 完毕! # 创建数据目录 # mkdir -p /data/arangodb # chown -R arangodb:arangodb /data/arangodb # 初始化数据库 # arango-secure-installation # 输出示例: Initializing database...Hang on... Database files are up-to-date. # 启动服务 # systemctl start arangodb3 # systemctl enable arangodb3

3.2 手动安装方式

# 创建安装目录
# mkdir -p /usr/local/arangodb
# mkdir -p /data/arangodb

# 下载ArangoDB
# cd /usr/local/src
# wget https://download.arangodb.com/arangodb311/Source/ArangoDB-3.11.6.tar.gz

# 解压安装包
# tar -xzf ArangoDB-3.11.6.tar.gz
# cd ArangoDB-3.11.6

# 编译安装(需要CMake和GCC)
# mkdir build && cd build
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/arangodb
# make -j$(nproc)
# make install

# 创建arangodb用户
# useradd -r -s /sbin/nologin arangodb
# chown -R arangodb:arangodb /usr/local/arangodb
# chown -R arangodb:arangodb /data/arangodb

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

3.3 配置ArangoDB

# 编辑配置文件
# vi /etc/arangodb3/arangod.conf

# 修改以下配置
[database]
directory = /data/arangodb

[server]
endpoint = tcp://0.0.0.0:8529
storage-engine = rocksdb

[log]
level = info
output = file:///var/log/arangodb3/arangod.log

[javascript]
startup-directory = /usr/share/arangodb3/js
app-path = /var/lib/arangodb3-apps

[foxx]
queues = true

# 创建日志目录
# mkdir -p /var/log/arangodb3
# chown -R arangodb:arangodb /var/log/arangodb3

# 重启服务
# systemctl restart arangodb3

# 检查端口
# netstat -tlnp | grep arango
tcp6 0 0 :::8529 :::* LISTEN 12345/arangod

3.4 初始化配置

# 设置root密码
# arango-secure-installation

# 输出示例:
Initializing database…Hang on…
Database files are up-to-date.

# 连接ArangoDB
$ arangosh –server.endpoint tcp://192.168.1.51:8529

# 输出示例:
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | ‘__/ _` | ‘_ \ / _` |/ _ \/ __| ‘_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/

arangosh (ArangoDB 3.11.6 [linux] 64bit, using jemalloc, build tags/v3.11.6-0-g1234567, V8 11.8.172,
ICU 64.2, OpenSSL 1.1.1k FIPS 25 Mar 2021)
Copyright (c) ArangoDB GmbH

Connected to ArangoDB ‘tcp://192.168.1.51:8529’ version: 3.11.6 [server], database: ‘_system’,
username: ‘root’

# 创建数据库
127.0.0.1:8529@_system> db._createDatabase(“fgedudb”);

# 输出示例:
true

# 列出所有数据库
127.0.0.1:8529@_system> db._databases();
[ “_system”, “fgedudb” ]

# 切换数据库
127.0.0.1:8529@_system> db._useDatabase(“fgedudb”);
true
127.0.0.1:8529@fgedudb>

风哥提示:ArangoDB使用RocksDB作为默认存储引擎,性能优异。建议根据数据量合理配置数据目录大小。

4. ArangoDB参数配置

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

4.1 服务器参数配置

# 编辑配置文件
# vi /etc/arangodb3/arangod.conf

[server]
# 监听地址和端口
endpoint = tcp://0.0.0.0:8529

# 存储引擎
storage-engine = rocksdb

# 线程池配置
minimal-threads = 4
maximal-threads = 64

# 查询缓存
query-cache-mode = on
query-cache-entries = 16384

# 事务超时
transaction-timeout = 300

# 日志级别
log.level = info

# 统计信息
statistics = true

4.2 RocksDB存储引擎配置

# 编辑配置文件
# vi /etc/arangodb3/arangod.conf

[rocksdb]
# 块缓存大小
block-cache-size = 2147483648

# 写缓冲区大小
total-write-buffer-size = 536870912

# 最大后台任务
max-background-jobs = 4

# 动态级别字节
dynamic-level-bytes = true

# 压缩类型
compression-type = lz4

# 启用直接IO
enable-pipelined-write = true

# 重启服务
# systemctl restart arangodb3

4.3 内存配置

# 编辑配置文件
# vi /etc/arangodb3/arangod.conf

[cache]
# 缓存大小(字节)
size = 2147483648

[query]
# 内存限制
memory-limit = 4294967296

[javascript]
# V8上下文数量
v8-contexts = 8

# 垃圾回收频率
gc-frequency = 10000

# 重启服务
# systemctl restart arangodb3

# 查看内存使用情况
127.0.0.1:8529@fgedudb> require(“@arangodb/aql/functions”).toArray();
127.0.0.1:8529@fgedudb> db._engineStatus();

生产环境建议:根据服务器内存大小合理配置缓存和查询内存限制。建议预留20-30%内存给操作系统和其他进程。

5. 数据库管理

ArangoDB支持多种数据模型,本节介绍文档、图和集合的管理操作。from:www.itpux.com

5.1 创建集合

# 连接ArangoDB
$ arangosh –server.endpoint tcp://192.168.1.51:8529

# 切换到fgedudb数据库
127.0.0.1:8529@_system> db._useDatabase(“fgedudb”);
true

# 创建文档集合
127.0.0.1:8529@fgedudb> db._create(“fgedu_users”);

# 输出示例:
[ArangoCollection 123456789, “fgedu_users” (type document, status loaded)]

# 创建边集合
127.0.0.1:8529@fgedudb> db._createEdgeCollection(“fgedu_relations”);

# 输出示例:
[ArangoCollection 123456790, “fgedu_relations” (type edge, status loaded)]

# 查看所有集合
127.0.0.1:8529@fgedudb> db._collections();
[
[ArangoCollection 1, “_graphs” (type document, status loaded)],
[ArangoCollection 2, “_aqlfunctions” (type document, status loaded)],
[ArangoCollection 123456789, “fgedu_users” (type document, status loaded)],
[ArangoCollection 123456790, “fgedu_relations” (type edge, status loaded)]
]

5.2 文档操作

# 插入文档
127.0.0.1:8529@fgedudb> db.fgedu_users.save({
… “_key”: “user001”,
… “name”: “张三”,
… “age”: 30,
… “city”: “北京”,
… “email”: “zhangsan@fgedu.net.cn”
… });

# 输出示例:
{
“_id” : “fgedu_users/user001”,
“_key” : “user001”,
“_rev” : “_abcdefgh”
}

# 批量插入
127.0.0.1:8529@fgedudb> db.fgedu_users.save([
… { “_key”: “user002”, “name”: “李四”, “age”: 28, “city”: “上海” },
… { “_key”: “user003”, “name”: “王五”, “age”: 35, “city”: “广州” }
… ]);

# 查询文档
127.0.0.1:8529@fgedudb> db.fgedu_users.document(“user001”);
{
“_id” : “fgedu_users/user001”,
“_key” : “user001”,
“_rev” : “_abcdefgh”,
“name” : “张三”,
“age” : 30,
“city” : “北京”,
“email” : “zhangsan@fgedu.net.cn”
}

# 更新文档
127.0.0.1:8529@fgedudb> db.fgedu_users.update(“user001”, { “age”: 31 });

# 删除文档
127.0.0.1:8529@fgedudb> db.fgedu_users.remove(“user001”);

5.3 AQL查询

# 基本查询
127.0.0.1:8529@fgedudb> db._query(‘FOR doc IN fgedu_users RETURN doc’).toArray();
[
{
“_id” : “fgedu_users/user001”,
“_key” : “user001”,
“name” : “张三”,
“age” : 30,
“city” : “北京”
},
{
“_id” : “fgedu_users/user002”,
“_key” : “user002”,
“name” : “李四”,
“age” : 28,
“city” : “上海”
}
]

# 条件查询
127.0.0.1:8529@fgedudb> db._query(‘
… FOR doc IN fgedu_users
… FILTER doc.age > 25
… RETURN { name: doc.name, age: doc.age }
… ‘).toArray();

# 排序和分页
127.0.0.1:8529@fgedudb> db._query(‘
… FOR doc IN fgedu_users
… SORT doc.age DESC
… LIMIT 0, 10
… RETURN doc
… ‘).toArray();

# 聚合查询
127.0.0.1:8529@fgedudb> db._query(‘
… FOR doc IN fgedu_users
… COLLECT city = doc.city WITH COUNT INTO count
… RETURN { city: city, count: count }
… ‘).toArray();

# 图遍历查询
127.0.0.1:8529@fgedudb> db._query(‘
… FOR v, e, p IN 1..3 OUTBOUND “fgedu_users/user001” fgedu_relations
… RETURN { vertex: v, edge: e }
… ‘).toArray();

5.4 图数据操作

# 创建图
127.0.0.1:8529@fgedudb> var graph_module = require(“@arangodb/general-graph”);
127.0.0.1:8529@fgedudb> var graph = graph_module._create(“fgedu_social”);

# 添加顶点集合
127.0.0.1:8529@fgedudb> graph._addVertexCollection(“fgedu_users”);

# 定义边关系
127.0.0.1:8529@fgedudb> graph._extendEdgeDefinitions({
… collection: “fgedu_relations”,
… from: [“fgedu_users”],
… to: [“fgedu_users”]
… });

# 创建边
127.0.0.1:8529@fgedudb> graph.fgedu_relations.save(“fgedu_users/user001”, “fgedu_users/user002”, {
type: “friend” });

# 图遍历
127.0.0.1:8529@fgedudb> db._query(‘
… FOR v, e IN 1..2 OUTBOUND “fgedu_users/user001” GRAPH “fgedu_social”
… RETURN { name: v.name, relation: e.type }
… ‘).toArray();

风哥提示:ArangoDB的多模型特性非常强大,可以根据业务需求灵活选择数据模型。建议深入学习AQL查询语言。

6. 网络连接配置

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

6.1 配置网络监听

# 查看当前监听端口
# netstat -tlnp | grep arango
tcp6 0 0 :::8529 :::* LISTEN 12345/arangod

# 配置防火墙
# firewall-cmd –permanent –add-port=8529/tcp
success
# firewall-cmd –permanent –add-port=8530/tcp
success
# firewall-cmd –permanent –add-port=8531/tcp
success
# firewall-cmd –reload
success

# 配置SELinux
# setsebool -P httpd_can_network_connect 1

6.2 使用Python连接

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

# Python连接示例
from arango import ArangoClient

# 初始化客户端
client = ArangoClient(hosts=’http://192.168.1.51:8529′)

# 连接数据库
db = client.db(‘fgedudb’, username=’root’, password=’your_password’)

# 获取集合
collection = db.collection(‘fgedu_users’)

# 插入文档
doc = {
‘_key’: ‘user004’,
‘name’: ‘赵六’,
‘age’: 32,
‘city’: ‘深圳’
}
collection.insert(doc)

# 查询文档
cursor = collection.all()
for doc in cursor:
print(doc)

# AQL查询
cursor = db.aql.execute(‘FOR doc IN fgedu_users FILTER doc.age > 30 RETURN doc’)
for doc in cursor:
print(doc)

6.3 使用Java连接

// Maven依赖
//
// com.arangodb
// arangodb-java-driver
// 7.1.0
//

// Java连接示例
import com.arangodb.ArangoDB;
import com.arangodb.ArangoDatabase;
import com.arangodb.entity.BaseDocument;

public class ArangoDBExample {
public static void main(String[] args) {
ArangoDB arangoDB = new ArangoDB.Builder()
.host(“192.168.1.51”, 8529)
.user(“root”)
.password(“your_password”)
.build();

ArangoDatabase db = arangoDB.db(“fgedudb”);

// 插入文档
BaseDocument doc = new BaseDocument();
doc.setKey(“user005”);
doc.addAttribute(“name”, “钱七”);
doc.addAttribute(“age”, 29);
doc.addAttribute(“city”, “杭州”);

db.collection(“fgedu_users”).insertDocument(doc);

// 查询文档
BaseDocument myDoc = db.collection(“fgedu_users”)
.getDocument(“user001”, BaseDocument.class);
System.out.println(myDoc.getAttribute(“name”));

arangoDB.shutdown();
}
}

生产环境建议:建议使用连接池管理连接。对于高并发场景,可以配置多个Coordinator节点。

7. 备份恢复配置

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

7.1 使用arangodump备份

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

# 备份整个数据库
$ arangodump –server.endpoint tcp://192.168.1.51:8529 \
–server.database fgedudb \
–output-directory /backup/arangodb/fgedudb_$(date +%Y%m%d)

# 输出示例:
2026-04-04T10:00:00Z [12345] INFO {dump} Connected to ArangoDB ‘tcp://192.168.1.51:8529’
2026-04-04T10:00:01Z [12345] INFO {dump} Writing dump to output directory
‘/backup/arangodb/fgedudb_20260404’
2026-04-04T10:00:02Z [12345] INFO {dump} Processed 2 collection(s), wrote 1000 byte(s)

# 备份特定集合
$ arangodump –server.endpoint tcp://192.168.1.51:8529 \
–server.database fgedudb \
–collection fgedu_users \
–output-directory /backup/arangodb/users_$(date +%Y%m%d)

# 压缩备份
$ cd /backup/arangodb
$ tar -czf fgedudb_$(date +%Y%m%d).tar.gz fgedudb_$(date +%Y%m%d)

7.2 使用arangorestore恢复

# 解压备份文件
# cd /backup/arangodb
# tar -xzf fgedudb_20260404.tar.gz

# 恢复数据库
$ arangorestore –server.endpoint tcp://192.168.1.51:8529 \
–server.database fgedudb \
–input-directory /backup/arangodb/fgedudb_20260404

# 输出示例:
2026-04-04T10:00:00Z [12346] INFO {restore} Connected to ArangoDB ‘tcp://192.168.1.51:8529’
2026-04-04T10:00:01Z [12346] INFO {restore} Restoring from directory
‘/backup/arangodb/fgedudb_20260404’
2026-04-04T10:00:02Z [12346] INFO {restore} Processed 2 collection(s), read 1000 byte(s)

# 恢复到新数据库
$ arangorestore –server.endpoint tcp://192.168.1.51:8529 \
–server.database fgedudb_new \
–input-directory /backup/arangodb/fgedudb_20260404 \
–create-database true

7.3 自动备份脚本

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

#!/bin/bash
BACKUP_DIR=/backup/arangodb
DATE=$(date +%Y%m%d)
LOG_FILE=/var/log/arangodb3/backup.log

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

# 执行备份
arangodump –server.endpoint tcp://192.168.1.51:8529 \
–server.database fgedudb \
–output-directory ${BACKUP_DIR}/fgedudb_${DATE} >> $LOG_FILE 2>&1

# 压缩备份
cd ${BACKUP_DIR}
tar -czf fgedudb_${DATE}.tar.gz fgedudb_${DATE}
rm -rf fgedudb_${DATE}

# 清理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/arangodb_backup.sh

# 配置定时任务
# crontab -e

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

风哥提示:生产环境建议配置自动备份脚本,定期执行备份。对于大型数据库,建议考虑使用热备份或增量备份策略。

8. 升级与迁移

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

8.1 版本升级

# 检查当前版本
$ arangod –version
3.11.6

# 执行完整备份
# 参见7.1节备份步骤

# 停止服务
# systemctl stop arangodb3

# 升级ArangoDB
# dnf update arangodb3

# 输出示例:
上次元数据过期检查:0:00:00 前,执行于 2026年04月04日 星期五 10时00分00秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
升级:
arangodb3 x86_64 3.12.0-1.0 arangodb 90 M

已升级:
arangodb3-3.12.0-1.0.x86_64

完毕!

# 启动服务
# systemctl start arangodb3

# 验证版本
$ arangod –version
3.12.0

# 检查数据库升级
$ arangosh –server.endpoint tcp://192.168.1.51:8529
127.0.0.1:8529@_system> db._databases();
[ “_system”, “fgedudb” ]

8.2 迁移到新服务器

# 在源服务器执行备份
# 参见7.1节备份步骤

# 传输备份文件
# scp -r /backup/arangodb new-server:/backup/

# 在新服务器安装ArangoDB
# 参见3.1节安装步骤

# 创建目标数据库
$ arangosh –server.endpoint tcp://192.168.1.52:8529
127.0.0.1:8529@_system> db._createDatabase(“fgedudb”);

# 恢复数据
$ arangorestore –server.endpoint tcp://192.168.1.52:8529 \
–server.database fgedudb \
–input-directory /backup/arangodb/fgedudb_20260404

# 验证迁移
127.0.0.1:8529@_system> db._useDatabase(“fgedudb”);
127.0.0.1:8529@fgedudb> db.fgedu_users.count();
1000

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

9. 生产环境实战案例

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

9.1 集群部署

# ArangoDB集群架构
# Agent: 3节点
# Coordinator: 2节点
# DBServer: 3节点

# 节点规划:
# fgedudb01 (192.168.1.51) – Agent, Coordinator, DBServer
# fgedudb02 (192.168.1.52) – Agent, Coordinator, DBServer
# fgedudb03 (192.168.1.53) – Agent, DBServer

# 启动Agent
$ arangod –server.endpoint tcp://0.0.0.0:8531 \
–agency.my-address tcp://192.168.1.51:8531 \
–agency.activate true \
–agency.size 3 \
–agency.supervision true \
–database.directory /data/arangodb/agent

# 启动DBServer
$ arangod –server.endpoint tcp://0.0.0.0:8530 \
–cluster.my-address tcp://192.168.1.51:8530 \
–cluster.my-role PRIMARY \
–cluster.agency-endpoint tcp://192.168.1.51:8531 \
–cluster.agency-endpoint tcp://192.168.1.52:8531 \
–cluster.agency-endpoint tcp://192.168.1.53:8531 \
–database.directory /data/arangodb/dbserver

# 启动Coordinator
$ arangod –server.endpoint tcp://0.0.0.0:8529 \
–cluster.my-address tcp://192.168.1.51:8529 \
–cluster.my-role COORDINATOR \
–cluster.agency-endpoint tcp://192.168.1.51:8531 \
–cluster.agency-endpoint tcp://192.168.1.52:8531 \
–cluster.agency-endpoint tcp://192.168.1.53:8531 \
–database.directory /data/arangodb/coordinator

# 检查集群状态
$ arangosh –server.endpoint tcp://192.168.1.51:8529
127.0.0.1:8529@_system> db._databases();
127.0.0.1:8529@_system> require(“@arangodb/cluster”).health();

9.2 性能监控

# 查看服务器统计
127.0.0.1:8529@fgedudb> db._adminStatistics();

# 查看集合统计
127.0.0.1:8529@fgedudb> db.fgedu_users.figures();

# 查看查询性能
127.0.0.1:8529@fgedudb> db._query(‘FOR doc IN fgedu_users RETURN doc’).explain();

# 查看慢查询
127.0.0.1:8529@fgedudb> db._profileQuery(‘FOR doc IN fgedu_users FILTER doc.age > 25 RETURN doc’);

# 系统监控命令
# 查看进程
# ps aux | grep arango

# 查看资源使用
# top -p $(pgrep arangod)

# 查看磁盘使用
# df -h /data/arangodb

9.3 性能优化

# 创建索引
127.0.0.1:8529@fgedudb> db.fgedu_users.ensureIndex({
… type: “hash”,
… fields: [“name”],
… unique: false
… });

# 创建复合索引
127.0.0.1:8529@fgedudb> db.fgedu_users.ensureIndex({
… type: “skiplist”,
… fields: [“city”, “age”]
… });

# 创建全文索引
127.0.0.1:8529@fgedudb> db.fgedu_users.ensureIndex({
… type: “fulltext”,
… fields: [“name”],
… minLength: 3
… });

# 配置查询优化
# vi /etc/arangodb3/arangod.conf

[query]
# 启用查询优化器
optimizer-rules = +all

# 设置查询超时
query-timeout = 60

# 启用查询缓存
query-cache-mode = on
query-cache-entries = 65536

# 重启服务
# systemctl restart arangodb3

风哥提示:ArangoDB集群部署需要先启动Agent,再启动DBServer,最后启动Coordinator。建议根据数据访问模式合理创建索引。

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

联系我们

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

微信号:itpux-com

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