データベースの移行について
お世話になっております。
Zabbixのデータベース移行がうまくいかないのでご教授願いたく。
※添付ファイルの画像参照
【移行元の環境】
Zabbix 1.4.6-2
PHP 5.1.6-23
MySQL 5.0.77
移行元からのデータベースバックアップ
# mysqldump -uzabbix -p --default-character-set=utf8 --database zabbix > zabbix-db.db
【移行先環境】
Zabbix 1.4.6-2
PHP 5.1.6-44
MySQL 5.0.95
移行先へのデータベース復元
# mysqladmin -uzabbix -p create zabbix --default-character-set=utf8
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'pass';
mysql> flush privileges;
# mysql -uzabbix -p zabbix < /usr/share/doc/zabbix-1.4.6/dbinit/schema/mysql.sql
# mysql -uzabbix -p zabbix < /usr/share/doc/zabbix-1.4.6/dbinit/data/data.sql
# mysql -uzabbix -p zabbix < /usr/share/doc/zabbix-1.4.6/dbinit/data/images_mysql.sql
# mysql -uzabbix -p zabbix < zabbix-db.db
移行元のデータベース構造を変えるような運用は一切しておりません。
移行先Zabbixのバージョンを2.2と2.4を試しましたが結果は変わらずでした。
ポカミス程度であれば楽なのですが、、
よろしくお願いいたします。
- SS.png (307.72 KB)
TNK - 投稿数: 4769
以下のSQL文の読み込み作業は不要だと思います。
気になる点として、ノード構成を利用されていましたか?
もしノード構成を利用されているのであれば、今後、ノード構成がなくなりますので、
2.4以降にバージョンアップする際には、Zabbixプロキシを利用する構成にするなど
Zabbixの構成をどのようにするかご検討ください。
あと、1.4系から2.2など新しいバージョンにする場合は、データベースの変換処理が
必要です。
1.4系から1.6系への変換、1.6系から1.8系への変換、1.8系から2.0系への変換を手動
で行い、2.0系のデータベースを利用して2.2系のZabbixサーバを起動すると、自動的に
データベースの変換処理が行われて、その変換処理が終了してはじめて2.2系が利用できる
ようになります。
旧バージョンのデータベースのままで新しいバージョンのZabbixは利用できませんので
ご注意ください。
詳細は、以下のURLをご参照ください。
http://www.zabbix.jp/node/2551
http://www.zabbix.jp/node/2577
Saku999 - 投稿数: 5
TNK様
ご教授ありがとうございます。
不要なSQLを適用しないで移行を試してみようと思います。
ノード構成は利用していませんが情報展開ありがとうございます。
移行先Zabbixを最終的に2.4で運用する予定ですので
データベースを1.4から順に2.4まで変換処理を進めたいと思います。
※追記
不要SQLを適用しないで前述の移行を行いましたが結果は変わらずでした。
エラーから察するにデータベースの構造や権限がそもそも違うように思えるのですが、、
移行元と移行先のZabbixサーバの相違点はネットワークくらいしか思いつきません。
客観的に見て思い当たる点などありましたらご指摘いただけたらと思います。
KAZ - 投稿数: 1085
一旦、drop databaseして、以下のコマンドでやってみてください。
fripper - 投稿数: 495
インポート時に実行されているコマンドが
# mysql -uzabbix -p zabbix < zabbix-db.db
とされていますが、db-user zabbix にとってのデフォルトデータベースへ向けて
zabbix-db.db ダンプファイルの内容が取り込まれてしまっており
そのDB名が「zabbix」ではなくなっているのではないでしょうか?
# mysql -uzabbix -p zabbix
だけで mysql client からログインさせてみた際の
「現在選択されているデータベース」はどうなっていますか?
# mysql -uzabbix -p zabbix -Dzabbix < zabbix-db.db
のようにしなければいけないとか‥?
Saku999 - 投稿数: 5
皆様、返信ありがとうございます。
結果から言うと解決しました。
ポカミスでした、、。
移行元のZabbixバージョンが1.4ではなく1.6でした。
yumで確認したバージョンが1.4だっただけでZabbix画面は1.6となっており(自分の目を疑いました)
おそらくソースから1.6にアップデートされた環境だったのかなと。
基本的なバージョン確認をしっかり行っていませんでした。
移行先をZabbix1.6にしてテーブル構造を比較したら一致したので
DBを入れ込んだら正常動作となりました。
ご助言いただいた方々、誠にありがとうございました。
ポカミスのないよう精進したいと思います。