3

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

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

  • 使用 zeopack + cron

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

  • 其他方法?

  • ZClockServer 与 cron?

我发现如果命令在 cron 中运行,有时 zeopack 实际上不会打包数据库。然而,调试这个问题没有什么问题,因为 zeopack 和 ZODB 都没有报告太多关于它们自己的信息。任何想法可能导致这种情况?

4

1 回答 1

3

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

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

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

  3. 一个 RelStorage 设置。RelStorage 包含它自己的打包脚本;这是创建它的构建配置,然后您可以从 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
    
于 2012-08-07T09:44:01.520 回答