监控数据库

除了前面章节中描述的系统范围指标和日志外,要监控集群中托管的各个数据库的状态,请使用 SHOW DATABASES 命令。

列出数据库

语法

SHOW DATABASES

返回

名称 类型 描述

名称

字符串

数据库的人类可读名称。

类型

字符串

standard, systemcomposite

别名

列表<字符串>

数据库可能具有的任何别名名称。

访问

字符串

数据库访问模式,可以是 read-write(读写)或 read-only(只读)。

地址

字符串

托管数据库的服务器的 Bolt 地址。

角色

字符串

服务器为该数据库承担的集群角色。

写入器

布尔值

接受写入的数据库节点为 true。此节点是集群中此数据库的领导者此为独立服务器。

请求状态

字符串

操作员请求数据库所处的状态。

当前状态

字符串

数据库在该服务器上的实际状态。

状态消息

字符串

解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换为 requestedStatus 时遇到任何错误,该消息将显示错误信息。

默认

布尔值

此数据库是否为此 DBMS 的默认数据库。

主数据库

布尔值

此数据库是否为此用户的主数据库。

组成部分

列表<字符串>

组成此复合数据库的别名列表,对于非复合数据库则为 null。

请注意,对于失败的数据库,currentStatusrequestedStatus 是不同的。这可能意味着存在错误。例如

  • 数据库可能需要一段时间才能从 offline 转换为 online,这是由于正在执行恢复。

  • 在正常运行期间,数据库的 currentStatus 可能会因必要的自动化过程(例如一个服务器从另一个服务器复制存储文件)而暂时与 requestedStatus 不同。

currentStatus 的可能值为 online(在线)、offline(离线)、starting(启动中)、stopping(停止中)、store copying(存储复制中)、initial(初始)、deallocating(解除分配中)、dirty(脏)、quarantined(隔离)和 unknown(未知)。requestedStatus 只能是 onlineoffline。有关更多信息,请参阅数据库状态

此外,请注意,托管在离线服务器上的数据库也会被 SHOW DATABASES 命令返回。对于此类数据库,address 列显示 NULLcurrentStatus 列显示 unknownstatusMessage 显示 Server is unavailable

示例 1. 列出独立 Neo4j 中的数据库

针对独立服务器执行 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 |[]            |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+

请注意,rolewriteraddress 列主要用于区分在集群中部署的多个服务器上给定数据库的状态。在单服务器独立部署中,每个数据库的 address 字段应相同,role 字段应始终为“primary”,writer 字段应为 true。

示例 2. 列出集群中的数据库

针对集群运行 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

参数

名称 类型 描述

数据库名称

字符串

要报告状态的数据库名称。

返回

名称 类型 描述

名称

字符串

数据库的人类可读名称。

类型

字符串

standardsystemcomposite

别名

列表<字符串>

数据库可能具有的任何别名名称。

访问

字符串

数据库访问模式,可以是 read-write(读写)或 read-only(只读)。

地址

字符串

托管数据库的服务器的 Bolt 地址。

角色

字符串

服务器为该数据库承担的集群角色。

写入器

布尔值

接受写入的数据库节点为 true。此节点是集群中此数据库的领导者此为独立服务器。

请求状态

字符串

操作员请求数据库所处的状态。

当前状态

字符串

数据库在该服务器上的实际状态。

状态消息

字符串

解释数据库当前状态的消息,如果 Neo4j 服务器在将数据库转换为 requestedStatus 时遇到任何错误,该消息将显示错误信息。

默认

布尔值

此数据库是否为此 DBMS 的默认数据库。

主数据库

布尔值

此数据库是否为此用户的主数据库。

组成部分

列表<字符串>

组成此复合数据库的别名列表,对于非复合数据库则为 null。

示例 3. 列出数据库 foo 的状态

在集群中运行 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”

类型

字符串

standardsystemcomposite

“standard”

别名

列表<字符串>

数据库的别名。

"[]"

访问

字符串

read-writeread-only

“read-write”

数据库 ID

字符串

数据库的 ID。

“CC573A1DF4…​.”

服务器 ID

字符串

托管此数据库的服务器的友好名称或 UUID。

“server3”

地址

字符串

托管数据库的服务器的 Bolt 地址。

“localhost:7683”

角色

字符串

服务器为该数据库承担的集群角色。

“primary”

写入器

布尔值

此服务器上的数据库是否接受写入。

true

请求状态

字符串

操作员请求数据库所处的状态。

“online”

当前状态

字符串

数据库在该服务器上的实际状态。

“online”

状态消息

字符串

服务器在将数据库转换为 requestedStatus 时遇到的错误(如果有)。

""

默认

布尔值

此数据库是否为此 DBMS 的默认数据库。

false

主数据库

布尔值

此数据库是否为用户的主数据库。

true

当前主数据库数量

整数

当前报告正在运行的此数据库的主数据库数量。它与 role=primaryname=此数据库的行数相同

3

当前辅助数据库数量

整数

当前报告正在运行的此数据库的辅助数据库数量。它与 role=secondaryname=此数据库的行数相同

0

请求的主数据库数量

整数

此数据库请求的主数据库数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。

3

请求的辅助数据库数量

整数

此数据库请求的辅助数据库数量。如果 DBMS 当前正在减少数据库副本数量,则可能低于当前值;如果正在增加副本数量,则可能高于当前值。

1

创建时间

日期时间

此数据库的创建时间戳。

“2022-09-09T12:58:21.923000000Z”

上次启动时间

日期时间

此数据库最近一次启动的时间戳。除非数据库在某个时间点已停止,否则与创建时间相同。

“2022-09-09T12:58:21.923000000Z”

上次停止时间

日期时间

此数据库最近一次停止的时间戳(STOP DATABASE

null

存储

字符串

存储格式。

“record-aligned-1.1”

上次提交事务

整数

此数据库服务器上最新提交的事务号。当更改未传播时,成员之间可能有所不同。

2342

复制延迟

整数

此服务器与此数据库写入器之间的事务号差异。如果此值持续很高,可能存在问题。

1

组成部分

列表<字符串>

组成此复合数据库的别名列表,对于非复合数据库则为 null。

"[]"

currentPrimariesCountrequestedPrimariesCount 之间以及 currentSecondariesCountrequestedSecondariesCount 之间的偏差值可能无需担心。这些值在集群分配、重新分配和/或解除分配数据库时可能有所不同。

© . All rights reserved.