文章目录
第1关:数据备份与恢复
任务描述
本关任务:熟练掌握数据备份与恢复。
相关知识
为了完成本关任务,你需要掌握:
- 数据备份;
- 数据导入。
注意: 在进行数据导入与备份时需要将 neo4j 停止。
导入失败
数据备份
需要先将 neo4j 服务关闭:neo4j stop
。
数据备份需要放在一个存在的文件夹中,所以我们在备份时需要检测备份位置是否存在。
备份代码: neo4j-admin dump --database=graph.db --to=/neo4j/backup/graph_backup.dump
- 代码解释:
dump
(备份数据);
--database=需要备份的数据库
;
--to=备份文件的位置
。
备份成功
数据导入
我们也需要先将 neo4j 服务关闭:neo4j stop
。
数据导入代码: neo4j-admin load --from=/neo4j/backup/graph_backup.dump --database=graph.db --force
- 代码解释:
load
(导入数据);
--from=备份文件位置
;
--database=导入的数据库位置
;
--force
(将数据推入到数据库中)。
导入成功
编程要求
根据提示,在图形界面操作:
- 创建两个节点,节点标签为:
work
,节点属性为:name
,属性值为:xiaohu
、xiaoli
; - 将上面创建的节点数据备份为:
/root/backup/graph_backup.dump
; - 导入备份文件,文件位置为:
/data/workspace/myshixun/step1/backup/graph.dump
。
测试说明
平台会对你编写的代码进行测试: 注意: 评测前,需检查 Neo4j 服务是否开启。
测试输入:无
; 预期输出:
sh
查询导入数据:
n
(:test {name: "champion"})
(:test {name: "S12"})
(:test {name: "oneDay"})
查询备份文件的数据:
n
(:work {name: "xiaohu"})
(:work {name: "xiaoli"})
答案
测试前准备
bashrc
文件定义了neo4j-4.x
版本的环境变量,而JDK
版本是1.8.201
,所以需要换成neo4j-3.x
(应该是出题者的失误下错版本了又忘记把这个环境变量删掉),这里删掉或者换成3.x的文件路径,否则neo4j、neo4j-admin
等命令无法使用
sh
# 修改 Bash Shell 在启动时加载的配置文件
vim ~/.bashrc
# 把最后两行删了之后,重新启动终端
# 更新配置文件
source /etc/profile
# 启动 Neo4j
neo4j start
# 编辑 Cypher 代码
vim 1.cypher
Cypher 代码
sql
create(:work {name: "xiaohu"})
create(:work {name: "xiaoli"})
数据备份与导入
sh
# 启动脚本创建节点
cat 1.cypher | cypher-shell -u neo4j -p 123456 --format plain
# 将 neo4j 服务关闭
neo4j stop
# 创建目录 backup 用于数据备份
mkdir /root/backup
# 数据备份
neo4j-admin dump --database=graph.db --to=/root/backup/graph_backup.dump
# 数据导入
neo4j-admin load --from=/data/workspace/myshixun/step1/backup/graph.dump --database=graph.db --force
# 启动 Neo4j
neo4j start