创建、启动和停止复合数据库
复合数据库使用 Cypher® 管理命令进行管理。请注意,无法修改复合数据库的访问选项或数据库拓扑,因为这些选项是从构成数据库继承的。有关修改访问选项的信息,请参阅 更改数据库访问模式。有关数据库拓扑的信息,请参阅 在集群中创建数据库.
驱动程序和客户端应用程序连接到复合数据库的方式与标准数据库相同。有关更多信息,请参阅不同 Neo4j 驱动程序和应用程序 的手册。
创建复合数据库
可以使用 CREATE COMPOSITE DATABASE
创建复合数据库。
复合数据库名称遵循与标准数据库相同的规则。但是,一个区别是,使用点而不将名称括在反引号中的已弃用语法不可用。使用复合数据库时,点和连字符都需要括在反引号中。
在复合数据库名称中使用点( |
CREATE COMPOSITE DATABASE inventory
创建复合数据库后,它将显示在命令SHOW DATABASES
提供的列表中。
SHOW DATABASES
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | aliases | access | address | role | writer | requestedStatus | currentStatus | statusMessage | default | home | constituents | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | "inventory" | "composite" | [] | "read-only" | "localhost:7687" | NULL | FALSE | "online" | "online" | "" | FALSE | FALSE | [] | | "library" | "composite" | [] | "read-only" | "localhost:7687" | NULL | FALSE | "online" | "online" | "" | FALSE | FALSE | ["library.sci-fi"] | | "neo4j" | "standard" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | TRUE | TRUE | [] | | "sci-fi" | "standard" | ["library.sci-fi"] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | | "system" | "system" | [] | "read-write" | "localhost:7687" | "primary" | TRUE | "online" | "online" | "" | FALSE | FALSE | [] | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
有关此命令返回的列的完整描述以及如何按特定列排序结果的信息,请参见管理数据库.
要在复合数据库中创建数据库别名,请将复合数据库作为别名的命名空间。有关在复合数据库中创建别名的信息,请参见在复合数据库中管理别名.
创建复合数据库时使用IF NOT EXISTS
或OR REPLACE
CREATE COMPOSITE DATABASE
命令可以选择性地是幂等的,默认行为是在数据库已存在时失败并显示错误。有两种方法可以规避这种行为。
首先,将IF NOT EXISTS
附加到命令以确保在数据库已存在时不返回错误,并且不会发生任何事情。
CREATE COMPOSITE DATABASE inventory IF NOT EXISTS
这不会创建新的复合数据库,因为名为inventory
的复合数据库已存在。
其次,将OR REPLACE
添加到命令将导致任何现有数据库被删除,并创建一个新的数据库。
CREATE OR REPLACE COMPOSITE DATABASE inventory
这等效于运行DROP DATABASE inventory IF EXISTS
,然后运行CREATE COMPOSITE DATABASE inventory
。
IF NOT EXISTS
和OR REPLACE
的行为适用于标准数据库和复合数据库(例如,复合数据库可以替换标准数据库或其他复合数据库)。
这些命令的 |
停止复合数据库
可以使用命令STOP DATABASE
停止数据库。
STOP DATABASE inventory
可以使用此命令停止标准数据库和复合数据库。 |
可以使用命令SHOW DATABASE name
查看已停止数据库的状态。
SHOW DATABASE inventory YIELD name, requestedStatus, currentStatus
+-----------------------------------------------+ | name | requestedStatus | currentStatus | +-----------------------------------------------+ | "inventory" | "offline" | "offline" | +-----------------------------------------------+
启动复合数据库
可以使用命令START DATABASE
启动数据库。
START DATABASE inventory
可以使用此命令启动标准数据库和复合数据库。 |
可以使用命令SHOW DATABASE name
查看已启动数据库的状态。
SHOW DATABASE inventory YIELD name, requestedStatus, currentStatus
+-----------------------------------------------+ | name | requestedStatus | currentStatus | +-----------------------------------------------+ | "inventory" | "online" | "online" | +-----------------------------------------------+