001-005608
データが大量に蓄積されると、バージョンアップに失敗する場合がある。
- 種別
- サーバー環境の制限事項
- 機能
-
- 全般
- ワークフロー
- ロギング
- 再現バージョン
-
- 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.
-----------------
回避/対応方法
【対応方法】
次のどちらかの方法で対応できます。
- バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除します。
- バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアします。
バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除する:
ロギングのレコード件数が多い環境でバージョンアップに失敗した場合、バージョンアップ前のデータから、バージョンアップに失敗する部分のデータを削除します。
- バージョンアップログ(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.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
- バージョン 2.5.4以前のガルーンの場合:
- バージョンアップを行います。
補足:
- 削除が必要となるデータの量は、お客様の環境によって異なります。
バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアする:
ワークフローやその他のアプリケーションのレコード件数が多い環境でバージョンアップに失敗した場合、バージョンアップに失敗する部分のデータをダンプし、バージョンアップ後にリストアします。
上記の操作には内部データの変更が必要になりますので、
お手数ですが、オフィシャル パートナー、または弊社テクニカルサポートにお問い合わせください。
------------------------------------------------------------
【更新履歴】
2014/04/10 対応方法 手順2の記載を修正しました。