从单机部署迁移到集群企业版
可以将具有单个 system 数据库的单机部署迁移到具有多个 system 主库的集群。其核心流程是:将 system 数据库从单机服务器转储(dump),然后将其加载到将要构成集群的其他服务器中。以下示例展示了如何从具有单个 system 主库的单机服务器迁移到具有三个 system 主库的集群。
|
另一种具有单个 |
system 数据库迁移到具有三个 system 主库的集群在此示例中,当前运行着一台名为 server01 的单机服务器,计划添加 server02 和 server03 两台服务器以组成集群。这两台新增服务器需按照 配置三节点集群 进行配置。这两台新服务器目前不应启动。所有三台服务器上均已安装 Neo4j 企业版。
首先停止单机服务器。停止后,编辑 neo4j.conf 文件,填入它自身以及将要构成集群的其他服务器的发现端点(discovery endpoints)。
以下示例使用 dbms.cluster.discovery.resolver_type=LIST。
server.default_listen_address=0.0.0.0
server.default_advertised_address=server01.example.com
dbms.cluster.endpoints=server01.example.com:6000,server02.example.com:6000,server03.example.com:6000
initial.dbms.default_primaries_count=3
(所有三台服务器上的 neo4j.conf 文件除了 server.default_advertised_address 外看起来完全相同。请参考 配置三节点集群 以获取更多信息。)
在 server01(单机服务器)上,使用 neo4j-admin database dump 命令转储 system 数据库。
bin/neo4j-admin database dump system --to-path=/full/path/to/dumps/
有关 dump 命令的更多信息,请参阅 备份离线数据库。
使用 neo4j-admin database load 命令将 server01 的 system 数据库转储文件加载到 server02 和 server03 中。
bin/neo4j-admin database load --from-path=/full-path/data/dumps system
有关 load 命令的更多信息,请参阅 还原数据库转储。
一旦 system 数据库在 server02 和 server03 上加载完成,启动所有服务器。新添加的服务器(server02 和 server03)应处于 Free(空闲)状态,这可以通过运行 SHOW SERVERS 来验证。
SHOW SERVERS;
+-----------------------------------------------------------------------------------------------------------+ | name | address | state | health | hosting | +-----------------------------------------------------------------------------------------------------------+ | "d6fbe54b-0c6a-4959-9bcb-dcbbe80262a4" | "server01:7687" | "Enabled" | "Available" | ["system", "neo4j"] | | "e56b49ea-243f-11ed-861d-0242ac120002" | "server02:7687" | "Free" | "Available" | ["system"] | | "73e9a990-0a97-4a09-91e9-622bf0b239a4" | "server03:7687" | "Free" | "Available" | ["system"] | +-----------------------------------------------------------------------------------------------------------+
在 server01(原先的单机服务器)上,使用 SHOW DATABASES 验证所有用户数据库是否仍在运行。
最后一步是使用 ENABLE SERVER 启用这些 Free 状态的服务器(有关服务器状态的更多信息,请参阅 管理集群中的服务器)。
一旦所有服务器均已启用,如果需要,可以使用 ALTER DATABASE 扩容用户数据库。