コンテキスト:
Zenoss 2.2の実行時間が長すぎたため、現在のバージョン3.2にアップグレードする時期が来たと判断しました。アップグレード手順を実行しました ここ 、各増分バージョンのアップグレード後にすべてが機能していることを確認しました。不明な場合は必ず再起動し、すべてのデータベース移行(およびアップグレード前のZenPack)が正しく適用されていることを確認しました。とにかくあまり使用していなかったいくつかの古いZenPackを除いて、すべてが機能しました。 CentOS 5を実行しているので、中間アップグレードにはsourceforgeで入手可能な古いrpmバージョンを使用し、yumを使用して最後の「ホップ」を3.2にしました。何らかの理由で、yumは3.2のコアzenpackをインストールしなかったので、手動でインストールしましたが、すべて問題ありませんでした。zenossは問題なく動作し、問題はありませんでした。ええと... 1つを除いて。
問題:
Zenossのイベントデータベースのcron/mysqldumpを使用してバックアップをスケジュールします。これらのバックアップは毎日実行され、通常は約7〜800MBのスペースを占有します。 Zenossのアップグレード後、これらのバックアップは200GB以上(「G」付き!)のスペースを占有していますが、まだ1つの仕上げは見ていません。バックアップを実行するために、
mysqldump -A | gzip > dump-12-28-2011.sql.gz
MySQL 5があるので、-extended-insertはmysqldumpのデフォルトパラメータです。データベースを使用しているのはZenossだけです(そして「events」データベースはmysqlデータベース以外に存在する唯一のものです)。ダンプの間、Zenossをオフにしました。私のibdata1(1つしかありません)ファイルは現在約13GBです。アップグレード前の大きさはわかりません。私は この解決策 古いイベントの詳細エントリを削除しようとしました。クエリは永久に実行されましたが、その後、ダンプのサイズは以前と同じように膨らみます。なんでこんなことが起こっているの?アップグレード前のバックアップがありますが、元に戻す必要がありますか?
TL; DR:
マルチバージョンのアップグレード後に、Zenossの「イベント」データベースが1000倍大きくダンプするのはなぜですか?
数日間掘り下げた後、私は問題を理解しました:InnoDBの破損。アウトイベントデータベースは本当に非常に大きかった(1年分の古いイベントを保持していて、大量のWindowsコンピューターが厄介な小さなことを報告していたので、大量のデータがあった)が、それは問題ではなかった。 $ZENHOME\Products\ZenUtils\ZenDeleteEvents.py -n 60
を実行して、イベント履歴を60日に戻しましたが、途中でMySQLがクラッシュしました。 MySQLログを調べたところ、大量のInnoDB破損エラーがありました。これが最終的な解決策でした。
mysqldump -uzenoss -pzenoss events > dump.sql
を介してイベントデータベースをダンプします。何らかの理由で、ZenDeleteEvents.pyを介してプルーニングした後、ダンプは機能し、管理できないほど大きくなることはありませんでした。zeneventbuild localhost zenoss zenoss events
を実行します(これらのパラメーターは他のパラメーターとは異なる場合があります。構文はzeneventbuild <dbhost> <dbuser> <dbpassword> <dbname>
です。mysql
を実行し、次にgrant super on *.* to 'zenoss'@'localhost' identified by 'zenoss';
を実行しますmysql -uzenoss -pzenoss events < dump.sql
を使用して、イベントデータベースダンプを復元しますその後、すべてが正常に機能しましたが、歴史的なイベントはあまりありませんでした(とにかく使用していませんでした)。 このスレッド zenossフォーラムでは、何が起こっているのかを理解するのに役立ちました。