数据库运行
本文档主要描述 TuGraph 服务的运行模式、启动、停止和重启的操作,以及 TuGraph 的服务配置参数、配置文件格式和命令行配置参数。
1.运行模式
TuGraph 可以作为前台普通进程启动,也可以作为后台守护进程启动。
当作为普通进程运行时,TuGraph 可以直接将日志打印到终端,这在调试服务器配置时非常方便。但是,由于前台进程在终端退出后被终止,因此用户须确保在 TuGraph 服务器处于运行状态时,终端保持打开状态。另一方面,在守护进程模式下,即使启动它的终端退出,TuGraph 服务器也可以继续运行。因此,在长时间运行的服务器下推荐以守护进程模式启动 TuGraph 服务器。
1.1.运行普通进程
lgraph_server -d run命令可以将 TuGraph 作为普通进程运行。普通进程依赖命令行终端,因此终端结束时,TuGraph 进程也会自动终止。普通进程模式配合--log_dir ""可以将进程日志直接输出到终端,因此更方便调试。
启动命令:
$ ./lgraph_server -c lgraph_standalone.json --log_dir ""
普通模式的运行输出示例:
20200508120723.039: ********************************************************************** 20200508120723.039: * TuGraph Graph Database v3.4.0 * 20200508120723.040: * * 20200508120723.041: * Copyright(C) 2023 Ant Group. All rights reserved. * 20200508120723.041: * * 20200508120723.044: * Licensed host: hostname threads:0, ha:0 * 20200508120723.044: ********************************************************************** 20200508120723.044: Server is configured with the following parameters: 20200508120723.045: data directory: ./lgraph_db 20200508120723.046: enable ha: 0 20200508120723.046: async: 0 20200508120723.047: host: 127.0.0.1 20200508120723.047: REST port: 7071 20200508120723.048: RPC port: 9091 20200508120723.048: enable rpc: 0 20200508120723.051: optimistic txn: 0 20200508120723.059: verbose: 1 20200508120723.074: log_dir: 20200508120723.074: ssl_auth: 0 20200508120723.075: resource dir: ./resource 20200508120723.077: Loading DB state from disk 20200508120723.110: [RestServer] Listening for REST on port 7090 20200508120723.110: [LGraphService] Server started.
普通进程模式下,用户可以通过按 CTRL+C 来提前终止 TuGraph 进程。
1.2.运行进程守护模式
启动命令:
$ ./lgraph_server -d start -c lgraph_daemon.json
守护模式的运行输出示例:
Starting lgraph... The service process is started at pid 12109.
此命令启动的 TuGraph 服务器进程为守护进程,它将从文件lgraph_daemon.json加载相关配置。服务器启动后,它将开始在日志文件中打印日志,之后可用该日志文件确定服务器的状态。
2.服务操作
2.1.启动服务
TuGraph 需要通过 lgraph_server -d start 命令行启动,启动命令示例如下:
$ ./lgraph_server -d start -c lgraph_daemon.json Starting lgraph... The service process is started at pid 12109.
此命令启动的 TuGraph 服务器进程为守护进程,它将从文件lgraph_daemon.json加载相关配置。服务器启动后,它将开始在日志文件中打印日志,之后可用该日志文件确定服务器的状态。
2.2.停止服务
用户可以使用kill命令以及lgraph_server -d stop命令停止 TuGraph 守护进程。由于可能在同一台计算机上运行多个 TuGraph 服务器进程,因此我们使用.pid文件区分不同的服务器进程,该文件写入启动该进程的工作目录。因此,需要在相同工作目录中运行lgraph_server-d stop命令,以停止正确的服务器进程。
user@host:~/tugraph$ ./lgraph_server -d start -c lgraph_standalone.json 20200508122306.378: Starting lgraph... 20200508122306.379: The service process is started at pid 93. user@host:~/tugraph$ cat ./lgraph.pid 93 user@host:~/tugraph$ ./lgraph_server -d stop -c lgraph_standalone.json 20200508122334.857: Stopping lgraph... 20200508122334.857: Process stopped.
2.3.重启服务
用户也可以通过lgraph_server -d restart来重启 TuGraph 服务:
$ ./lgraph_server -d restart Stopping lgraph... Process stopped. Starting lgraph... The service process is started at pid 20899.
3.服务配置
TuGraph 服务器在启动时从配置文件和命令行选项加载配置,如果在配置文件和命令行中同一选项指定了不同的值,将优先使用命令行中指定的值。
3.1.配置参数
具体参数及其类型描述如下:
| 参数名 | 参数说明 | |
|---|---|---|
| directory | 字符串 | 数据文件所在目录。如果目录不存在 ,则自动创建。默认目录为 /var/lib/lgraph/data。 |
| async | 布尔值 | 是否使用异步模式。异步模式可以减少磁盘 IO 开销,但是在机器断电等极端情况下可能丢失数据。默认值为 false。 |
| host | 字符串 | REST 服务器监听时使用的地址,一般为服务器的 IP 地址。默认地址为 0.0.0.0。 |
| port | 整型 | REST 服务器监听时使用的端口。默认端口为 7070。 |
| enable_rpc | 布尔值 | 是否使用 RPC 服务。默认值为 0。 |
| rpc_port | 整型 | RPC 及 HA 服务所用端口。默认端口为 9090。 |
| enable_ha | 布尔值 | 是否启动高可用模式。默认值为 false。 |
| ha_log_dir | 字符串 | HA 日志所在目录,需要启动 HA 模式。默认值为空。 |
| master | 字符串 | 根据 host1:port1,host2:port2 初始化节点。默认值为空。 |
| verbose | 整型 | 日志输出信息的详细程度。可设为 0,1,2,值越大则输出信息越详细。默认值为 1。 |
| log_dir | 字符串 | 日志文件所在的目录。默认目录为 /var/log/lgraph/。 |
| ssl_auth | 布尔值 | 是否使用 SSL 安全认证。当开启时,REST 服务器只开启 HTTPS 服务。默认值为 false。 |
| web | 字符串 | web 文件(包含可视化部分)所在目录。默认目录为 /usr/local/share/lgraph/resource。 |
| server_cert | 字符串 | 在 SSL 认证开启时,服务器所使用的 certificate 文件路径。默认路径为 /usr/local/etc/lgraph/server-cert.pem。 |
| server_key | 字符串 | 在 SSL 认证开启时,服务器所使用的公钥文件。默认目录为 /usr/local/etc/lgraph/server-key.pem。 |
| enable_audit_log | 布尔值 | 是否启用审计日志,默认值为 false。 |
| audit_log_expire | 整型 | 启用审计日志时,日志的有效时间(小时),超时自动清理,值为 0 时表示不清理。默认值为 0。 |
| audit_log_dir | 字符串 | 启用审计日志时,日志文件的存放目录。默认目录为 $directory/audit_log。 |
| load_plugins | 布尔值 | 启动服务时导入所有存储过程。默认值为 1。 |
| optimistic_txn | 布尔值 | 为 Cypher 开启乐观多线程写入事务。默认为 0。 |
| disable_auth | 布尔值 | 关闭 REST 验证。默认为 0。 |
| snapshot_interval | 整型 | 快照间隔(以秒为单位)。 默认值为 86400。 |
| heartbeat_interval_ms | 整型 | 心跳间隔(以毫秒为单位)。 默认值为 1000。 |
| heartbeat_failure_duration_ms | 整型 | 心跳超时且节点下线间隔(以毫秒为单位)。默认为 60000。 |
| node_dead_duration_ms | 整型 | 节点被视为完全死亡并从列表中删除的间隔(以毫秒为单位)。默认值为 120000。 |
| enable_ip_check | 布尔值 | 允许 IP 白名单,默认值为 0。 |
| idle_seconds | 整型 | 子进程可以处于空闲状态的最大秒数。 默认值为 600。 |
| enable_backup_log | 布尔值 | 是否启用备份日志记录。 默认值为 0。 |
| backup_log_dir | 字符串 | 存储备份文件的目录。 默认值为空。 |
| snapshot_dir | 字符串 | 存储快照文件的目录。 默认值为空。 |
| thread_limit | 整型 | 同时使用的最大线程数。 默认值为 0,即不做限制,以 license 为准。 |
| help | 布尔值 | 打印此帮助消息。 默认值为 0。 |
3.2.服务器配置文件
TuGraph 的配置文件以 JSON 格式存储。建议将大多数配置存储在配置文件中,并且仅在需要时使用命令行选项临时修改某些配置参数。
一个典型的配置文件如下:
{
"directory": "/var/lib/lgraph/data",
"port": 7090,
"rpc_port": 9090,
"enable_ha": false,
"verbose": 1,
"log_dir": "/var/log/lgraph/",
"ssl_auth": false,
"server_key": "/usr/local/etc/lgraph/server-key.pem",
"server_cert": "/usr/local/etc/lgraph/server-cert.pem"
}




