001-005608

パッケージ版 Garoon

関心あり
0人の方が関心を示しています

データが大量に蓄積されると、バージョンアップに失敗する場合がある。

種別
サーバー環境の制限事項
機能
  • 全般
  • ワークフロー
  • ロギング
再現バージョン
  • 3.1.0
改修バージョン
公開日
2013-04-25
更新日
2014-04-10

詳細

バージョンアップ前のガルーンでデータが大量に蓄積されている場合、DB99999エラーが発生し、バージョン 3.1.0へのバージョンアップに失敗する場合があります。

 

補足:

  • ロギングとワークフローのデータで本現象が発生することを確認していますが、その他のアプリケーションデータでも発生する可能性があります。

  • バージョン 2.1.3からバージョン 3.1.0へのバージョンアップで本現象が発生することを確認していますが、その他のバージョンでも本現象が発生する可能性があります。

 

例:

ロギングのレコード件数が多い環境でバージョン 2.1.3のガルーンからバージョン 3.1.0のガルーンへバージョンアップする場合:

  • 次の環境で現象が発生することを確認しています。
    -----------------
    サーバーマシン:
    Red Hat Enterprise Linux 4 (32bit)

    マシンスペック:
    CPU:Intel(R) Xeon(R) E5620 @ 2.40GHz
    メモリ:512 MB

    データの状態:
    ロギングのレコード件数が21300000件の場合: 再現する
    ロギングのレコード件数が21200000件の場合: 再現しない
    -----------------

  • バージョンアップ時のエラーは次のとおりです。
    -----------------
    [Wed, 13 Feb 2013 18:52:57 +0900] start log table
    [Wed, 13 Feb 2013 18:52:57 +0900] dump old table data...
    [Wed, 13 Feb 2013 19:09:23 +0900] recreating table...
    [Wed, 13 Feb 2013 19:09:25 +0900] restore table data...

    Error: DB99999
    A database error has occurred.
    Database error number: 7890

    Cause:
    Response from database: Can't find file '/var/www/cgi-bin/cbgrn/versionup/versionup_data.tmp'.

    Counter Measure:
    Contact Cybozu Technical Center.
    -----------------

回避/対応方法

【対応方法】

 

次のどちらかの方法で対応できます。

  • バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除します。

  • バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアします。

 

バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除する:
ロギングのレコード件数が多い環境でバージョンアップに失敗した場合、バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除します。

  1. バージョンアップログ(versionup_XXX.log)を確認し、バージョンアップ処理が停止している箇所を確認します。

    例:
    -------------------------
    [Wed, 13 Feb 2013 18:52:57 +0900] start log table
    [Wed, 13 Feb 2013 18:52:57 +0900] dump old table data...
    [Wed, 13 Feb 2013 19:09:23 +0900] recreating table...
    [Wed, 13 Feb 2013 19:09:25 +0900] restore table data...
    -------------------------

  2. バージョンアップ前のデータを用意し、処理が停止している箇所のデータを削除します。

    例:
    バージョンアップ前のデータから、ロギングのログを削除します。

    • バージョン 2.5.4以前のガルーンの場合:
      システム管理画面より、ロギングのログを削除します。

      補足:
      処理の途中でタイムアウトになる可能性があります。
      状況に応じてApache等のタイムアウトの設定値を変更してください。

    • バージョン 3.0.0からバージョン 3.0.3のガルーンの場合:
      コマンドラインからロギングのログを削除します。

      例:
      2013/01/20よりも古いログの件数を確認する

      Windowsの場合:

      grn.exe -q -C -f code\command\delete_loggings.csp before=2013-01-20

      Linuxの場合:

      ./grn.cgi -q -C -f code/command/delete_loggings.csp before=2013-01-20

      2013/01/20よりも古いログを一括削除する

      Windowsの場合:
      grn.exe -q -C -f code\command\delete_loggings.csp before=2013-01-20 exec

      Linuxの場合:
      ./grn.cgi -q -C -f code/command/delete_loggings.csp before=2013-01-20 exec

  3. バージョンアップを行います。

 

   補足:

  • 削除が必要となるデータの量は、お客様の環境によって異なります。

 

 

バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアする:
ワークフローやその他のアプリケーションのレコード件数が多い環境でバージョンアップに失敗した場合、バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアします。

上記の操作には内部データの変更が必要になりますので、
お手数ですが、オフィシャル パートナー、または弊社テクニカルサポートにお問い合わせください。

 

 

------------------------------------------------------------
【更新履歴】
2014/04/10 対応方法 手順2の記載を修正しました。