(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Db2】リモートにあるデータベースサーバに接続するためにカタログを作成する

スポンサーリンク

はじめに

以下のように遠隔にデータベースがある場合、クライアント側でCATALOGと呼ばれる情報を用意して接続を行います。本記事ではそれらの流れについて記載しました。

尚、クライアント側でdb2コマンドは押下できる状態かつサーバ側ではインスタンス/DBが作成済の状態とします。

環境情報
  • DB2 v11.5
  • RHEL 7

サーバ側での事前確認

インスタンスが待ち受けているポート番号は、インスタンスにログイン後に以下のコマンドで

$ db2 get dbm cfg

SVCENAMEに記載の値で確認できます。

 TCP/IP Service name                          (SVCENAME) = db2c_db2inst1

ポート番号ではなくサービス名で記述されている場合はservicesファイルに具体的なポート番号の記載があり

$ cat /etc/services
...
db2c_db2inst1   51000/tcp

確かに同ポートで待ち受けています。

$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
.,,
tcp6       0      0 :::51000                :::*                    LISTEN   

クライアント側でのカタログ作成

接続先のサーバ情報を以下のように定義します。

$ $ db2 CATALOG TCPIP NODE TEST REMOTE 10.XX.XX.XX SERVER 51000 OSTYPE LINUX
DB20000I  The CATALOG TCPIP NODE command completed successfully.

ここでTESTには任意のサーバ名を入れ、REMOTE部分にはIPアドレスまたはホスト名を入力します。

次にデータベース名(ex SAMPLE)とサーバの紐づけを定義します。

$ db2 CATALOG DATABASE SAMPLE AS HOGE AT NODE TEST AUTHENTICATION SERVER
DB20000I  The CATALOG DATABASE command completed successfully.

認証方式(AUTHENTICATION)をSERVERとした場合はユーザーIDとパスワードをクライアントからサーバーに送信し、サーバ上で認証を行います。

ここまで来れば

$ db2 CONNECT TO HOGE USER DB2INST1

で接続が行なえ

Enter current password for DB2INST1:

上記認証を通るとローカルにあるDBのように操作ができるようになります。

終わりに

定義したノード情報やデータベース情報は以下で確認も可能です。

$ db2 LIST NODE DIRECTORY
$ db2 LIST DB DIRECTORY

以上、ご参考になれば幸いです。