Plone现场的每周ZODB包装

Plone现场的每周ZODB包装,plone,zodb,Plone,Zodb,定期(如每周)打包Plone ZODB数据库的最佳实践是什么 Plone ZEO集群和单进程Zope实例有什么不同 使用zeopack+cron 使用wget+someurl+cron+specialzope用户 其他方式 ZClockServer与cron 我发现,如果命令在cron中运行,有时zeopack实际上不会打包数据库。然而,调试这个问题并没有什么问题,因为zeopack和ZODB都没有太多关于自己的报道。有什么想法会导致这种情况吗?这取决于您如何配置站点,有三种选择: 独立,使

定期(如每周)打包Plone ZODB数据库的最佳实践是什么

  • Plone ZEO集群和单进程Zope实例有什么不同

  • 使用zeopack+cron

  • 使用wget+someurl+cron+specialzope用户

  • 其他方式

  • ZClockServer与cron


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

这取决于您如何配置站点,有三种选择:

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

  • ZEO设置。现在,您可以指示ZEO服务器使用cron作业打包Data.fs(请参阅)

  • 重新加载存储设置。包括它自己的打包脚本;这里有一个构建配置来创建它,然后您可以从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
    
    [buildout]
    包装件=
    reldbpack-conf存储
    重新存储zodbpack
    [数据库包配置]
    配方=collective.recipe.template
    输入=内联:
    packgc-true
    创建架构false
    [数据库连接信息]
    输出=${buildout:directory}/etc/zodbpack.conf
    [reldbpack]
    recipe=zc.recipe.egg:脚本
    蛋=
    重新存储
    scripts=zodbpack
    初始化=
    config='${buildout:directory}/etc/zodbpack.conf'
    arguments=config
    

  • 关于这一点的一些讨论已经在讨论中了,我只在一些较旧的ZODB版本中看到了zeopack和cron的问题,而不是在正统的ZODB版本中。