监控数据库企业版
除了前几节中描述的系统级指标和日志外,要监控集群中托管的单个数据库的状态,请使用 SHOW DATABASES 命令。
列出数据库
语法
SHOW DATABASES
返回
| 名称 | 类型 | 描述 |
|---|---|---|
|
字符串 |
数据库的易读名称。 |
|
字符串 |
|
|
List<String> |
数据库可能拥有的任何别名名称。 |
|
字符串 |
数据库访问模式,即 |
|
字符串 |
托管该数据库的服务器的 Bolt 地址。 |
|
字符串 |
服务器在此数据库中承担的集群角色。 |
|
布尔值 |
对于接受写入的数据库节点,该值为 |
|
字符串 |
操作员请求数据库所处的状态。 |
|
字符串 |
数据库在该服务器上实际所处的状态。 |
|
字符串 |
解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换到 |
|
布尔值 |
该数据库是否为当前 DBMS 的默认数据库。 |
|
布尔值 |
该数据库是否为当前用户的宿主数据库(home database)。 |
|
List<String> |
构成此组合(Composite)数据库的别名列表;非组合数据库此项为 null。 |
请注意,对于失败的数据库,currentStatus 和 requestedStatus 是不同的。这可能意味着存在错误。例如:
-
由于执行恢复操作,数据库从
offline(离线)转换为online(在线)可能需要一些时间。 -
在正常运行期间,由于自动过程(例如一台服务器从另一台服务器复制存储文件)的必要,数据库的
currentStatus可能会短暂地不同于其requestedStatus。
currentStatus 的可能值包括 online、offline、starting、stopping、store copying、initial、deallocating、dirty、quarantined 和 unknown。requestedStatus 只能是 online 或 offline。更多信息请参见 数据库状态。
此外,请注意,托管在离线服务器上的数据库也会由 SHOW DATABASES 命令返回。对于此类数据库,address 列显示 NULL,currentStatus 列显示 unknown,statusMessage 显示 Server is unavailable(服务器不可用)。
当针对独立服务器执行 SHOW DATABASES 时,预期输出如下
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|"neo4j" |"standard" |[] |"read-write"|"localhost:7687"| "primary" | true | "online" | "online" | "" |true |true |[] |
|"system" |"system" |[] |"read-write"|"localhost:7687"| "primary" | true | "online" | "online" | "" |false |false |[] |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
请注意,role、writer 和 address 列主要用于区分部署在 集群 中多台服务器上给定数据库的状态。在单服务器的独立部署中,每个数据库的 address 字段应该相同,role 字段应始终为 "primary"(主),writer 字段应为 true。
当针对集群运行 SHOW DATABASES 时,预期输出如下
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|"neo4j" |"standard" |[] |"read-write"|"localhost:7681"|"primary" |false |"online" |"online" |"" |true |true |[] |
|"neo4j" |"standard" |[] |"read-write"|"localhost:7682"|"primary" |false |"online" |"online" |"" |true |true |[] |
|"neo4j" |"standard" |[] |"read-write"|"localhost:7683"|"primary" |true |"online" |"online" |"" |true |true |[] |
|"neo4j" |"standard" |[] |"read-write"|"localhost:7684"|"secondary"|false |"online" |"online" |"" |true |true |[] |
|"system" |"system" |[] |"read-write"|"localhost:7681"|"primary" |true |"online" |"online" |"" |false |false |[] |
|"system" |"system" |[] |"read-write"|"localhost:7682"|"primary" |false |"online" |"online" |"" |false |false |[] |
|"system" |"system" |[] |"read-write"|"localhost:7683"|"primary" |false |"online" |"online" |"" |false |false |[] |
|"system" |"system" |[] |"read-write"|"localhost:7684"|"secondary"|false |"online" |"online" |"" |false |false |[] |
|"foo" |"standard" |[] |"read-write"|"localhost:7681"|"primary" |true |"online" |"online" |"" |false |false |[] |
|"foo" |"standard" |[] |"read-write"|"localhost:7684"|"secondary"|false |"online" |"online" |"" |false |false |[] |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
请注意,SHOW DATABASES 并不为每个数据库返回 1 行。相反,它为集群中托管该数据库的每台服务器返回 1 行。因此,如果集群有 4 台服务器,每台服务器托管 3 个数据库(包含 3 个主节点和 1 个从节点),则会显示 12 行。此外,这意味着如果托管某个数据库的所有服务器都离线,该数据库将不会出现在 SHOW DATABASES 的结果中。
可能的角色包括 "primary"(主)、"secondary"(从)和 "unknown"(未知)。
请注意,不同的服务器对于每个数据库可能具有不同的角色,且一台服务器对于不同的数据库也可能具有不同的角色。
如果数据库在特定服务器上离线(无论是由于操作员停止还是发生了错误),其集群 role 为 "unknown"。
列出单个数据库
SHOW DATABASES 返回的行数可能非常多,尤其是在集群中运行时。您可以通过使用命令 SHOW DATABASE foo 按数据库名称(例如 "foo")过滤返回的行。
语法
SHOW DATABASE databaseName
参数
| 名称 | 类型 | 描述 |
|---|---|---|
|
字符串 |
要报告其状态的数据库名称。 |
返回
| 名称 | 类型 | 描述 |
|---|---|---|
|
字符串 |
数据库的易读名称。 |
|
字符串 |
|
|
List<String> |
数据库可能拥有的任何别名名称。 |
|
字符串 |
数据库访问模式,即 |
|
字符串 |
托管该数据库的服务器的 Bolt 地址。 |
|
字符串 |
服务器在此数据库中承担的集群角色。 |
|
布尔值 |
对于接受写入的数据库节点,该值为 |
|
字符串 |
操作员请求数据库所处的状态。 |
|
字符串 |
数据库在该服务器上实际所处的状态。 |
|
字符串 |
解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换到 |
|
布尔值 |
该数据库是否为当前 DBMS 的默认数据库。 |
|
布尔值 |
该数据库是否为当前用户的宿主数据库(home database)。 |
|
List<String> |
构成此组合(Composite)数据库的别名列表;非组合数据库此项为 null。 |
当在集群中运行 SHOW DATABASE foo 时,预期输出如下
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "foo" | "standard" | [] | "read-write" | "localhost:7681" | "primary" | false | "online" | "online" | "" | true | true | [] |
| "foo" | "standard" | [] | "read-write" | "localhost:7682" | "unknown" | false | "online" | "dirty" | "An error occurred! Unable to start database ..." | true | true | [] |
| "foo" | "standard" | [] | "read-write" | "localhost:7683" | "primary" | true | "online" | "online" | "" | true | true | [] |
| "foo" | "standard" | [] | "read-write" | "localhost:7684" | "unknown" | false | "online" | "dirty" | "An error occurred! Unable to start database ..." | true | true | [] |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
列出数据库的更多详细信息
如果需要关于数据库的更多详细信息,可以在 SHOW DATABASES 后附加 YIELD *。
语法
SHOW DATABASES YIELD *
返回
| 名称 | 类型 | 描述 | 示例值 |
|---|---|---|---|
|
字符串 |
数据库的易读名称。 |
"foo" |
|
字符串 |
|
"standard" |
|
List<String> |
数据库的别名。 |
"[]" |
|
字符串 |
|
"read-write" |
|
字符串 |
数据库的 ID。 |
"CC573A1DF4…." |
|
字符串 |
托管此数据库的服务器的友好名称或 UUID。 |
"server3" |
|
字符串 |
托管数据库的服务器的 Bolt 地址。 |
"localhost:7683" |
|
字符串 |
服务器在此数据库中承担的集群角色。 |
"primary" |
|
布尔值 |
数据库是否在此服务器上接受写入。 |
true |
|
字符串 |
操作员请求数据库所处的状态。 |
"online" |
|
字符串 |
数据库在该服务器上实际所处的状态。 |
"online" |
|
字符串 |
服务器在将数据库转换到 |
"" |
|
布尔值 |
该数据库是否为当前 DBMS 的默认数据库。 |
false |
|
布尔值 |
该数据库是否为用户的宿主数据库。 |
true |
|
整数 |
当前报告为正在运行的此数据库的主节点数量。它等于 |
3 |
|
整数 |
当前报告为正在运行的此数据库的从节点数量。它等于 |
0 |
|
整数 |
请求的此数据库主节点数量。如果 DBMS 当前正在减少数据库副本数量,该值可能低于当前值;如果正在增加副本数量,则可能高于当前值。 |
3 |
|
整数 |
请求的此数据库从节点数量。如果 DBMS 当前正在减少数据库副本数量,该值可能低于当前值;如果正在增加副本数量,则可能高于当前值。 |
1 |
|
Datetime |
此数据库的创建时间戳。 |
"2022-09-09T12:58:21.923000000Z" |
|
Datetime |
此数据库最近一次启动的时间戳。除非数据库在某个时间点被停止,否则它与创建时间相同。 |
"2022-09-09T12:58:21.923000000Z" |
|
Datetime |
此数据库最近一次停止的时间戳(执行 |
null |
|
字符串 |
存储格式。 |
"record-aligned-1.1" |
|
整数 |
此数据库服务器上最近提交的事务编号。当更改尚未传播时,成员之间可能不同。 |
2342 |
|
整数 |
此服务器与该数据库写入者之间的事务编号差值。如果该值持续很高,则可能存在问题。 |
1 |
|
List<String> |
构成此组合(Composite)数据库的别名列表;非组合数据库此项为 null。 |
"[]" |
|
|