监控数据库
除了前面章节中描述的系统范围指标和日志外,要监控集群中托管的各个数据库的状态,请使用 SHOW DATABASES
命令。
列出数据库
语法
SHOW DATABASES
返回
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
数据库的人类可读名称。 |
|
字符串 |
|
|
列表<字符串> |
数据库可能具有的任何别名名称。 |
|
字符串 |
数据库访问模式,可以是 |
|
字符串 |
托管数据库的服务器的 Bolt 地址。 |
|
字符串 |
服务器为该数据库承担的集群角色。 |
|
布尔值 |
接受写入的数据库节点为 |
|
字符串 |
操作员请求数据库所处的状态。 |
|
字符串 |
数据库在该服务器上的实际状态。 |
|
字符串 |
解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换为 |
|
布尔值 |
此数据库是否为此 DBMS 的默认数据库。 |
|
布尔值 |
此数据库是否为此用户的主数据库。 |
|
列表<字符串> |
组成此复合数据库的别名列表,对于非复合数据库则为 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 行。因此,如果集群有四台服务器,每台服务器托管 3 个数据库(每个数据库有 3 个主数据库和一个辅助数据库),则会显示 12 行。此外,这意味着如果托管数据库的所有服务器都处于离线状态,则该数据库将不会出现在 SHOW DATABASES
的结果中。
可能的角色是“primary”(主)、“secondary”(辅助)和“unknown”(未知)。
请注意,不同的服务器可能对每个数据库具有不同的角色,并且一个服务器可能对不同的数据库具有不同的角色。
如果数据库在特定服务器上离线,无论是由于操作员停止还是发生错误,其集群 role
都将是“unknown”。
列出单个数据库
SHOW DATABASES
返回的行数可能非常大,尤其是在集群中运行时。您可以通过使用命令 SHOW DATABASE foo
按数据库名称(例如“foo”)过滤返回的行。
语法
SHOW DATABASE databaseName
参数
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
要报告状态的数据库名称。 |
返回
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
数据库的人类可读名称。 |
|
字符串 |
|
|
列表<字符串> |
数据库可能具有的任何别名名称。 |
|
字符串 |
数据库访问模式,可以是 |
|
字符串 |
托管数据库的服务器的 Bolt 地址。 |
|
字符串 |
服务器为该数据库承担的集群角色。 |
|
布尔值 |
接受写入的数据库节点为 |
|
字符串 |
操作员请求数据库所处的状态。 |
|
字符串 |
数据库在该服务器上的实际状态。 |
|
字符串 |
解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换为 |
|
布尔值 |
此数据库是否为此 DBMS 的默认数据库。 |
|
布尔值 |
此数据库是否为此用户的主数据库。 |
|
列表<字符串> |
组成此复合数据库的别名列表,对于非复合数据库则为 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” |
|
列表<字符串> |
数据库的别名。 |
"[]" |
|
字符串 |
|
“read-write” |
|
字符串 |
数据库的 ID。 |
“CC573A1DF4….” |
|
字符串 |
托管此数据库的服务器的友好名称或 UUID。 |
“server3” |
|
字符串 |
托管数据库的服务器的 Bolt 地址。 |
“localhost:7683” |
|
字符串 |
服务器为该数据库承担的集群角色。 |
“primary” |
|
布尔值 |
此服务器上的数据库是否接受写入。 |
true |
|
字符串 |
操作员请求数据库所处的状态。 |
“online” |
|
字符串 |
数据库在该服务器上的实际状态。 |
“online” |
|
字符串 |
服务器在将数据库转换为 |
"" |
|
布尔值 |
此数据库是否为此 DBMS 的默认数据库。 |
false |
|
布尔值 |
此数据库是否为用户的主数据库。 |
true |
|
整数 |
当前报告正在运行的此数据库的主数据库数量。它与 |
3 |
|
整数 |
当前报告正在运行的此数据库的辅助数据库数量。它与 |
0 |
|
整数 |
此数据库请求的主数据库数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。 |
3 |
|
整数 |
此数据库请求的辅助数据库数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。 |
1 |
|
日期时间 |
此数据库的创建时间戳。 |
“2022-09-09T12:58:21.923000000Z” |
|
日期时间 |
此数据库最近一次启动的时间戳。除非数据库在某个时间点已停止,否则与创建时间相同。 |
“2022-09-09T12:58:21.923000000Z” |
|
日期时间 |
此数据库最近一次停止的时间戳( |
null |
|
字符串 |
存储格式。 |
“record-aligned-1.1” |
|
整数 |
此数据库服务器上最新提交的事务号。当更改未传播时,成员之间可能有所不同。 |
2342 |
|
整数 |
此服务器与此数据库写入器之间的事务号差异。如果此值持续很高,可能存在问题。 |
1 |
|
列表<字符串> |
组成此复合数据库的别名列表,对于非复合数据库则为 null。 |
"[]" |
|