ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

【Docker compose】Neo4j 数据备份与恢复

【Docker compose】Neo4j 数据备份与恢复

文章目录

      • 1、 创建示例数据
      • 2、备份操作
      • 3、 模拟容器故障:删除容器
      • 4、 恢复操作

本文使用Neo4j的插件apoc来实现数据备份与恢复

1、 创建示例数据

// 创建人物节点 CREATE (a:Person {name: 'Alice', age: 30}) CREATE (b:Person {name: 'Bob', age: 25}) CREATE (c:Person {name: 'Charlie', age: 35}) // 创建关系 CREATE (a)-[:FRIEND_WITH]->(b) CREATE (b)-[:FRIEND_WITH]->(c) CREATE (a)-[:FRIEND_WITH]->(c) // 创建地点节点 CREATE (d:Place {name: 'New York'}) CREATE (e:Place {name: 'Los Angeles'}) CREATE (f:Place {name: 'Chicago'}) // 创建事件节点 CREATE (g:Event {name: 'Concert', date: '2025-05-15'}) CREATE (h:Event {name: 'Conference', date: '2025-06-20'}) // 关联人物和事件 CREATE (a)-[:ATTENDS]->(g) CREATE (b)-[:ATTENDS]->(h) CREATE (c)-[:ATTENDS]->(g)
  • FRIEND_WITH:表示朋友关系。
  • LIVES_IN:表示人物居住地点。
  • ATTENDS:表示人物参加的事件。

如果页面无法访问,在容器中执行:

# 链接终端cypher-shell-uneo4j-p${password}# 执行如上语句# 查看创建的数据MATCH(n)RETURN n LIMIT50;# 如果你想查看所有节点的标签:CALL db.labels();

2、备份操作

// 备份所有数据为 GraphML 格式 CALL apoc.export.graphml.all('neo4j_backup.graphml', {useTypes:true});
  • CALL apoc.export.graphml.all用于将数据库中所有数据导出为neo4j_backup.graphml。
  • useTypes:true表示在导出时保留类型信息。

notice:
neo4j默认的备份路径默认从/var/lib/neo4j/import开始

3、 模拟容器故障:删除容器

docker compose down

4、 恢复操作

// 恢复 GraphML 文件 CALL apoc.import.graphml('neo4j_backup.graphml', {batchSize:1000, readLabels:true})
  • CALL apoc.import.graphml用于从指定的 GraphML 文件恢复数据。
  • batchSize:1000设置每次导入的批量大小为 1000 条。
  • readLabels:true表示读取并应用标签。

说明:neo4j会从默认的备份路径(/var/lib/neo4j/import)中找到备份文件

返回列表