从单机部署迁移到集群

可以将具有单个 system 数据库的单机部署迁移到具有多个 system 主库的集群。其核心流程是:将 system 数据库从单机服务器转储(dump),然后将其加载到将要构成集群的其他服务器中。以下示例展示了如何从具有单个 system 主库的单机服务器迁移到具有三个 system 主库的集群。

另一种具有单个 system 数据库的部署方式是具有单个 system 主库的分析集群 (analytics cluster)。如果希望迁移到具有多个 system 主库的集群,以下示例同样适用,只需额外舍弃辅助库即可(这可以在第一步修改 neo4j.conf 文件时完成)。有关分析集群的更多信息,请参阅 部署分析集群。

从单个 system 数据库迁移到具有三个 system 主库的集群

在此示例中,当前运行着一台名为 server01 的单机服务器,计划添加 server02 和 server03 两台服务器以组成集群。这两台新增服务器需按照 配置三节点集群 进行配置。这两台新服务器目前不应启动。所有三台服务器上均已安装 Neo4j 企业版。

首先停止单机服务器。停止后,编辑 neo4j.conf 文件,填入它自身以及将要构成集群的其他服务器的发现端点(discovery endpoints)。

以下示例使用 dbms.cluster.discovery.resolver_type=LIST。

server01.example.com 上的 neo4j.conf
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 扩容用户数据库。

© . This site is unofficial and not affiliated with Neo4j, Inc.