トリガーとの依存関係によりトリガーが削除できない

お世話になっております。
当環境にて、zabbixのトリガーの依存関係がおかしくなり、ホストの追加ができない状態となってしまいました。

現在運用中のZabbix-Serverでデータベースが破損してしまい、フルダンプしたDBをリストアしたのですが、テンプレート上のトリガーが元々
登録していたデータがリストアされず、異なったデータがインポートされてしまったようです。

 ※下記のコマンドでdumpを取得していたのですが、インポート時にテンプレートとトリガーの紐付けがおかしくなってしまいました。

  # mysqldump -uroot --opt --flush-logs --single-transaction --database zabbix > $TODAYS_BAKDIR/zabbix.dump.sql

実際にインポート後のZabbixのトリガー設定に関する画面を参照すると、ほとんどのトリガーの条件式が『ERROR』表記となってしまっており、
かつ、他のテンプレートと依存関係にあるトリガーについては、削除することもできません。
(添付画像が実際のトリガーの一覧画面になります。)

依存関係にあるトリガーを削除する方法をご教示いただきたい次第でございます。

Zabbix-Serverの情報に下記になります。

 OS    :CentOS 6.5
 zabbixバージョン :2.2.11-1

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

正常に機能しているときに取得したバックアップがあるのであれば、
それからリカバリしなおしたほうが早いと思います。

試しに、書かれていたコマンドで取得したバックアップからリカバ
リできるか試してみましたが、正常にリカバリすることができまし
た。

インポート時におかしくなったとのことですが、リカバリの手順に
誤りがあるのではないでしょうか?
具体的にどのような手順でリカバリを行われたのかをお教えくださ
い。

正常に機能していた際に下記のコマンドDBのdumpを取得しておりました。

 mysqldump -uroot --opt --flush-logs --single-transaction --database zabbix > $TODAYS_BAKDIR/zabbix.dump.sql;
  「$TODAYS_BAKDIR」はバックアップ当日の日付が入るようにスクリプトを組んでいます。

その後、『ibdata1』が肥大しすぎてしまい、サーバの空き容量が枯渇してしまったため、『ibdata1』を別のパーティションへ
一時的に移動したり、『[テーブル名].frm』ファイルを別のディレクトリへ移動したところ、zabbixデータベース上にテーブルが
1つも存在しない状態となってしまいました。

そこから、上記mysqldumpコマンドで取得したデータを下記のコマンドでリストアを実施いたしましたが、全てのテーブルデータが
リストアされていないような状態となりました。

 mysql -u root -p < zabbix.dump.sql

元々、108テーブル存在していたうちの下記のテーブルが存在しない状態となりました。

 trends_uint
 trigger_depends
 trigger_discovery
 triggers
 user_history
 users
 users_groups
 usrgrp
 valuemaps

上記のテーブルを別のZabbix-Server環境から取得し、インポートを行い、さらにユーザー等を手動で書き換えを実施したところ、
Zabbixへログインは可能となり、アイテムで指定しているデータの収集はできるようになりましたが、新規でホストを登録しようとすると、
トリガーの依存関係がおかしな状態となってしまい、ホストの追加/削除ができない状態となってしまっております。

ユーザー TNK の写真

質問させてください。

zabbixデータベース上にテーブルが1つも存在しない状態となって
しまった後で、データーディレクトリの初期化を行いましたか?

症状からしてMySQLのデータベースの管理情報が破損してしまって
いる可能性が高そうです。
初期化を行わないと、MySQLのデータの管理情報も破壊されている
状態で、そこにバックアップから流し込んでもデータベースの正常
な復旧は期待できません。

一度、データディレクトリを作成しなおしてみてはいかがでしょう
か?

操作例:
# service zabbix-server stop
# service zabbix-agent stop
# service httpd stop
# service mysqld stop
# cd /var/lib/
# mv mysql mysql.bak
# mysql_install_db
# chown -R mysql:mysql /var/lib/mysql/
# chmod 755 /var/lib/mysql/
# service mysqld start
# mysql -uroot < zabbix.dump.sql
# mysql -uroot
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password' ;
mysql> exit
# service zabbix-agent start
# service zabbix-server start
# service httpd start

注:
・使用しているプロダクトのバージョンやディレクトリ構成によっ
 ては引数を明示的に指定することが必要です
・MySQL上のrootアカウントのパスワードの再設定が別途必要です
 (mysql_secure_installationの実行するなど)

仰っていただいた通り、データーディレクトリの初期化を実施しておりませんので、実施したいと考えております。

ただ、懸念点としては、現状取得しているデータが膨大なため、リストアに1週間ほどの時間を要してしまい、
その間データを取得することができませんでした。
そのため、できることであれば、現状の状態からテーブルやデータディレクトリの修正等を手動で実施し、
改善できるかを確認したいと思っておりますが、難しいでしょうか?

ユーザー TNK の写真

改善できるかを確認したいと思っておりますが、難しいでしょうか?

できなくはないとは思いますが、壊れている範囲がトリガーの部分
以外もありそうなので、全体としてより正常な状態に修正するのは
多くの労力が必要になることが予想されます。

私自身も完全にデータベース上の各データの関連を把握できている
わけではないので、確認しつつ進めることになるでしょうし、やっ
てみたけど結局ダメだったとなってしまうより、より早くより確実
な方法をとって、より早く復旧させる方法を私なら選択すると思い
ます。