我最近一直在使用恰好使用 JCR 的 Magnolia CMS。
我面临的问题之一是 JCR 数据损坏,我发现我对如何解决这种情况知之甚少。
我对JCR的理解如下:
- JCR是一个规范,有几种实现
- Jackrabbit 是一种 JCR 实现
- Jackrabbit 可以直接使用文件系统或使用 MySQL 等数据库存储信息
现在我的问题是
- 如何备份和恢复 JCR 存储库?
- 是否有任何特定工具可用于检查给定 JCR 的完整性并尝试修复它?我一直在玩 toromiro。
- 是否有任何特定的信息/教程资源可供我阅读以全面正确地理解 JCR 技术?
更新:
我还有一些其他问题:
- 如果给定的 JCR 实现将内容存储在数据库中,我是否可以期望所有内容都存储在该数据库中,或者某些内容(即图像)是否会直接存储在文件系统而不是数据库中?
- 目前我们有一个由三个不同的网络服务器访问的 JCR 存储库,据我了解,JCR 规范考虑了这种情况并保护了存储库,以防止由于并发写入访问导致的内容不一致。它是否正确?
- 具体来说,我们遇到的问题是节点 A 包含对节点 B 的引用,但节点 B 不可访问,在使用 groovy 脚本后,我们设法删除了节点 B(似乎处于不一致状态)但是,我们如何找到对节点 B 的所有引用(可能不仅节点 A 引用了它,而且节点 C 也引用了它)。到底是什么原因导致 JCR 回购变得腐败?,顺便说一句,我们还尝试使用 forceConsistencyCheck、autorepair 和 enableConsistencyCheck 标志,但没有解决问题。
谢谢