列出分片属性数据库

您可以使用 SHOW DATABASES 命令查看所有或特定的分片属性数据库。有关命令语法、参数以及返回列的完整列表的详细信息,请参阅 列出数据库

分片属性数据库的列出方式取决于您的权限。如果您拥有 CREATE/DROP/ALTER DATABASESET DATABASE ACCESSDATABASE MANAGEMENT 权限,分片数据库将显示为一组不同类型的数据库。

  • 虚拟分片数据库聚合了底层分片的信息,其类型为 standard

  • 图分片(graph shard)列出时类型为 graph shard,并显示图分片分配的信息。

  • 属性分片(property shard)列出时类型为 property shard,并显示属性分片分配的信息。

如果您缺少上述任何权限,则只能看到虚拟分片数据库。

列出虚拟分片数据库

虚拟分片数据库聚合了底层分片的信息。对于虚拟分片数据库,某些列为空。这些行的信息可以在关联的图分片和属性分片上找到,例如 lastCommittedTxnreplicationLag

以下列专用于分片属性数据库中的虚拟分片数据库:

描述 类型 默认输出

名称 (name)

创建分片属性数据库时传递给 CREATE DATABASE 命令的名称。

STRING

type

虚拟分片数据库的类型为 standard

STRING

role(角色)

虚拟分片数据库的角色可以是(primarysecondaryunknown)。

STRING

currentStatus

currentStatus 是从底层分片的当前状态聚合而来的。状态要么是:

  • 等于所有分片共享的状态。

  • “Mixed”(混合),如果某些分片的状态不同。

STRING

状态消息 (statusMessage)

如果 currentStatus 为混合状态,statusMessage 会指示具有不同状态的分片数量,例如:online (4) 和 starting (1)。

STRING

graphShards

数据库可能拥有的任何图分片的名称。也适用于标准数据库(非分片数据库),它们有一个与数据库同名的图分片。不适用于复合数据库。

LIST<STRING>

propertyShards

数据库可能拥有的任何属性分片的名称。

LIST<STRING>

列出图分片

以下列专用于分片属性数据库中的图分片:

描述 类型 默认输出

名称 (name)

创建分片属性数据库时传递给 CREATE DATABASE 命令的名称,并附加 -g<index>

STRING

type

虚拟分片数据库的类型为 graph shard

STRING

role(角色)

图分片的角色。可以是 primarysecondaryunknown

STRING

shardTxnLag

当前分片落后于分片数据库最新分片分配的事务数。该延迟以负整数表示。

INTEGER(整数)

列出属性分片

以下列专用于分片属性数据库中的属性分片:

描述 类型 默认输出

名称 (name)

创建分片属性数据库时传递给 CREATE DATABASE 命令的名称,并附加 -p<index>

STRING

type

虚拟分片数据库的类型为 property shard

STRING

role(角色)

属性分片的角色。可以是 property shard replicaunknown

STRING

currentPropertyShardReplicas

当前报告为运行状态的该数据库的属性分片副本数。这与 role=property shard replicaname=this database 的行数相同。

INTEGER(整数)

requestedPropertyShardReplicas

为该数据库请求的属性分片副本数。如果 DBMS 目前正在减少数据库副本数,则该值可能低于当前值;如果正在增加副本数,则可能高于当前值。

INTEGER(整数)

shardTxnLag

当前分片落后于分片数据库最新分片分配的事务数。该延迟以负整数表示。

INTEGER(整数)

shardTxnLagreplicationLag 列之间的区别

shardTxnLagreplicationLag 列仅显示在分片属性数据库的底层分片中。两者都提供关于分片在事务处理方面落后程度的信息,但它们衡量的是不同的方面:

  • shardTxnLag 列显示当前分片落后于整个分片数据库最新分片分配的事务数。

  • replicationLag 列显示当前数据库落后于同一分片最新分配的事务数。

由于分片信息是作为集群内的快照收集的,且报告可能会有延迟,因此有时可能看起来属性分片分配领先于所有图分片分配,即使这种情况实际上并未发生。

示例

以下是使用不同查询和输出列出分片属性数据库的一些示例。

查看分片属性数据库概览

该示例假设您有一个分片属性数据库 foo,其拓扑如下:

  • 一个图分片,带有一个主节点(primary),无从节点(secondaries)。

  • 三个属性分片,每个分片带有一个属性分片副本。

要查看分片属性数据库 foo 中分片的状态(currentStatus 列),请运行以下查询:

查询
CYPHER 25 SHOW DATABASES
YIELD name, type, role, currentStatus, statusMessage, graphShards, propertyShards
结果
+---------------------------------------------------------------------------------------------------------------------------------------------------+
| name       | type             | role                     | currentStatus   | statusMessage | graphShards  | propertyShards                        |
+---------------------------------------------------------------------------------------------------------------------------------------------------+
| "foo"      | "standard"       | "primary"                | "online"        | ""            | ["foo-g000"] | ["foo-p000", "foo-p001", "foo-p0002"] |
| "foo-g000" | "graph shard"    | "primary"                | "online"        | ""            | NULL         | NULL                                  |
| "foo-p000" | "property shard" | "property shard replica" | "online"        | ""            | NULL         | NULL                                  |
| "foo-p001" | "property shard" | "property shard replica" | "online"        | ""            | NULL         | NULL                                  |
| "foo-p002" | "property shard" | "property shard replica" | "online"        | ""            | NULL         | NULL                                  |
+---------------------------------------------------------------------------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name       | type             | role                     | currentStatus   | statusMessage                 | graphShards  | propertyShards                        |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "foo"      | "standard"       | "primary"                | "online"        | "online (4) and starting (1)" | ["foo-g000"] | ["foo-p000", "foo-p001", "foo-p0002"] |
| "foo-g000" | "graph shard"    | "primary"                | "online"        | ""                            | NULL         | NULL                                  |
| "foo-p000" | "property shard" | "property shard replica" | "online"        | ""                            | NULL         | NULL                                  |
| "foo-p001" | "property shard" | "property shard replica" | "starting"      | ""                            | NULL         | NULL                                  |
| "foo-p002" | "property shard" | "property shard replica" | "online"        | ""                            | NULL         | NULL                                  |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+

第一个结果显示所有分片均为 online,而第二个结果表明一个属性分片副本处于 starting 状态,导致整个分片数据库的状态为混合(mixed)。

查看分片属性数据库的拓扑

要查看分片属性数据库 foo 的拓扑,请运行以下查询:

查询
CYPHER 25 SHOW DATABASES
YIELD name, type, role, currentSecondariesCount, currentPropertyShardReplicas, requestedPrimariesCount, requestedSecondariesCount, requestedPropertyShardReplicas
WHERE name STARTS WITH 'foo'
结果
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name       | type             | role                     | currentPrimariesCount | currentSecondariesCount | currentPropertyShardReplicas | requestedPrimariesCount | requestedSecondariesCount | requestedPropertyShardReplicas |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "foo"      | "standard"       | "primary"                | NULL                  | NULL                     | NULL                         | NULL                   | NULL                      | NULL                           |
| "foo-g000" | "graph shard"    | "primary"                | 1                     | 0                        | NULL                         | 1                      | 0                         | NULL                           |
| "foo-p000" | "property shard" | "property shard replica" | NULL                  | NULL                     | 1                            | NULL                   | NULL                      | 1                              |
| "foo-p001" | "property shard" | "property shard replica" | NULL                  | NULL                     | 1                            | NULL                   | NULL                      | 1                              |
| "foo-p002" | "property shard" | "property shard replica" | NULL                  | NULL                     | 1                            | NULL                   | NULL                      | 1                              |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

结果显示分片属性数据库 foo 有一个图分片(带一个主节点,无从节点),以及三个属性分片(每个带一个属性分片副本)。

查看分片分配之间的延迟

该示例假设您有一个分片属性数据库 foo,其拓扑如下:

  • 一个图分片,带有两个主节点,无从节点。

  • 三个属性分片,每个带有两个属性分片副本。

要查看分片属性数据库 foo 的分片分配之间的延迟,请运行以下查询:

查询
CYPHER 25 SHOW DATABASES YIELD name, type, role, lastCommittedTxn, replicationLag, shardTxnLag
结果
+-----------------------------------------------------------------------------------------------------------------+
| name       | type             | role                     | lastCommittedTxn   | replicationLag    | shardTxnLag |
+-----------------------------------------------------------------------------------------------------------------+
| "foo"      | "standard"       | "primary"                | NULL               | NULL              | NULL        |
| "foo"      | "standard"       | "primary"                | NULL               | NULL              | NULL        |
| "foo-g000" | "graph shard"    | "primary"                | 42                 |  0                |  0          |
| "foo-g000" | "graph shard"    | "priamry"                | 39                 | -3                | -3          |
| "foo-p000" | "property shard" | "property shard replica" | 40                 | -1                | -2          |
| "foo-p000" | "property shard" | "property shard replica" | 41                 |  0                | -1          |
| "foo-p001" | "property shard" | "property shard replica" | 40                 |  0                | -2          |
| "foo-p001" | "property shard" | "property shard replica" | 39                 | -1                | -3          |
| "foo-p002" | "property shard" | "property shard replica" | 42                 |  0                |  0          |
| "foo-p002" | "property shard" | "property shard replica" | 40                 | -2                | -2          |
+-----------------------------------------------------------------------------------------------------------------+

结果显示其中一个图分片主节点落后于另一个主节点三个事务,属性分片副本的情况也类似。