JackRabbit:如何将所有文件系统数据移动到DB中。消除FileSystem上的数据/版本控制/文件

时间:2013-08-07 09:58:31

标签: content-management-system repository jackrabbit jcr

我有一个Jackrabbit作为独立服务器。我已经配置了pool.OraclePersistenceManager来保存我在Oracle11中的所有数据。数据被移动到DB,但文件系统目录,即“存储库”仍然存在于服务器文件系统上。如果我从文件系统中删除“repository”目录,那么我无法获取我的文档。这很奇怪。

我将repo移动到Oracle DB进行定期备份,并使其可用于驻留在不同服务器计算机上的多个jackrabbit实例,并且一次只有一个服务器处于活动状态。我这样做是为了防止停机,如果一台服务器发生故障,另一台jackrabbit实例就会启动并连接到同一个数据库实例。

还有一件事如果从数据库中截断repo数据,那么在DB中再次显示jackrabbit服务器数据的重启。这是正确的行为吗?我想如果从DB中删除数据文件行,那么即使重启了jackrabbit实例,数据也不应该在db中可用。

我想消除文件系统中的数据保存。

如果有人可以描述长耳兔目录使用情况和数据库使用情况,那将会很棒。以及他们如何相关。

4 个答案:

答案 0 :(得分:2)

您可以查看clustering documentation,因为大多数配置/内容必须在节点之间共享,因此“更简单”的方法之一是将所有内容存储在数据库中。看起来你必须共享配置,所以我担心你必须为配置文件设置一些NFS共享。

答案 1 :(得分:0)

存储库配置(文件repository.xml)需要位于文件系统中;我无法避免这种情况。但是,这只是一个不可变的配置文件,所以我想知道这是不是真的有问题。如果是,为什么?

如果您使用搜索索引,则其文件存储在本地文件系统中。除非您禁用搜索索引,否则没有简单的方法。

答案 2 :(得分:0)

我设法使用群集移动所有数据,这符合我的备份目的。我创建了两个集群节点(遵循JackRabbit集群文档)。然后将一个节点保留为脱机,另一个节点保持在线状态因此,当出现任何问题时,我的第二个集群将会生效并替换第一个集群节点。我正在节点B中对节点A进行修改。

所以我认为我的备份和恢复工作得很好。至少我们可以称之为一个转向的环境。

答案 3 :(得分:0)

我做了集群事情,现在如果一个节点出现故障,我会启动第二个节点,并且所有文档/资产都可用。但仍然无法从文件系统中删除存储库目录。 Atleast现在我不需要担心它,因为我在服务器崩溃问题中获取我的数据