Skip to Content
Neo4j:权威指南
book

Neo4j:权威指南

by Luanne Misquitta, Christophe Willemsen
July 2025
Beginner to intermediate
410 pages
5h 15m
Chinese
O'Reilly Media, Inc.
Content preview from Neo4j:权威指南

第 9 章 备份和还原 备份和恢复

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

ElectricHarmony公司使用Neo4j的历程堪称是一场变革。起初,Neo4j 只是一个用于映射艺术家、专辑和用户偏好的实验性图形数据库,但现在已迅速成为其推荐引擎的核心组件。团队已经成功构建了实时音乐发现、播放列表策划和艺术家关系映射,所有这些都得益于 Neo4j 以闪电般的速度遍历复杂连接的能力。

但是,成功伴随着规模,规模伴随着风险。

随着 ElectricHarmony 用户数量的激增,其图形数据库也在不断扩大。每天都要创建和更新数百万个关系,停机已不再是一种选择。他们的工程团队已经优化了查询、调整了索引,并将 Neo4j 部署到生产中,但仍有一个关键环节:强大的备份和恢复策略。

写入路径

在深入研究备份策略之前,了解Neo4j如何写入和持久化数据()至关重要。Neo4j 的事务生命周期遵循结构化的顺序,以确保持久性和一致性。

图9-1显示了该序列的高层概览。

图 9-1. 事务生命周期

回顾第二章,当数据库中发生变化时,事务开始。这些更改最初应用于内存并存储在页面缓存中,页面缓存是数据最终写入磁盘之前的中间层。

在事务提交之前,其更改必须写入事务日志,也 称为先写日志(WAL)。这一步骤通过将修改记录到位于事务目录下的一个单独的顺序日志文件中来确保持久性。

一旦事务日志条目被持久写入磁盘,系统就会将事务标记为已提交。这就保证了在出现故障时可恢复修改。提交操作会最终完成事务,使其更改正式可见,并允许系统继续处理后续请求。

检查点

Neo4j 中的检查点 是数据库内务管理流程的一部分。事务日志通过记录所有更改来保证数据库的耐久性,而检查点则通过将脏页面(已提交事务修改的页面)从页面缓存冲洗到存储文件来帮助优化恢复时间。在检查点期间,Neo4j会记录最新的日志位置,所有变化都会反映在存储文件中。这样,系统就能丢弃事务日志中较旧的部分,并在崩溃后更快地重新启动,而无需重放整个日志。

检查点有两个主要用途:

优化崩溃恢复

在崩溃的情况下,Neo4j 会从最后一个检查点开始重放事务日志。检查点越近,数据库恢复所需的工作就越少。如果没有检查点,数据库将不得不重放整个事务历史,从而导致恢复时间延长。

截断事务日志

一旦检查点确认数据已被完全持久化,检查点之前的任何事务日志条目都将成为冗余恢复。这样,Neo4j 就能安全地旋转和删除旧日志,释放磁盘空间,保持日志目录的可管理性。

检查点由以下因素触发:

  • 配置中定义的基于时间或基于卷的时间间隔(如db.checkpoint.interval.time )。

  • 手动触发器,如管理操作中的CALL db.checkpoint()

  • 完整备份

已提交的事务存在于页面缓存中,但不会立即写入存储文件。相反,检查点机制负责在预定义的时间间隔内将页面缓存中的脏页面刷新到持久化存储中。这样可以确保内存中的数据逐步持久化到磁盘,在优化写入性能的同时保持系统的完整性。

在系统崩溃的情况下,Neo4j 可以恢复已提交的事务,因为这些事务已经在事务日志中被刷新到磁盘上,实现了 ACID 的持久性保证。重新启动时,Neo4j 会重播事务日志,重新应用尚未反映在存储文件中的任何更改。检查点通过标记安全日志位置和允许截断旧日志条目来缩短恢复时间,从而加强了这一过程。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

基于scikit-learn和PyTorch的实践机器学习

基于scikit-learn和PyTorch的实践机器学习

Aurélien Géron
大型语言模型:难点 (Chinese Edition)

大型语言模型:难点 (Chinese Edition)

Thársis T. P. Souza, Jonathan K. Regenstein

Publisher Resources

ISBN: 9798341664852