本文根據Neo4j3.5官方文檔編寫。主要介紹離線備份、單機/集羣恢復,在線全量/增量備份、單機/集羣恢復。
說在前頭,Neo4j社區版僅支持離線備份,企業版才支持在線備份。
我用的社區版是3.5.8,企業版是3.5.7,默認數據爲graph.db
一、離線備份與恢復
主要是用 neo4j-admin dump 和 neo4j-admin load 命令
1、備份命令
neo4j stop && neo4j-admin dump --database=graph.db --to=/backups/neo4j-`date "+%Y_%m_%d"`.dump && neo4j start
--database 要備份的數據庫
--to 備份路徑
2、恢復命令
2.1 單機恢復
neo4j stop && neo4j-admin load --from=/backups/neo4j-`date "+%Y_%m_%d"`.dump --database=graph.db --force && neo4j start
2.2 集羣恢復
(1)關閉集羣所有實例
neo4j stop
(2)解綁實例。每個集羣實例上都運行如下命令
neo4j-admin unbind --database=graph.db
(3)恢復。每個集羣實例上都運行如下命令
neo4j-admin load --from=/backups/neo4j-`date "+%Y_%m_%d"`.dump --database=graph.db --force
(4)開啓集羣內所有實例
neo4j start
二、在線備份與恢復
主要是用 neo4j-admin backup 和 neo4j-admin restore 命令
1、備份命令
1.1 全量備份
neo4j-admin backup --backup-dir=/backups/ --name=neo4j-`date "+%Y_%m_%d"`.backup
1.2 增量備份
neo4j-admin backup --backup-dir=/backups/ --name=neo4j-`date "+%Y_%m_%d"`.backup --fallback-to-full=true --check-consistency=true
2、恢復命令
2.1 單機恢復
neo4j stop && neo4j-admin restore --from=/backups/neo4j-***.backup --database=graph.db --force && neo4j start
2.2 集羣恢復
(1)關閉集羣所有實例
neo4j stop
(2)解綁實例。每個集羣實例上都運行如下命令
neo4j-admin unbind --database=graph.db
(3)恢復。每個集羣實例上都運行如下命令
neo4j-admin restore --from=/backups/neo4j-***.backup --database=graph.db --force
(4)開啓集羣內所有實例
neo4j start
總結
1、 離線備份產生的是dump後綴的文件,不能直接打開可讀;而在線備份產生的是和neo4j/data/databases/***.db內容一樣的文件夾,可以直接看文件夾結構
2、在線備份的增量其實是檢測備份目錄有沒有同名的備份文件,有則追加數據至該文件夾,沒有就全量一份。
3、在線備份可以通過添加參數--from ip:端口, 從而實現遠程在線備份
4、遠程在線備份時,只要有neo4j-admin工具即可備份,無需啓動實例。