备份ZODB blob的正确方法是什么?

joe*_*ker 7 python zope plone zodb blobstorage

我使用plone.app.blob将大型ZODB对象存储在blobstorage目录中.这减少了Data.fs上的大小压力,但我无法找到有关备份此数据的任何建议.

我已经通过将网络备份工具指向repozo备份目录来备份Data.fs.我应该简单地将该工具指向blobstorage目录来备份我的blob吗?

如果正在重新打包数据库或在复制过程中添加和删除blob,该怎么办?blobstorage目录中是否有必须按特定顺序复制的文件?

Dav*_*ick 13

只要在发生这两个操作时数据库没有被打包,对Data.fs进行repozo备份然后执行blobstorage目录的rsync应该是安全的.

这是因为,至少在使用带有FileStorage的blob时,对blob的修改总是会导致创建一个基于对象id和事务id命名的新文件.因此,如果在备份Data.fs之后写入新的或更新的blob,那么它应该不是问题,因为Data.fs引用的文件应该仍然存在.在数据库打包之前删除blob不会导致文件被删除,因此也应该没问题.

以不同的顺序执行备份,或者在备份期间执行打包,可能会导致备份Data.fs引用未包含在备份中的blob.


lim*_*imi 3

备份“blobstorage”就可以了。不需要特殊订单或其他任何东西,非常简单。

Plone 中的所有操作都是完全事务性的,因此在事务中间进行备份应该可以正常工作。这就是您可以对 ZODB 进行实时备份的原因。在不知道您所在的文件系统的情况下,我猜它应该按预期工作。

  • 这个答案是不正确的——joeforker 提出的担忧是有道理的。有关推荐的方法,请参阅我单独的答案。 (4认同)
  • 我在备份 Data.fs 之前备份我的 blobstorage 目录,并且当我开始备份 Data.fs 时,另一个 blob 已添加或更新,这是否有效?如果我在备份时打包数据库会发生什么情况? (2认同)