监控复制状态
可以使用 dbms.cluster.statusCheck()
存储过程来监控集群数据库的复制能力。在大多数情况下,这意味着集群数据库可用于写入。该存储过程会识别集群数据库中哪些成员是最新的,并且可以参与成功复制。因此,它对于确定集群数据库的容错能力非常有用。此外,您可以使用该存储过程来识别集群中集群数据库的领导者。
该存储过程在集群内复制一个虚拟事务,并验证其是否可以被复制和应用。由于状态检查不复制实际事务,因此它不保证写入可用性,因为写入路径中的其他因素(例如,数据库问题)可能会阻塞事务。然而,健康的复制状态通常在大多数情况下表示写入可用。 |
集群状态检查
输入参数
名称 | 类型 | 描述 |
---|---|---|
|
列表<字符串> |
要运行状态检查的数据库。提供空列表将对该服务器上的所有集群化数据库运行状态检查,即它不会在独立或二级数据库上运行。 |
|
整数 |
指定复制的最大等待时间,超过此时间则标记为不成功。默认值为 1000 毫秒。 |
返回参数
该存储过程为所有请求数据库的所有主成员返回一行,其中每行包含:
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
复制了 |
|
字符串 |
服务器的 UUID,表示其是否参与了 |
|
字符串 |
服务器的友好名称,如果未设置名称则为其 UUID。 |
|
字符串 |
服务器 Bolt 端口的地址。 |
|
布尔值 |
指示运行该存储过程的服务器是否可以复制事务。 |
|
字符串 |
每个主成员的状态。 |
|
字符串 |
每个主成员识别到的领导者服务器 ID。 |
|
整数 |
每个主成员识别到的领导者的任期。如果成员报告不同的领导者,应信任任期最高的那一个。 |
|
布尔值 |
服务器是否为请求者。 |
|
字符串 |
如果存在,则包含任何错误消息。一个错误示例是请求的数据库中有一个或多个在请求者上不存在。 |
replicationSuccessful
的可能值
-
TRUE
— 如果该服务器在给定超时时间内成功将虚拟事务复制到大多数集群成员。 -
FALSE
— 如果未能在超时时间内复制。该值在列方向上是相同的。复制失败可能表示集群存在实际问题(例如,没有领导者),或者该服务器在应用更新方面落后太多而无法复制。
示例
运行状态检查
对服务器运行集群状态检查时,预期会看到类似以下内容的输出:
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| database | serverId | serverName | address | replicationSuccessful | memberStatus | recognisedLeader | recognisedLeaderTerm | requester | error |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "neo4j" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | "localhost:7682" | TRUE | "APPLYING" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | 4 | FALSE | NULL |
| "neo4j" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | "localhost:7681" | TRUE | "APPLYING" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | 4 | TRUE | NULL |
| "neo4j" | "58c70f4b-910d-4d0e-b0f2-3084554079ec" | "58c70f4b-910d-4d0e-b0f2-3084554079ec" | "localhost:7683" | TRUE | "APPLYING" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | 4 | FALSE | NULL |
| "system" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | "565130e8-b8f0-41ad-8f9d-c660bd8d5519" | "localhost:7681" | TRUE | "APPLYING" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | 1 | TRUE | NULL |
| "system" | "58c70f4b-910d-4d0e-b0f2-3084554079ec" | "58c70f4b-910d-4d0e-b0f2-3084554079ec" | "localhost:7683" | TRUE | "APPLYING" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | 1 | FALSE | NULL |
| "system" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | "localhost:7682" | TRUE | "APPLYING" | "d3fe2e6a-494d-4ab8-81b1-7de2ce31ce11" | 1 | FALSE | NULL |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+