从独立部署迁移到集群
可以从具有单个system
数据库的独立部署迁移到具有多个system
主服务器的集群。本质上,这是通过将system
数据库从独立服务器中转储并将其加载到要形成集群的其他服务器中来完成的。以下示例演示了如何从具有单个system
主服务器的独立服务器迁移到具有三个system
主服务器的集群。
另一个具有单个 |
system
数据库迁移到具有三个system
主服务器的集群在本示例中,名为server01
的独立服务器正在运行,并且要添加两个额外的服务器server02
和server03
以形成集群。根据配置具有三个服务器的集群配置了这两个额外的服务器,并且未运行。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
。
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
加载到server02
和server03
。
bin/neo4j-admin database load --from-path=/full-path/data/dumps system
有关加载命令的更多信息,请参见还原数据库转储。
在server02
和server03
上加载system
数据库后,启动所有服务器。新添加的服务器应处于Free
状态(server02
和server03
),这可以使用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
的独立服务器正在运行,并且要添加两个额外的服务器server02
和server03
以形成集群。根据配置具有三个服务器的集群配置了这两个额外的服务器,并且未运行。Neo4j 企业版已安装在所有三台服务器上。
首先停止独立服务器,然后停止后,编辑neo4j.conf文件以包含自身和将形成集群的服务器的发现端点。
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
加载到server02
和server03
。
bin/neo4j-admin database load --from-path=/full-path/data/dumps system
有关加载命令的更多信息,请参见还原数据库转储。
在server02
和server03
上加载system
数据库后,启动所有服务器。新添加的服务器应处于Free
状态(server02
和server03
),这可以使用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
扩展用户数据库。