« 酔心 氷わり原酒 | トップページ | 道路情報 県道52号線通行止め »

2012年8月12日 (日)

DB2 クライアント側接続設定

DB2でも、Oracleでいうところのtnsnames.oraの編集に当たる作業をしないと、サーバに繋がりません。

当たり前だけど。

DB2では、テキストベースの設定ファイルではなくて、コマンドで設定します。

(Linuxとかは設定ファイルがあるのかも。。今回はWindowsクライアントですので、念のため。)

手順としては、

1.リモートノードの登録

2.リモートデータベースの登録

の順で行います。

ノードっていうのぶっちゃけ、どのサーバに接続するのかっていうことで、

データベースっていうのは、対象サーバのどのデータベースに繋ぐかっていうものです。

なので、データベース設定は、ノード設定に依存します。

操作は、コマンドウィンドウから行います。

(スタートボタン -> IBM DB2 -> DB2COPY1(デフォルト) -> コマンド・ウィンドウ)

まずは現状の設定をLISTコマンドで確認。空のはずだけど。

C:\Program Files\IBM\SQLLIB\BIN>db2 "LIST NODE DIRECTORY"
SQL1027N  ノード・ディレクトリーが見つかりません。

C:\Program Files\IBM\SQLLIB\BIN>db2 "LIST DB DIRECTORY"
SQL1031N  指定されたファイル・システムには、データベース・ディレクトリーが見つか

りません。  SQLSTATE=58031

C:\Program Files\IBM\SQLLIB\BIN>

リモートノードを作ります。普通TCPIP接続だと思うし、DB2のポートも変えていないと思うので、

考慮するのはIPアドレスくらいかな。今回は、192.168.1.11という想定で作成。

C:\Program Files\IBM\SQLLIB\BIN>db2 "CATALOG TCPIP NODE DB2NODE1 REMOTE 192.168.
1.11 SERVER 50000"
DB20000I  CATALOG TCPIP NODE コマンドが正常に完了しました。
DB21056W  ディレクトリーの変更は、ディレクトリー・キャッシュがリフレッシュされる

まで反映されません。

C:\Program Files\IBM\SQLLIB\BIN>

次に、リモートデータベースの登録。

C:\Program Files\IBM\SQLLIB\BIN>db2 "CATALOG DB SAMPLEDB AT NODE DB2NODE1"
DB20000I  CATALOG DATABASE コマンドが正常に完了しました。
DB21056W  ディレクトリーの変更は、ディレクトリー・キャッシュがリフレッシュされる

まで反映されません。

C:\Program Files\IBM\SQLLIB\BIN>

両方とも特に存在していなくても通信出来なくても作成だけは出来ますので、

定義ミスには注意。まあ、間違っていたら下記のように、削除して再作成ですね。

一応リモートデータベースの削除→リモートノードの削除の順番で行います。

C:\Program Files\IBM\SQLLIB\BIN>db2 "UNCATALOG DATABASE SAMPLEDB"
DB20000I  UNCATALOG DATABASE コマンドが正常に完了しました。
DB21056W  ディレクトリーの変更は、ディレクトリー・キャッシュがリフレッシュされる

まで反映されません。

C:\Program Files\IBM\SQLLIB\BIN>db2 "UNCATALOG NODE DB2NODE1"
DB20000I  UNCATALOG NODE コマンドが正常に完了しました。
DB21056W  ディレクトリーの変更は、ディレクトリー・キャッシュがリフレッシュされる

まで反映されません。

C:\Program Files\IBM\SQLLIB\BIN>

それぞれ名称は、例の、「8文字以内+アルファベット始まり」の制限があります。

「キャッシュがリフレッシュされるまで~」とメッセージが出てますが、

なにか操作が必要、というわけでもなく、すぐに反映されるみたいです。

正しく作成できたら、接続テストをします。

C:\Program Files\IBM\SQLLIB\BIN>db2 "CONNECT TO SAMPLEDB USER DB2USER USING db2u
ser"

   データベース接続情報

 データベース・サーバー = DB2/NT 10.1.0
 SQL 許可 ID            = DB2USER
 ローカル・データベース別名 = SAMPLEDB


C:\Program Files\IBM\SQLLIB\BIN>

「CONNECT TO」の後ろの文字列は、接続先のデータベース名でなくて、登録したリモートデータベース名なので、

間違えないよう。(つうか、説明が紛らわしいのかな。。)

接続時のユーザとパスワードはデータベースを作成した際に登録したやつです。

忘れた~という場合は、DBサーバのアドミニストレータアカウントでいけます。

(その場合は、SQL許可IDが、「ADMINIST...」となります)

本当に繋ぎたいノードに繋がっているか、SELECT文を発行してみます。

C:\Program Files\IBM\SQLLIB\BIN>db2 "SELECT HOST_NAME FROM SYSIBMADM.ENV_SYS_INF
O"

HOST_NAME



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------
TESTSVR01




  1 レコードが選択されました。


C:\Program Files\IBM\SQLLIB\BIN>

対象のサーバ名が表示されれば、OK!

|

« 酔心 氷わり原酒 | トップページ | 道路情報 県道52号線通行止め »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/538346/55409378

この記事へのトラックバック一覧です: DB2 クライアント側接続設定:

« 酔心 氷わり原酒 | トップページ | 道路情報 県道52号線通行止め »