dumpからリストア後、DBに接続できない
いつもお世話になっております。
表題の件につきまして、ご質問させてください。
zabbixが載っているMYSQLに障害が発生してしまったため、dumpからリストアをしましたが、GUIに下記エラーが出力されており、ログインできない事象が発生しております。
GUIに出力されているエラー
Error in query [SELECT p.* FROM profiles p WHERE p.userid=0 ORDER BY p.userid,p.profileid] [Table 'zabbix.profiles' doesn't exist]
$ sudo less /var/log/zabbix/zabbix_server.log
24532:20170105:142814.401 Starting Zabbix Server. Zabbix 2.4.5 (revision 53282).
24532:20170105:142814.401 ****** Enabled features ******
24532:20170105:142814.401 SNMP monitoring: YES
24532:20170105:142814.401 IPMI monitoring: YES
24532:20170105:142814.401 WEB monitoring: YES
24532:20170105:142814.401 VMware monitoring: YES
24532:20170105:142814.401 Jabber notifications: YES
24532:20170105:142814.401 Ez Texting notifications: YES
24532:20170105:142814.401 ODBC: YES
24532:20170105:142814.401 SSH2 support: YES
24532:20170105:142814.401 IPv6 support: YES
24532:20170105:142814.401 ******************************
24532:20170105:142814.401 using configuration file: /etc/zabbix/zabbix_server.conf
24532:20170105:142814.428 [Z3005] query failed: [1146] Table 'zabbix.users' doesn't exist [select userid from users limit 1]
24532:20170105:142814.428 cannot use database "zabbix": database is not a Zabbix database
zabbixユーザーを作成し直してみましたが、事象変わらずです。
ご確認いただけますでしょうか。
よろしくおねがいいたします。
TNK - 投稿数: 4729
エラーメッセージにある通り、データベースzabbixにprofilesとい
うテーブルが無いようです。
データベースのバックアップ手順と復旧手順を再確認してください。
myammyam - 投稿数: 10
TNK様
やはりバックアップが正常に終了していなかったのが原因でしょうか。
ご返信ありがとうございました。
TNK - 投稿数: 4729
バックアップが正常に終了していなかった、だけではわかりません。
どのような操作でバックアップを実行して、具体的に何がどうなった
のですか?
詳細なエラーメッセージはありませんか?
あと、復旧手順はどのように行いましたか?
バックアップ手順と復旧手順が合致していないと、別のデータベース
にデータを復旧させてしまうことも考えられます。
何がバックアップできていたのか、そのバックアップから戻す時に、
きちんとZabbix用のデータベース上に戻すように操作したかを中心
に手順の再確認をされてはいかがでしょうか?
myammyam - 投稿数: 10
下記コマンドにてdumpリストアを実行しております。
なお、共にコマンド実行時にエラー等は出力されておりませんでした。
mysqldump -u root -x --default-character-set=utf8 --database zabbix > zabbix-dump_utf8.sql
mysql -u root zabbix < zabbix-dump_utf8.sql
TNK - 投稿数: 4729
それでは、「バックアップが正常に終了していなかった」というの
は、なぜわかったのですか?
あと、手順に関してですが、記載頂いたmysqldumpコマンドでバッ
クアップを作成されたのであれば、出力されたSQL文内にデータベ
ースの作成が実行されるようになっているはずです。
記載頂いたmysqlコマンドでの復旧手順ですと、すでにzabbixデー
タベースがあることを前提にしている実行手順になってしまってい
るのではないでしょうか?
この手順のままだと、SQL文の最初にあるCREATE DATABASE文でエラー
になっていたと思われます。
ちなみに、MySQLサーバー上のzabbixデータベースは削除した後で、
$ mysql -u root < zabbix-dump_utf8.sql
と実行すれば、バックアップしておいたzabbixデータベースを復元
できているようです。
あとは、そのzabbixデータベースへアクセスするユーザーの存在確
認とアクセス権限を確認すればよいと思います。