- - PR -
IBM DB2のアクセス不能のDBについて
1
| 投稿者 | 投稿内容 | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-18 11:31
DB2のアクセス不能のDBについて
はじめて投稿いたします、IanBrownと申します。 IBM DB2の操作について教えていただきたいのですが、どこの掲示板が適切なのか分から ないため、ここに投稿させていただきました。 # javaに関係ない質問で申し訳ありません。 今回、ある業務システムのメンテナンス作業を担当することになりました。 環境は、Windows2000server + IIS です。 データベースは、IBM DB2 UDB7.2 を使用しています。 今回ご質問させていただきたいのは、このUDB7.2についてです。 DB2の使用経験が全然ないため、書籍やネット上の情報を頼りに作業しておりますが、 どうしても解決できないことがあり困っております。 (書籍、ネット上の情報が、oracleに比較してかなり少ないです。) コントロールセンターで参照した場合の構成は以下のようになっています。
今回の業務システムのテスト環境が存在しないため、以下の手順でDBのテスト環境を作成 しようとしました。 目的は、上記の「XY_DB」と同じデータベース(スキーマ、データ共)の構築です。 # コントロールセンターにて、クライアント側から操作。 1) 既存のDB(「XY_DB」)をバックアップ。 2) 「XY_DB」の”新規に復元する”を実行して、バックアップ・イメージとして1)で作成したデータを 指定して、「XY_TEST」という名前のDBの作成を実行。 その際にコントロールセンター内部で生成(実行)されたコマンドは以下のとおりです。
3) 実行後、しばらくしても、正常終了、異常終了の何れのメッセージも表示されません。 ”新規に復元”のダイアログを閉じて、コントロールセンターから参照してみると、[データベース]に 新しいDB「XY_TEST」が存在していました。 しかし、それにアクセスしても、以下のようなエラーメッセージが表示されてアクセスできません。
ネット上で調査しましたが、上記のエラーを解決するための有効な情報は得られませんでした。 ※ 一度失敗した(と思われる)後に、再度2)、3)を実行して「XY_TEST0」というDBを作成しましたが、 やはり同様の結果でした。 # ここからは、DB2コマンドによるサーバ側での操作。 そこで、クライアント側ではなく、サーバ側で「新規に復元」を実行しようと考え、クライアント側から 作成してアクセス不能となっている「XY_TEST」を削除しようとしましたが、以下のメッセージが表示されて 削除できません。
次に、アプリケーションの状況を参照してみると以下のような表示でした。
そこで、ハンドル347、289を強制終了させようとしました。
強制終了は正常終了したように見えたのですが、list applications の結果は先ほどと変わりません。 さらに詳細な情報を見ると、以下のような表示でした。
※ ちなみに、windowsのタスクマネージャのプロセスには、javaw.exe は存在せず。 最後の手段として、DB2を停止しようとしましたが、以下のようなメッセージが出て停止できません。
さて、一体どのようにして、「XY_TEST」、「XY_TEST0」 に接続中(?)のアプリを終了させて、 これらのアクセス不能のDB(ゴミ?)を削除(DROP DATABASE)すればよろしいのでしょうか。 まとまりのない文章で申し訳ありませんが、ご教授よろしくお願いいたします。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-19 08:26
とりあえず、db2 force applications allで一度全てのプロセスを落としてみてはどうでしょうか。
| ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-20 10:38
秀人さん、回答ありがとうございます。
ここへの投稿前に、db2 force applications all の実行を考えたのですが、 ちょっと怖かったので躊躇していました。 で、先ほど思い切って実行してみたのですが、やはりダメでした。 結果としては、以下のリストのハンドル347、289は残ったままで、ハンドル0、1が終了してしまいました。
IWH2LOG.EXE、IWH2SERV.EXE が何者か理解していないため、焦って調査しましたところ、 「コントロール パネル」-->「サービス」から「Warehouse logger」を再起動することにより、 どうにか起動できたようです。(理解不足のため、ちょっと不安ですが。) | ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-20 12:10
IanBrownさん、IBMのサイトのDB2Forumはご存知ですか?
(IanBrownさんと同様の質問があるかどうかは確認していませんが、 有益な情報は多いと思います。) ご質問の件ですが、私もあまり詳しくはないのですが気づいた点だけですが、
この時点では、復元が終わっていなかったのではないかと思います。 この復元コマンドが現在も走りっぱなしで、以下のエラーになるのではないでしょうか。 (復元はDBの大きさにもよりますが、最低でも数時間はかかります)
私に考えられる方法は、 ・復元作業が終わるのを気長に待つ ・タスクマネージャでプロセスをKILLして、サービスからDB2の停止行う (よく行いますが、不具合は出ないようです・・・) くらいです。 お役に立てなくてすみません。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-20 21:06
taroさん、回答ありがとうございます。
知らなかったので、ネットで検索してみました。 たぶん、↓ここでしょうか? http://wsp01.alpha-mail.ne.jp/FRM/DB2/ 後ほど、似たような質問があるかどうか探してみようと思います。
db2 list applications を実行した際の結果リストに表示される javaw.exe という プロセス(今回問題としているプロセス)については、windowsのタスクマネージャには 表示されません。 表示されれば、Killしようと思ったのですが。 (たぶん、そのプロセスは既に存在していない??) 最後の手段として、思い切って、win2000severのリブートも考えようと思います。 (できれば、リブートせずに解決したかったのですが。)
いいえ、とんでもございません。 どんな情報でもありがたいです。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-21 01:54
javaw.exeですが、たしか実態はコントロールセンターだったと思います。
コントロールセンターはJavaで動いていると聞いたことがありますので。 データベースが使用中であるということは、DB2上はまだ復元中であるというメッセージではないかと思います。 これを消すには、インスタンスを消すしかないのですが、インスタンスを管理しているディレクトリーを削除したらうまくいったことがあります。 ただどうやってそのディレクトリーを見つけたかはすみません、忘れてしまいました。 DB2フォーラムで検索してみてはどうでしょうか。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2003-10-21 14:33
最後の手段として、win2000serverをリブートしました。
その結果、db2 list applications で表示されていた不要なプロセスは表示されなくなりました。 そして、それが原因で drop database できなかった不要なDBを削除できました。 以上、とりあえず、ここで質問させていただきました問題は解決しました。 その後、サーバ側のコントロールセンターにて”新規に復元する”を実行しましたところ、 無事に成功しました。 # 所要時間5分ぐらい。データ量が少なかったため、大した時間は掛からなかったようです。 リストア後に、無事にクライアント側からも接続できました。 結局、原因は分からなかったですが、リストア関係の操作は、クライアント側ではなく、 サーバ側で実施するようにした方が良さそうです。 ご意見をいただきましたみなさま、どうもありがとうございました。 | ||||||||||||||||||||||||||||||||
1
