
文章目录一. 官网说明1. 操作说明2. 注意事项二. docker 容器化操作1. 导出备份停止容器执行备份2. 导入恢复停止容器(如果未停止)执行导入3. 启动容器一. 官网说明https://neo4j.com/docs/operations-manual/current/docker/dump-load/1. 操作说明确定备份工具使用 Neo4j 提供的neo4j-admin工具。此工具适用于 Neo4j 4.x 版本可用来创建数据库的完整备份。逐个备份所有数据库Neo4j 支持多数据库架构每个数据库需要单独备份。通过运行多个命令依次备份每个数据库。检查备份验证备份是否成功检查备份目录中的内容确保所有数据库都已备份。2. 注意事项备份目录的存储空间确保目标目录有足够的存储空间容纳所有备份文件。数据库的一致性在备份期间建议不要进行写操作以避免数据不一致。备份权限运行备份命令的用户需要具有访问 Neo4j 安装目录和目标备份目录的权限。二. docker 容器化操作导出和导入时都需要停止容器因为正在启动的容器不允许操作如下操作日志neo4j-admin database dump --to-path/neo4j/backup/ neo4j # neo4j-admin database dump --to-path/neo4j/backup/ neo4j 2024-12-11 13:24:49.1260000 INFO [o.n.c.d.DumpCommand] Starting dump of database neo4j 2024-12-11 13:24:49.1460000 ERROR [o.n.c.d.DumpCommand] Failed to dump database neo4j: The database is in use. Stop database neo4j and try again. 2024-12-11 13:24:49.1480000 ERROR [o.n.c.d.DumpCommand] Dump failed for databases: neo4j Dump failed for databases: neo4j Run with --verbose for a more detailed error message.也就是说我们无法在容器内进行操作需要停止容器后进行备份恢复1. 导出备份停止容器首先停止要导出的neo4j数据库在docker compose文件所在位置下执行dockercompose stop neo4j[]Stopping1/1 ✔ Container neo4j Stopped执行备份在docker compose文件同级目录下执行dockerrun--interactive--tty--rm\--volume./neo4j/data:/data\--volume./neo4j/data/backup:/neo4j/backup/\neo4j\neo4j-admin database dump neo4j --to-path/neo4j/backup/# 如下日志neo4j-admin database dump neo4j --to-path/neo4j/backup/2024-12-1113:01:51.8640000 INFO[o.n.c.d.DumpCommand]Starting dump of databaseneo4jDone:36files,257.9MiB processedin0.281seconds.2024-12-1113:01:52.4490000 INFO[o.n.c.d.DumpCommand]Dump completed successfully部分命令解释### --rm容器停止后自动删除避免占磁盘空间。### -v ./neo4j/data/backup:/neo4j/backup/ 将宿主机的/data/neo4j目录挂载到容器内的/neo4j/backup/目录实现数据共享与持久化。### neo4j-admin database dump neo4j --to-path/neo4j/backup/在容器内用neo4j-admin工具备份名为neo4j的数据库备份文件存到容器内/neo4j/backup/目录实际会存到宿主机对应挂载目录。2. 导入恢复停止容器(如果未停止)首先停止要导入的neo4j数据库在docker compose文件所在位置下执行dockercompose stop neo4j执行导入dockerrun-it\--rm\-v./neo4j/data/backup:/neo4j/backup/\neo4j:latest\neo4j-admin database load --from-path/neo4j/backup/ neo4j# 如果数据库存在会报如下错误Failed to load databaseneo4j:Database already exists: neo4j Load failedfordatabases:neo4jLoad failedfordatabases:neo4jRun with--verboseforamoredetailed error message.强制导入(谨慎操作)dockerrun-it\--rm\-v./neo4j/data/backup:/neo4j/backup/\neo4j:latest\neo4j-admin database load --from-path/neo4j/backup/ neo4j --overwrite-destinationtrue Done:36files,257.9MiB processedin0.209seconds.部分参数说明### --rm容器停止后自动删除节省磁盘空间。### -v./neo4j/data/backup:/neo4j/backup/将宿主机的./neo4j/data/backup目录挂载到容器内/neo4j/backup/目录实现数据共享与持久化。### neo4j:latest指定运行Neo4j的最新版本镜像。### neo4j-admin database load --from-path/neo4j/backup/ neo4j --overwrite-destinationtrue在容器内用neo4j-admin工具从/neo4j/backup/路径对应宿主机相关目录加载备份数据到名为neo4j的数据库--overwrite-destinationtrue表示覆盖原有数据库3. 启动容器dockercompose start neo4j