Neo4j集群迁移方案

迁移影响: 血缘服务部分功能迁移期间不可用

1 安装新neo4j集群

  1. 通过easyops安装一个新的neo4j服务实例
  2. 选择3台新节点安装neo4j
  3. 确认关键配置与旧neo4j一样
  4. 开始安装时取消勾选服务安装后立即启动的选项 Neo4j集群迁移方案 - 图1

2 迁移历史数据

  1. 再次确认旧neo4j已停止
  2. 任意登入一个节点并切到neo4j用户
  3. 到neo4j目录执行离线备份数据指令:

     # <database>为数据库名,一般默认为graph.db,<destination-path>为dump文件存放位置。
     ./bin/neo4j-admin dump --database=<database> --to=<destination-path>
    
     例如:
     ./bin/neo4j-admin dump --database=graph.db --to=/backups/graph.db/2023-02-28.dump
  4. 数据备份后,将副本拷贝到新集群的每台neo4j节点上,准备装载
  5. 使用neo4j用户,在每个新neo4j节点current目录下执行:
     ./bin/neo4j-admin unbind
  6. 然后执行以下指令来装载刚才拷贝的数据:
     # <database>为数据库名,与前文dump时一致,<source-path>为拷贝过来的dump文件存放位置。
     ./bin/neo4j-admin load --from=<source-path> --database=<database>
     例如:
     ./bin/neo4j-admin load --from=/backups/2023-02-28.dump --database=graph.db

3 下线旧neo4j

情况一:旧neo4j使用easyops安装

  1. 通过easyops直接停止旧neo4j
  2. 上层服务删除对其依赖

情况二:旧neo4j是手动安装的

  1. 依次登录节点停止旧neo4j节点

4 easy_metahub刷新配置

  1. 依赖neo4j的上层服务easy_metahub,依赖管理重新选择新安装的neo4j实例依赖
  2. easy_metahub服务级别同步配置并重启

回滚方案

操作步骤

  1. 通过easyops界面停止新安装的neo4j
  2. 启动旧neo4j
  3. 依赖neo4j的上层服务easy_metahub删除新的neo4j依赖
  4. 登录metahub backend节点,修改application-easyops.properties配置文件的 neo4j相关配置为旧实例 Neo4j集群迁移方案 - 图2
  5. 通过easyops同步配置并重启metahub
  6. 确认metahub backend配置正确,服务运行正常,日志无报错