Plone网站的每周ZODB包装

时间:2012-08-07 07:54:21

标签: plone zodb

定期(例如每周)包装Plone ZODB数据库的最佳做法是什么?

  • Plone ZEO集群和单个进程Zope实例有何不同?

  • 使用zeopack + cron

  • 使用wget +一些URL + cron +特殊Zope用户

  • 其他方式?

  • ZClockServer与cron?

我发现,如果命令在cron中运行,有时zeopack实际上不会打包数据库。但是,调试此问题几乎没有问题,因为zeopack和ZODB都没有对自己报告太多。什么可能导致这种情况的想法?

1 个答案:

答案 0 :(得分:3)

这取决于您在3个选项之间配置网站的方式:

  1. 独立,使用Data.fs(默认值)。您唯一的选择是使用wget cron作业,最好使用专用的Zope用户,其唯一权限是打包。这是因为Zope进程是唯一可以访问Data.fs的进程。

  2. ZEO设置。现在,您可以指示ZEO服务器使用cron作业打包Data.fs(请参阅What is the suggested way to cron-automate ZODB packs for a production Plone instance?)。

  3. 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