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の設定。これで、cronジョブを使用してData.fsをパックするようにZEOサーバーに指示できます(本番PloneインスタンスのZODBパックをcron自動化するための推奨される方法は何ですか?を参照)。

  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 に答える