从独立部署迁移到集群

可以从具有单个system数据库的独立部署迁移到具有多个system主服务器的集群。本质上,这是通过将system数据库从独立服务器中转储并将其加载到要形成集群的其他服务器中来完成的。以下示例演示了如何从具有单个system主服务器的独立服务器迁移到具有三个system主服务器的集群。

另一个具有单个system数据库的部署是具有单个system主服务器的分析集群。如果需要迁移到具有多个system主服务器的集群,以下示例适用,并额外补充了从属服务器被丢弃(在修改neo4j.conf文件的第一步中完成)。有关分析集群的更多信息,请参见部署分析集群

示例 1. 从单个system数据库迁移到具有三个system主服务器的集群

在本示例中,名为server01的独立服务器正在运行,并且要添加两个额外的服务器server02server03以形成集群。根据配置具有三个服务器的集群配置了这两个额外的服务器,并且运行。Neo4j 企业版已安装在所有三台服务器上。

首先停止独立服务器。停止后,编辑neo4j.conf文件以包含自身和将形成集群的服务器的发现端点。

从 Neo4j 5.23 开始,建议使用发现服务的 v2 版本。有关发现服务的更多详细信息,请参见集群服务器发现

要使用发现服务 v2

  • 您必须将dbms.cluster.discovery.version的配置设置为V2_ONLY

  • 不要使用dbms.cluster.discovery.endpoints,而是使用dbms.cluster.discovery.v2.endpoints

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

neo4j.conf 在 server01.example.com 上
server.default_listen_address=0.0.0.0
server.default_advertised_address=server01.example.com
dbms.cluster.discovery.v2.endpoints=server01.example.com:6000,server02.example.com:6000,server03.example.com:6000
dbms.cluster.discovery.version=V2_ONLY
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/

有关转储命令的更多信息,请参见备份离线数据库

使用neo4j-admin database load命令将system数据库转储从server01加载到server02server03

bin/neo4j-admin database load --from-path=/full-path/data/dumps system

有关加载命令的更多信息,请参见还原数据库转储

server02server03上加载system数据库后,启动所有服务器。新添加的服务器应处于Free状态(server02server03),这可以使用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扩展用户数据库。

在本示例中,名为server01的独立服务器正在运行,并且要添加两个额外的服务器server02server03以形成集群。根据配置具有三个服务器的集群配置了这两个额外的服务器,并且运行。Neo4j 企业版已安装在所有三台服务器上。

首先停止独立服务器,然后停止后,编辑neo4j.conf文件以包含自身和将形成集群的服务器的发现端点。

neo4j.conf 在 server01.example.com 上
server.default_listen_address=0.0.0.0
server.default_advertised_address=server01.example.com
dbms.cluster.discovery.endpoints=server01.example.com:5000,server02.example.com:5000,server03.example.com:5000
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/

有关转储命令的更多信息,请参见备份离线数据库

使用neo4j-admin database load命令将system数据库转储从server01加载到server02server03

bin/neo4j-admin database load --from-path=/full-path/data/dumps system

有关加载命令的更多信息,请参见还原数据库转储

server02server03上加载system数据库后,启动所有服务器。新添加的服务器应处于Free状态(server02server03),这可以使用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扩展用户数据库。