定期(例如每周)包装Plone ZODB数据库的最佳做法是什么?
Plone ZEO集群和单个进程Zope实例有何不同?
使用zeopack + cron
使用wget +一些URL + cron +特殊Zope用户
其他方式?
ZClockServer与cron?
我发现,如果命令在cron中运行,有时zeopack实际上不会打包数据库。但是,调试此问题几乎没有问题,因为zeopack和ZODB都没有对自己报告太多。什么可能导致这种情况的想法?
答案 0 :(得分:3)
这取决于您在3个选项之间配置网站的方式:
独立,使用Data.fs(默认值)。您唯一的选择是使用wget
cron作业,最好使用专用的Zope用户,其唯一权限是打包。这是因为Zope进程是唯一可以访问Data.fs的进程。
ZEO设置。现在,您可以指示ZEO服务器使用cron作业打包Data.fs(请参阅What is the suggested way to cron-automate ZODB packs for a production Plone instance?)。
RelStorage设置。 RelStorage包含它自己的包装脚本;这是一个用于创建它的buildout配置,然后您可以从cron作业运行它:
[buildout]
packing-parts =
relstorage-zodbpack-conf
relstorage-zodbpack
[relstorage-zodbpack-conf]
recipe = collective.recipe.template
input = inline:
<relstorage>
pack-gc true
create-schema false
<[yourdatabase]>
[database connection info]
</[yourdatabase]>
</relstorage>
output = ${buildout:directory}/etc/zodbpack.conf
[relstorage-zodbpack]
recipe = zc.recipe.egg:scripts
eggs =
RelStorage
scripts = zodbpack
initialization =
config = '${buildout:directory}/etc/zodbpack.conf'
arguments = config