监控数据库
除了前面部分中描述的系统范围的指标和日志外,要监控集群中托管的各个数据库的状态,请使用 SHOW DATABASES
命令。
列出数据库
语法
SHOW DATABASES
返回值
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
数据库的可读名称。 |
|
字符串 |
|
|
List<String> |
数据库可能具有的任何别名的名称。 |
|
字符串 |
数据库访问模式, |
|
字符串 |
托管数据库的服务器的 bolt 地址。 |
|
字符串 |
服务器为此数据库执行的集群角色。 |
|
布尔值 |
接受写入的数据库节点为 |
|
字符串 |
操作员请求数据库处于的状态。 |
|
字符串 |
数据库在此服务器上的实际状态。 |
|
字符串 |
解释数据库当前状态的消息,如果存在任何错误,则可能是 Neo4j 服务器在将数据库转换到 |
|
布尔值 |
此数据库是否为此 DBMS 的默认数据库。 |
|
布尔值 |
此数据库是否为此用户的 home 数据库。 |
|
List<String> |
构成此复合数据库的别名列表,对于非复合数据库为 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
参数
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
要报告其状态的数据库的名称。 |
返回值
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
数据库的可读名称。 |
|
字符串 |
|
|
List<String> |
数据库可能具有的任何别名的名称。 |
|
字符串 |
数据库访问模式, |
|
字符串 |
托管数据库的服务器的 bolt 地址。 |
|
字符串 |
服务器为此数据库执行的集群角色。 |
|
布尔值 |
接受写入的数据库节点为 |
|
字符串 |
操作员请求数据库处于的状态。 |
|
字符串 |
数据库在此服务器上的实际状态。 |
|
字符串 |
解释数据库当前状态的消息,如果存在任何错误,则可能是 Neo4j 服务器在将数据库转换到 |
|
布尔值 |
此数据库是否为此 DBMS 的默认数据库。 |
|
布尔值 |
此数据库是否为此用户的 home 数据库。 |
|
List<String> |
构成此复合数据库的别名列表,对于非复合数据库为 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 |
|
布尔值 |
此数据库是否为用户的 home 数据库。 |
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 |
|
List<String> |
构成此复合数据库的别名列表,对于非复合数据库为 null。 |
"[]" |
|