はじめに
以下のように遠隔にデータベースがある場合、クライアント側で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
以上、ご参考になれば幸いです。