Skip to main content

管理维护

配置参数

在 ArcGraph 图数据库中,配置参数分为系统变量(Variable)和系统配置项(Config)两种类型。本章节将详细介绍这两种类型参数,以及它们的配置方法。

  • 系统变量
    系统变量通常和用户 Session(会话)绑定,用于控制 Session 级别的语句行为。用户可以通过 SET 命令更改系统变量的值,支持设置全局(Global)和会话(Session)级别的变量。设置 Global 级别的系统变量后,在当前 Session 上不会生效,后续新建的任何 Session 都能读到新的变量值。设置 Session 级别的系统变量后,该设置仅对当前 Session 生效。
  • 系统配置项
    系统配置项主要用于运维,常用于控制机器及其上层应用的系统行为。这些配置项可以作为服务器节点的启动参数和创建参数,并且允许在服务器节点运行时进行修改以调整系统行为。配置项的作用域通常是全局性的,影响着当前整个服务器节点的运行表现。

更改系统变量

ArcGraph 图数据库可使用 SET 命令修改系统变量的值,通过 SHOW VARIABLES 语句可以查看系统变量的更改等级、当前值、默认值、允许设置的最小值、允许设置的最大值以及其他相关信息,详情请参见 SHOW VARIABLES 章节。

系统变量支持全局(Global)和会话(Session)两个级别的设置,具体区别如下:

  • 全局(Global)
    设置全局级别的系统变量即同时修改集群内所有服务器节点后,当前会话不会受到此修改的影响,而后续新建立的会话会继承这些更改。修改成功后立即生效且重启系统后仍会保存该修改。请注意,操作前请确认当前登录用户已拥有集群中所有图的 Traverse 权限,详情请参见 权限 章节。
  • 会话(Session)
    设置会话级别的系统变量后,仅对当前会话生效且该操作无需任何权限,修改成功后新的设置将立即生效。然而,如果会话中断(如用户主动断开连接或会话因超时自动结束),那么会话级别的配置将会丢失。

语法

SET SESSION|GLOBAL  <variable_name> = <String | Integer | Boolean>

详细说明

  • <variable_name>:系统变量名称,用于指定将要操作的系统变量的名称。
  • <String | Integer | Boolean>:表示将要设置的系统变量的值,它支持 StringIntegerBoolean 三种类型,修改时需与原系统变量值的类型保持一致。

示例 1
更改 SESSION 级别的系统变量,命令如下:

SET SESSION compiler_max_var_hops = 20;

示例 2
更改 GLOBAL 级别的系统变量,命令如下:

SET GLOBAL compiler_max_var_hops = 20;

示例 3

SET SESSION compiler_opt_enable_mat_pushdown = true;

示例 4

SET SESSION SET SESSION analytical_ap_coordinator_address_rest = "ap1-service:18000";

更改系统配置项

ArcGraph 图数据库可使用 ALTER CONFIG 命令修改系统配置项的值,修改成功后将立即在当前客户端连接的服务器节点上生效,不影响集群中的其他服务器节点,并且在重启系统后仍会保存该修改。请注意,该操作仅支持对更改等级(modify_level)为 DYNAMIC 的变量进行修改,通过 SHOW FULL CONFIGS 语句可以查看系统配置项的更改等级、当前值、默认值、允许设置的最小值、允许设置的最大值以及其他相关信息,详情请参见 SHOW CONFIGS 章节。操作前请确认当前登录用户已拥有集群中所有图的 All 权限,详情请参见 权限 章节。

语法

ALTER CONFIG  <config_name> = <String | Integer | Boolean>

详细说明

  • <config_name>:系统配置项名称,用于指定将要操作的系统配置项的名称。
  • <String | Integer | Boolean>:表示将要设置的系统配置项的值,它支持 StringIntegerBoolean 三种类型,修改时需与原系统配置项的值的类型保持一致。

示例
将当前服务器节点的 log_enable_audit_file 系统配置项的值设置为 true。命令如下:

ALTER CONFIG log_enable_audit_file = true;

配置项变更优先级

ArcGraph 图数据库的配置项变更优先级遵循“命令行优先于配置文件”原则,即服务器启动时指定的命令行参数具有最高优先级,并覆盖配置文件中对应的配置项。
当系统启动后,推荐使用 ALTER CONFIG 命令进行动态类配置项的调整,以实现高效且灵活的配置管理;并且通过 ALTER CONFIG 命令修改的配置项,在服务器重启之后依然生效。

监控指标

计数器指标介绍

计数器是 ArcGraph 图数据库监控体系中的核心组件,主要用于统计系统活动的基本数值。计数器能够实时显示在一定时间段内发生的特定事件(如查询)的次数,帮助用户评估性能、发现瓶颈并优化系统。计数器是评估图数据库健康状况、性能和可用性的关键工具。通过查看计数器指标,用户能够深入了解数据库的运行状态,从而进行有效的监控和优化,确保数据库的稳定运行。

说明:
在重启 ArcGraph 后,计数器各项指标的数据将被重置为初始状态,即从 0 开始重新计数。为避免数据丢失,在重启前请确保数据已保存。

计数器指标概览

ArcGraph 图数据库的计数器指标及其说明如下。

计数器指标名称说明
tp_ddl.create_graph_success创建图的数量。
tp_ddl.create_vertex_type_success创建点类型的数量。
tp_ddl.create_edge_type_success创建边类型的数量。
tp_ddl.rename_graph_success重命名图的数量。
tp_ddl.rename_schema_success重命名模式的数量。
tp_ddl.rename_property_success重命名属性的数量。
tp_ddl.drop_graph_success删除图的数量。
tp_ddl.truncate_graph_success清空图的数量。
tp_ddl.drop_vertex_type_success删除点类型的数量。
tp_ddl.drop_edge_type_success删除边类型的数量。
tp_ddl.drop_index_success删除索引的数量。
tp_dml.insert_vertexes插入点的数量。
tp_dml.insert_edges插入边的数量。
tp_dml.update_vertexes更新点的数量。
tp_dml.update_edges更新边的数量。
tp_dml.delete_vertexes删除点的数量。
tp_dml.delete_edges删除边的数量。
tp_dml.insert_vertex_time插入单个点所需的时间,单位为微秒(μs)。
tp_dml.insert_edge_time插入单个边所需的时间,单位为微秒(μs)。
tp_dml.update_vertex_time更新单个点所需的时间,单位为微秒(μs)。
tp_dml.update_edge_time更新单个边所需的时间,单位为微秒(μs)。
tp_dml.delete_vertex_time删除单个点所需的时间,单位为微秒(μs)。
tp_dml.delete_edge_time删除单个边所需的时间,单位为微秒(μs)。
db_query.error查询失败的数量。
db_session.create创建会话的数量。
db_session.kill终止会话的数量。
db_session.remove移除会话的数量(包括终止会话)。
db_session.create_query创建查询的数量。
db_session.close_query关闭查询的数量(包括终止查询)。
db_session.kill_query终止查询的数量。
db_transaction.trans_commit提交事务的数量。
db_transaction.trans_rollback事务回滚的数量。
db_grpc.meta_request服务器发送给元数据(Meta)的 gRPC 请求数量。
db_grpc.meta_error_request服务器发送给元数据(Meta)的 gRPC 请求失败的数量。

计数器指标查询

在 ArcGraph 图数据库中,可以通过使用 SHOW METRICS 语句或通过 HTTP 端口查询两种方式查询计数器指标的详细信息。关于如何使用 SHOW METRICS 语句查询计数器指标,详情请参见 SHOW METRICS 章节。本章节将重点介绍如何通过 HTTP 端口进行查询。

前提条件

  • 已获取 ArcGraph 图数据库服务器的 IP 地址和 HTTP 端口。默认情况下,HTTP 端口通常设置为 7001。
  • 已拥有支持 HTTP 的客户端,如浏览器、curl 等。

语法

curl http://localhost:7001/api/prometheus 

详细说明
localhost:表示服务器的 IP 地址,执行语句时请替换为实际的 ArcGraph 图数据库服务器的 IP 地址。

示例
ArcGraph 图数据库服务器的 IP 地址为 0.0.0.0,HTTP 端口为 7001,在支持 HTTP 的客户端中执行以下命令来查询此服务器下目前所有的计数器指标信息。命令如下:

curl http://0.0.0.0:7001/api/prometheus

返回结果示例如下:

arcGraph_counter{counter_name="db_session.close_query",describe="Total number of closed queries (including kills)",server_id="1"} 13
arcGraph_counter{counter_name="db_session.create",describe="Total number of sessions created",server_id="1"} 1
arcGraph_counter{counter_name="db_session.create_query",describe="Total number of queries created",server_id="1"} 13
arcGraph_counter{counter_name="db_transaction.trans_commit",describe="Total number of transaction commit",server_id="1"} 5
arcGraph_counter{counter_name="db_transaction.trans_rollback",describe="Total number of transaction rollback",server_id="1"} 2

结果说明:

参数说明
arcGraph_counter返回结果中,以 arcGraph_counter 为首的每一行都代表了一个计数器指标,该行末尾的参数表示该计数器指标的值,如 13
counter_name表示计数器指标名称。
server_id产生该计数器指标的服务器 ID。
describe该计数器指标的描述。

慢查询日志

在图数据库的日常运维与优化中,慢查询日志(简称慢日志)是不可或缺的一部分。它记录着执行缓慢的查询,帮助用户快速定位性能瓶颈,优化查询效率,确保数据库高效稳定运行。本章节将详细介绍 ArcGraph 图数据库中的慢查询日志功能及其配置方法。

配置慢查询日志

开启并配置慢查询日志功能后,ArcGraph 图数据库会自动将执行时间超过指定阈值的查询视为慢查询,并记录到慢查询日志文件中。以下是慢查询日志的关键配置项及其配置方法说明,请注意,这些配置一旦设置成功,将立即在当前客户端连接的服务器节点上生效,不会影响集群中的其他服务器节点,并且在重启系统后仍会保存该配置。

开启慢查询日志功能

通过在 ArcGraph 图数据库中修改 log_enable_slow_file 配置项来开启慢查询日志功能。默认情况下,ArcGraph 图数据库已开启该功能。

ALTER CONFIG log_enable_slow_file = true;

设置慢查询时间阈值

通过在 ArcGraph 图数据库中修改 long_query_time 配置项来设置慢查询的时间阈值(单位为秒)。默认阈值为 10.0 秒,可根据实际需求调整。

ALTER CONFIG long_query_time = 10;

设置文件存储路径和文件名

根据实际情况可以在 ArcGraph 图数据库的 server_config.toml 配置文件中,通过修改 [log] 部分的 slow_file_path(文件存放路径)、slow_file_name(文件名)配置项,自定义慢查询日志文件的存储路径和文件名。
[log] 部分内容示例如下,修改前请确认已获取 server_config.toml 配置文件并拥有修改权限。

[log]

slow_file_path = "./log/slow"
slow_file_name = "slow.log"

ArcGraph 图数据库的慢查询日志文件默认存放在 ./log/slow/ 目录下,文件名默认以 slow.log 为首并遵循日期命名规则,如 slow.log.2024-07-17,可通过 SHOW CONFIGS 语句查看这些信息。

查看慢查询日志配置

您可以在 ArcGraph 图数据库中使用以下命令查看慢查询日志的相关配置。

  • 查看慢查询日志功能是否已开启:

    SHOW CONFIGS LIKE "log_enable_slow_file";

    若返回结果为 true,则表示已开启慢查询日志功能。

  • 查看慢查询的时间阈值:

    SHOW CONFIGS LIKE "long_query_time";

    返回结果中显示当前设置的慢查询时间阈值。

  • 查看慢查询日志文件的存放路径和文件名:

    # 查看慢查询日志文件的存放路径
    SHOW CONFIGS LIKE "log_slow_file_path";

    # 查看慢查询日志文件的文件名
    SHOW CONFIGS LIKE "log_slow_file_name";

查看慢查询日志详情

慢查询日志功能配置完成后,ArcGraph 图数据库将自动记录慢查询日志。您可以在指定的路径下找到慢查询日志文件(默认存放在 ./log/slow/ 目录下,文件名遵循日期命名规则,如 slow.log.2024-07-17),并使用文本编辑器或命令行工具查看其内容。

ArcGraph 图数据库会将同一天内的所有慢查询日志追加到同一个文件中(如 slow.log.2024-07-17),从而简化了日志管理和查询过程。若慢查询日志配置发生变更,新的日志条目仍会按照时间顺序追加到相应的日志文件中,而不会覆盖旧日志信息。

示例

慢查询日志内容示例如下:

2024-07-17T07:25:21.940693Z  INFO  QueryService IO-worker ThreadId(06) slow_log: src/server/src/service/grpc_service.rs:405: 7213797935748882098 graph name: "ARC_GRAPH_TEST" stmt: "MATCH (n:Person)-[:KNOWS]->(m) RETURN n, m;"  query_time: 10.016241313s

详细说明

参数说明
2024-07-17T07:25:21.940693Z表示生成这条慢查询日志的具体时间。
QueryService IO-worker ThreadId(06)表示查询服务 IO 工作线程,QueryService IO-worker ThreadId(06) 表示这条日志是由查询服务的 IO 工作线程(编号为 06)产生的。
slow_log慢查询日志标签,表示该条日志为慢查询日志。
7213797935748882098表示会话 ID。
graph name表示执行查询时所使用的图的名称,如示例中的 ARC_GRAPH_TEST
stmt表示执行的 Cypher 查询语句。
query_time表示查询执行的具体持续时间(单位为秒),如示例中的 10.016241313s

相关操作

  • 查看系统配置:更多查看系统配置的操作,请参见 SHOW CONFIGS 章节。
  • 修改系统配置:更多修改系统配置的操作,请参见 配置参数 章节。

审计日志

在 ArcGraph 图数据库中,审计日志是保障系统安全、监控用户行为及排查问题的重要功能。本章节将详细介绍 ArcGraph 图数据库中的审计日志功能及其配置方法。

配置审计日志

开启并配置审计日志功能后,ArcGraph 图数据库会将符合审计规则的操作自动记录在审计日志文件中。以下是审计日志的关键配置项及其配置方法说明,请注意,这些配置一旦设置成功,将立即在当前客户端连接的服务器节点上生效,不会影响集群中的其他服务器节点,并且在重启系统后仍会保存该配置。

开启审计日志功能

通过在 ArcGraph 图数据库中修改 log_enable_audit_file 配置项来开启审计日志功能。默认情况下,ArcGraph 图数据库已开启该功能。

ALTER CONFIG log_enable_audit_file = true;

设置审计规则

ArcGraph 图数据库支持高度可配置的审计日志功能,允许用户根据实际需要灵活设置审计规则,以满足不同场景下的审计需求。以下是审计规则的关键配置项及其说明,请注意,不同的审计规则之间采用逻辑与(AND)关系,即只有当一条日志记录同时满足所有指定的审计规则时,才会被记录为审计日志,而同一审计规则可配置多个审计条件(使用英文逗号“;”分隔),这些条件之间采用逻辑或(OR)关系,满足任意条件即可触发审计。

SQL 类型审计

通过在 ArcGraph 图数据库中修改 audit_sql_type 配置项来指定需要审计的 SQL 操作类型。支持设置的操作类型包括:query(查询)、show(显示)、dml(如插入、更新、删除数据等操作)、ddl(如创建、修改、删除图 Schema 等操作)、login(登录)等。默认值为空,表示对所有 SQL 类型进行审计。

  • 示例 1
    若只需审计查询(query)操作,可执行如下命令:

    ALTER CONFIG audit_sql_type = "query";
  • 示例 2
    若需审计查询(query)和显示(show)操作,可执行如下命令:

    ALTER CONFIG audit_sql_type = "query;show";
图审计

通过在 ArcGraph 图数据库中修改 audit_graph_name 配置项来指定需要审计的具体图。默认值为空,表示对所有图进行审计。

示例
若只需审计图 ARC_GRAPH_TEST 中的操作,可执行如下命令:

ALTER CONFIG audit_graph_name = "ARC_GRAPH_TEST";
客户端审计

通过在 ArcGraph 图数据库中修改 audit_client_ip 配置项来指定需要审计的客户端 IP 地址。默认值为空,表示对所有客户端的操作进行审计。

示例
若只需审计客户端 IP 地址为 127.0.0.1 的操作,可执行如下命令:

ALTER CONFIG audit_client_ip = "127.0.0.1";
用户审计

通过在 ArcGraph 图数据库中修改 audit_user_name 配置项来指定需要审计的用户名。默认值为空,表示对所有用户的操作进行审计。

示例
若只需审计用户 arcgraph 的操作,可执行如下命令:

ALTER CONFIG audit_user_name = "arcgraph";
时间审计

通过在 ArcGraph 图数据库中修改 audit_query_time 配置项来指定开始审计的时间(该时间需以时间戳格式提供)。默认值为 -1.0,表示对开启审计日志功能后的所有时间点的操作进行审计。

示例
若需审计用户在时间戳“1721379600”之后执行的操作,可执行如下命令:

ALTER CONFIG audit_query_time = 1721379600;

设置文件存储路径和文件名

根据实际情况可以在 ArcGraph 图数据库的 server_config.toml 配置文件中,通过修改 [log] 部分的 audit_file_path(文件存放路径)、audit_file_name(文件名)配置项,自定义审计日志文件的存储路径和文件名。
[log] 部分内容示例如下,修改前请确认已获取 server_config.toml 配置文件并拥有修改权限。

[log]

audit_file_path = "./log/audit"
audit_file_name = "audit.log"

ArcGraph 图数据库的审计日志文件默认存放在 ./log/audit/ 目录下,文件名默认以 audit.log 为首并遵循日期命名规则,如 audit.log.2024-07-17,可通过 SHOW CONFIGS 语句查看这些信息。

查看审计日志配置

您可以在 ArcGraph 图数据库中使用以下命令查看审计日志的相关配置。

查看审计日志整体配置

在 ArcGraph 图数据库中执行如下命令,查看与审计日志相关的所有配置项的设置情况:

SHOW CONFIGS LIKE "%audit%";

查看功能是否已开启

在 ArcGraph 图数据库中执行如下命令,查看功能是否已开启:

SHOW CONFIGS LIKE "log_enable_audit_file";

若返回结果为 true,则表示已开启审计日志功能。

查看审计规则

您可以在 ArcGraph 图数据库中使用以下命令查看当前配置的审计规则,若返回结果为空(审计时间为“-1.0”)时,表示不对该规则进行审计过滤:

  • 查看审计的 SQL 类型:

    SHOW CONFIGS LIKE "audit_sql_type";
  • 查看审计的图名称:

    SHOW CONFIGS LIKE "audit_graph_name";
  • 查看审计的客户端 IP 地址:

    SHOW CONFIGS LIKE "audit_client_ip";
  • 查看审计的用户名:

    SHOW CONFIGS LIKE "audit_user_name";
  • 查看审计开始时间:

    SHOW CONFIGS LIKE "audit_query_time";

查看文件存放路径和文件名

在 ArcGraph 图数据库中执行如下命令,查看审计日志文件的存放路径和文件名:

# 查看审计日志文件的存放路径
SHOW CONFIGS LIKE "log_audit_file_path";

# 查看审计日志文件的文件名
SHOW CONFIGS LIKE "log_audit_file_name";

查看审计日志详情

审计规则配置完成后,ArcGraph 图数据库将根据设定的规则自动记录审计日志。用户可以在指定的路径下找到审计日志文件(默认存放在 ./log/audit/ 目录下,文件名遵循日期命名规则,如 audit.log.2024-07-17),并使用文本编辑器或命令行工具查看其内容。

ArcGraph 图数据库将在同一天内的所有审计日志追加到同一个文件中(如 audit.log.2024-07-17),从而简化了日志管理和查询过程。若审计规则发生变更,新的日志条目仍会按照时间顺序追加到相应的日志文件中,而不会覆盖旧日志信息。

示例

审计日志内容示例如下:

2024-07-17T10:47:10.802723Z  INFO  Background IO-worker ThreadId(29) audit: src/job_manager/src/job_manager.rs:494: cluster 1 graph 1031 job id 4516252804192575588 type - status done job RawJobSpec { cluster_id: 1, graph_id: 1031, job_id: 4516252804192575588, job_type: DropGraph, job_json_str: "{\"job_id\":4516252804192575588,\"graph_id\":1031,\"partition_ids\":[0],\"graph_name\":\"ARC_GRAPH_TEST\",\"stmt_ctx\":{\"id\":7213797935748881495,\"cluster_id\":1,\"graph_id\":1031,\"txn_id\":7213797935748882124,\"stmt_ts\":451205599266603305,\"stmt_type\":{\"Job\":\"DropGraph\"},\"depend_objects\":{\"graph_id\":1031,\"schema\":[]},\"session_variable\":{\"session_id\":0,\"computing_batch_send_size\":1000,\"request_timeout\":300000,\"computing_batch_neighbor_size\":20000,\"computing_neighbor_task_num\":10,\"compiler_max_var_hops\":8,\"computing_batch_size\":20000,\"computing_batch_scan_size\":20000,\"compiler_opt_enable_index_scan\":true,\"compiler_opt_enable_mat_pushdown\":true,\"compiler_enable_export_optsteps\":false,\"compiler_enable_apply_batch\":false,\"computing_enable_property\":false,\"computing_enable_profile_peek_data\":false,\"session_tti\":600},\"read_follower\":false,\"coordinator_host\":null,\"store_ts\":451205599266603305}}", partition_id: None, job_name: "ARC_GRAPH_TEST", desc: None, priority: None, preceding_job_id: None }

详细说明

参数说明
2024-07-17T10:47:10.802723Z表示生成这条审计日志的具体时间。
Background IO-worker ThreadId(29)线程 ID,即执行日志记录操作的线程标识符。
audit审计日志标签,表示该条日志为审计日志。

相关操作

  • 查看系统配置:更多查看系统配置的操作,请参见 SHOW CONFIGS 章节。
  • 修改系统配置:更多修改系统配置的操作,请参见 配置参数 章节。

Profile 分析

Profile 功能是 ArcGraph 图数据库中一项专业的性能分析功能。它能够输出用户单个请求的详细运行指标,包括每个算子的执行时间、输入输出数据行数等。在进行性能分析、查询调优和 ArcGraph 的调试与开发时,Profile 功能发挥着重要作用,它能够帮助开发人员识别性能瓶颈,优化查询逻辑,进而提升数据库的整体性能。请注意,当前版本中 Profile 功能仅限于与 MATCH 语句一起使用。

语法

PROFILE <query_statement>

详细说明

  • <query_statement>:表示具体的 MATCH 查询语句。
  • 使用 Profile 功能时,系统会实际执行查询语句,并在执行完成后统计每个算子的性能指标。
  • 只需通过正常的客户端连接即可运行带有 Profile 的查询,无特殊权限要求。

示例

PROFILE 
MATCH ( m: person{id:1})
RETURN m;

返回结果示例如下:

+------------------------------------------------------------------+----------------+---------------------+------------+-------------+--------------------------+
| pop_id | processor_name | process_elapsed(ms) | input_rows | output_rows | waiting_data_elapsed(us) |
+==================================================================+================+=====================+============+=============+==========================+
| 3 | Project | 0 | 1 | 1 | 0
|
+------------------------------------------------------------------+----------------+---------------------+------------+-------------+--------------------------+
| 2 | Materialize | 0 | 1 | 1 | 0
|
+------------------------------------------------------------------+----------------+---------------------+------------+-------------+--------------------------+
| 1 | VertexLookup | 0 | 0 | 1 | 0
|
+------------------------------------------------------------------+----------------+---------------------+------------+-------------+--------------------------+
| Summary: master receives first batch after 0 ms, total batches 1 | #skip | #skip | #skip | #skip | #skip |
+------------------------------------------------------------------+----------------+---------------------+------------+-------------+--------------------------+

结果说明:

参数说明
pop_id算子的唯一标识符。
processor_name算子的名称。
process_elapsed(ms)算子同步/异步处理逻辑消耗的时间,单位为毫秒(ms)。
input_rows算子的输入行数。
output_rows算子的输出行数。
waiting_data_elapsed(us) 算子等待数据的时间,即上一个算子推送数据到下一个算子获得该数据所经历的时间,单位为微秒(us)。
master receives first batch after第一批查询结果到达 master 所经历的时间(从查询请求到达 master 开始计时)。
total batchesmaster 收到的 batch 总数。

数据库会话

在图数据库中,Session(会话) 是指用户与数据库之间建立的通讯句柄(Handle)。每次用户连接到数据库时,都会启动一个新的会话,该会话将持续到用户断开连接或会话超时为止。Session 是用户执行一系列数据库操作的上下文,包括但不限于查询、插入、更新和删除等。

查看会话

在 ArcGraph 图数据库中支持使用 SHOW 语句查看会话信息,详情请参见 SHOW SESSIONS 章节。

  • 查看所有节点会话
    使用 SHOW PROCESSLISTSHOW SESSIONS 语句,查看整个集群所有服务器节点当前正在进行的会话信息,包括但不限于会话 ID、登录用户名称、会话当前正在执行的语句、会话当前正在执行语句的状态等。
  • 查看当前会话
    使用 SHOW CURRENT SESSION 语句查看当前会话的详细信息,包括但不限于会话 ID、会话所在的服务器 ID 等。

终止会话

在 ArcGraph 图数据库中可使用 KILL <session_id> 语句终止指定会话,以释放资源。请注意,会话终止后无法恢复,请谨慎操作。

语法

KILL <session_id>

详细说明

  • 在开始操作前,请确保当前登录用户拥有执行此操作所需权限的角色。有关权限的详细说明,详情请参见 权限 章节。
  • <session_id>:会话 ID,唯一标识一个会话,可通过 SHOW SESSIONS 语句获取,详情请参见 SHOW SESSIONS 章节。

示例
终止会话 ID 为“7135921916199706619”的会话,命令如下:

KILL 7135921916199706619;

内存管理

前提条件

在开始操作前,请确保当前登录用户是超级管理员用户,拥有执行下列操作所需的权限。有关权限的详细说明,详情请参见 权限 章节。

加载图到内存

在 ArcGraph 图数据库中支持使用 ALTER SYSTEM 命令将指定图的数据强制加载到内存引擎(Memory Engine)中。在加载过程中,系统会对该图进行加锁操作,以确保数据的一致性,同时会阻塞对该图的读写操作,直到加载完成并释放锁为止。请注意,该命令只在当前服务器节点中生效,不影响集群中的其他服务器节点。

语法

ALTER SYSTEM LOAD GRAPH <graph_name>

详细说明

参数说明
<graph_name>图名称,用于指定将要操作的图的名称。

示例
将“LDBC_SNB_SF01”图加载到内存引擎中,命令如下:

ALTER SYSTEM LOAD GRAPH LDBC_SNB_SF01;

清除内存中的图

在 ArcGraph 图数据库中支持使用 ALTER SYSTEM 命令将指定图的数据从内存引擎中清除,以释放内存资源。在数据清除过程中,系统会对该图进行加锁操作,以确保数据的一致性,同时会阻塞对该图的读写操作,直到加载完成并释放锁为止。请注意,该命令只在当前服务器节点中生效,不影响集群中的其他服务器节点。

语法

ALTER SYSTEM UNLOAD GRAPH <graph_name>

详细说明

参数说明
<graph_name>图名称,用于指定将要操作的图的名称。

示例
LDBC_SNB_SF01图从内存引擎中清除,命令如下:

ALTER SYSTEM UNLOAD GRAPH LDBC_SNB_SF01;

相关操作

自 ArcGraph v2.1.2 版本起,ArcGraph 图数据库支持使用 SHOW GRAPHS 相关语句查看系统中图的缓存、统计等信息,详情请参见对应章节。

存储管理

前提条件

在开始操作前,请确保当前登录用户是超级管理员用户,拥有执行下列操作所需的权限。有关权限的详细说明,详情请参见 权限 章节。

ALTER SYSTEM COMPACT

当使用 RocksDB 作为底层存储时,ArcGraph 图数据库支持使用 ALTER SYSTEM COMPACT 命令管理集群中的数据,包括合并数据和清理过期数据。通过运行 SHOW CONFIGS LIKE "release_config_release_mode";命令,若 value 显示为 ReplicaSetEdition,则表明当前系统正使用 RocksDB 作为底层存储。

语法

ALTER SYSTEM COMPACT [MAX_SUBCOMPACTIONS = <max_subcompactions>]

详细说明

参数说明
[MAX_SUBCOMPACTIONS = <max_subcompactions>](可选)用于指定执行数据合并与清理操作时的最大并发数,该参数值默认设置范围为 1~2 且必须为正整数,如有需要可以在配置文件中通过修改 rocksdb_max_subcompactions 参数来调整该参数的最大值。若省略,则默认该参数值为 1。

说明:

  • 命令的执行时间可能因数据量的大小和数据分布的不同而有所不同,请以实际情况为准。
  • 执行该命令时,系统会根据操作需求自动判断是进行数据合并还是清理,无需用户进行额外操作。
  • 该命令只在当前服务器节点中生效,不影响集群中的其他服务器节点。

示例 1
使用默认并发数对服务器节点进行数据合并与清理操作,命令如下:

ALTER SYSTEM COMPACT;

示例 2
将最大并发数设置为“2”以加速对服务器节点进行的数据合并与清理操作,命令如下:

ALTER SYSTEM COMPACT MAX_SUBCOMPACTIONS = 2;

ALTER SYSTEM CHECKPOINT

ArcGraph 图数据库支持使用 ALTER SYSTEM CHECKPOINT 命令触发数据落盘操作,即将内存中的数据持久化存储到磁盘上,以确保数据的持久性和安全性。请注意,该命令只在当前服务器节点中生效,不影响集群中的其他服务器节点。

语法

ALTER SYSTEM CHECKPOINT

示例
执行如下命令触发数据落盘操作。

ALTER SYSTEM CHECKPOINT;

高可用

查看服务器

ArcGraph 图数据库支持使用 SHOW SERVERS 语句查看当前 ArcGraph 的服务器信息,包括服务器 ID、名称、IP 地址、服务器状态等关键信息。语法如下,详情请参见 SHOW SERVERS 章节。

语法

SHOW SERVERS

查询图 Leader 信息

ArcGraph 图数据库支持使用 SHOW 语句查询图数据库中各图的分区 Leader 信息,包括但不限于分区 ID、服务器 ID、服务地址和副本角色等。

语法

SHOW GRAPH PARTITION [LEADER] [LIKE <'graph_name'>]

详细说明

  • [LEADER]:(可选)关键字,用于明确指定将要查看的类型是图分区 Leader 信息。若省略,将返回所有分区的相关信息。请注意,仅 ArcGraph >= v2.1.1 版本支持省略此参数。
  • [LIKE <'graph_name'>]:(可选)用于指定关键字并按关键字过滤查询结果。如果未指定关键字,则返回所有图的分区信息。其中,<'graph_name'> 用于指定要查询的图名称,需与图数据库中的图名保持一致。请注意,仅 ArcGraph >= v2.1.1 版本支持此参数。

示例 1
查询所有图的分区信息,命令如下

SHOW GRAPH PARTITION;

返回结果示例如下:

+---------------------+----------+--------------+-----------+-----------------+---------+--------------+
| graph_name | graph_id | partition_id | server_id | service_address | peer_id | replica_role |
+=====================+==========+==============+===========+=================+=========+==============+
| _SYSTEM | 1 | 0 | 1 | 127.0.0.1:8182 | 1 | leader |
+---------------------+----------+--------------+-----------+-----------------+---------+--------------+
| _SYSTEM_INFORMATION | 3 | 0 | 1 | 127.0.0.1:8182 | 1 | leader |
+---------------------+----------+--------------+-----------+-----------------+---------+--------------+

示例 2
查询“_SYSTEM”图的 Leader 分区信息,命令如下:

SHOW GRAPH PARTITION LEADER LIKE '_SYSTEM';

返回结果示例如下:

+------------+----------+--------------+-----------+-----------------+---------+--------------+
| graph_name | graph_id | partition_id | server_id | service_address | peer_id | replica_role |
+============+==========+==============+===========+=================+=========+==============+
| _SYSTEM | 1 | 0 | 1 | 127.0.0.1:8182 | 1 | leader |
+------------+----------+--------------+-----------+-----------------+---------+--------------+

切换 Leader

在图数据库的集群中,Leader 节点负责集群的数据处理、同步和故障恢复,确保集群的稳定运行和数据的一致性,而 Follower 节点主要负责接收和同步 Leader 节点的数据更新。自 ArcGraph v2.1.1 版本起,ArcGraph 图数据库支持通过 ALTER SYSTEM 命令手动切换集群的 Leader 节点。请注意,在开始操作前,需确保当前登录用户是超级管理员用户,拥有执行下列操作所需的权限,有关权限的详细说明,详情请参见 权限 章节。

语法

ALTER SYSTEM SWITCH LEADER [TO <peer_id>]

详细说明

参数说明
[TO <peer_id>](可选)指定集群中的某个 Follower 节点为新的 Leader 节点。若省略,则系统将随机选择一个健康的 Follower 节点进行提升。
<peer_id>服务器节点的唯一标识符,需确保其为集群中有效的 Follower 节点。

说明:

  • 切换 Leader 节点操作必须在当前集群的 Leader 节点上执行。
  • 在切换 Leader 节点前请确保集群中至少有一个健康的 Follower 节点。
  • 该命令在当前集群范围内生效。

示例 1
由系统随机选择一个健康的 Follower 节点提升为新的 Leader 节点,命令如下:

ALTER SYSTEM SWITCH LEADER;

示例 2
peer_id 为“1”的服务器节点提升为新的 Leader 节点,命令如下:

ALTER SYSTEM SWITCH LEADER TO 1;

添加节点

自 ArcGraph v2.1.1 版本起,ArcGraph 图数据库支持通过 ALTER SYSTEM 命令向集群动态添加新的服务器节点,以扩展集群的规模和性能。请注意,在开始操作前,需确保当前登录用户是超级管理员用户,拥有执行下列操作所需的权限,有关权限的详细说明,详情请参见 权限 章节。

语法

ALTER SYSTEM ADD HOST <"host_ip_address:host_raft_port:host_id">

详细说明

参数说明
<"host_ip_address:host_raft_port:host_id">指定新节点的 IP 地址、Raft 协议的端口号和节点 ID。

说明:

  • 添加节点操作必须在当前集群的 Leader 节点上执行。
  • 在添加新节点前,请确保新节点满足 ArcGraph 图数据库的最低硬件和软件要求,并且已经正确配置了网络连接和防火墙设置,以确保节点能够成功加入集群并参与数据同步。
  • 该命令在当前集群范围内生效。

示例
向集群中添加一个 IP 地址为“127.0.0.1”,Raft 端口为“6001”,节点 ID 为“4”的节点,命令如下:

ALTER SYSTEM ADD HOST "127.0.0.1:6001:4";

删除节点

自 ArcGraph v2.1.1 版本起,ArcGraph 图数据库支持通过 ALTER SYSTEM 命令从集群中移除现有的服务器节点。请注意,在开始操作前,需确保当前登录用户是超级管理员用户,拥有执行下列操作所需的权限,有关权限的详细说明,详情请参见 权限 章节。

语法

ALTER SYSTEM REMOVE HOST <"host_ip_address:host_raft_port:host_id">

详细说明

参数说明
<"host_ip_address:host_raft_port:host_id">指定待删除节点的 IP 地址、Raft 协议的端口号和节点 ID。

说明:

  • 删除节点操作必须在当前集群的 Leader 节点上执行。
  • 集群中应至少保留一个节点。
  • 在执行删除节点操作前,请注意备份相关数据,因为节点及其数据一旦删除,无法恢复。请谨慎操作。
  • 该命令在当前集群范围内生效。

示例
从集群中删除一个 IP 地址为“127.0.0.1”,Raft 端口为“6001”,节点 ID 为“1”的节点,命令如下:

ALTER SYSTEM REMOVE HOST "127.0.0.1:6001:1";

备份恢复

版本

查看当前版本

在 ArcGraph 图数据库中使用 SHOW VERSION 语句查看当前 ArcGraph 版本,语法如下,详情请参见 SHOW VERSION 章节。

语法

SHOW VERSION

查看当前部署模式

在 ArcGraph 图数据库中使用 SHOW SERVERS 语句查看当前 ArcGraph 的部署模式,语法如下。更多关于服务器的详细信息,请参见 SHOW SERVERS 章节。

语法

SHOW SERVERS

详细说明
在 ArcGraph 中运行此语句,通过返回结果判断部署模式。

  • 如果命令返回一条结果,那么您正在使用的是单机版 ArcGraph。
  • 如果命令返回三条结果,那么您正在使用的是敏捷版 ArcGraph。