- 2010-05-06 Thu 21:59:14
- db2
前回はこちら http://hitai.blog72.fc2.com/blog-entry-57.html
またまた間があいてしまいました。
勉強のためにDB2をインストールしたのはいいのですが、インスタンスの起動/停止とか、接続とかどうもoracleと勝手がちがうので、いろいろ試してみた。
まずインスタンスの起動。
> db2start
で起動する。
ということなんだけど、複数インスタンスが共存する環境の場合、どのインスタンスに対する操作なのかの指定はosによって違うっぽい。
まずunix系の場合。
unix系osでは、インスタンスはosユーザの所有物となる。
インスタンス名はosユーザ名と同じになるっぽい。
で、inst_aユーザが所有するinst_aインスタンスを起動したければ、inst_aユーザでログイン(su -でも可)し
> db2start
でok。
winの場合はちょっとややこしくて、osでデフォルトの操作対象となるインスタンス名がレジストリに登録されていて、レジストリのDB2INSTDEFに設定されている値が、db2startの操作対象になるっぽい。
で、上記レジストリの値は環境変数(db2プロファイルレジストリとかいうのかな?ちょっと不明)DB2INSTANCEで上書きできる。
> set db2instance=インスタンス名
> db2start
とすると、指定されたインスタンスが起動する。
デフォルトインスタンスを変更したければ、
> db2set -g db2instdef=インスタンス名
とする。
と、ここまでの操作は全てサーバにログインできていての話。
telnetとかリモートデスクトップが使えればいいけど、できればoracleみたいに
> sqlplus sys/oracle@xxx as sysdba
SQL > startup
とかやってみたい。
なんとかできないかマニュアルを漁っていたら、db2startコマンドを発見。
このdb2startコマンドは、osコマンドではなく、db2コマンドラインクライアントの中で使える組み込みコマンド。
> db2
DB2 > db2start remote instance <インスタンス名> hostname <ホスト名> user <ユーザ名> using <パスワード>
上記例のプロンプトに注目。
db2のコマンドラインクライアントを起動している状態で、db2startコマンドを実行する。
この場合、サーバ側でDASが起動していて、インスタンス情報を提供する設定(デフォルト)にさえなっていれば、ノードカタログの登録も必要なく、listenポートを知らなくってもホスト名とインスタンス名がわかっていれば起動ができる。
停止する場合は
DB2 > db2stop remote instance <インスタンス名> hostname <ホスト名> user <ユーザ名> using <パスワード>
とする。
ちゃんとは検証してないけど、たぶんディスカバラーとか構成アシスタントとかと同じように、DAS宛のパケットを投げつけて、そこからインスタンスへの操作命令を流し込むような仕組みっぽい。
もしかすると、dbm cfgを変更するような操作もできちゃうのかもしれないけど、ここらへんは試験範囲でもないので突っ込むのは一旦終了。
そもそもDAS前提ってところで微妙だし。
もしリモートクライアントからのインスタンス操作のもっと良いやり方をご存知の方がおられましたら教えてください。
またまた間があいてしまいました。
勉強のためにDB2をインストールしたのはいいのですが、インスタンスの起動/停止とか、接続とかどうもoracleと勝手がちがうので、いろいろ試してみた。
まずインスタンスの起動。
> db2start
で起動する。
ということなんだけど、複数インスタンスが共存する環境の場合、どのインスタンスに対する操作なのかの指定はosによって違うっぽい。
まずunix系の場合。
unix系osでは、インスタンスはosユーザの所有物となる。
インスタンス名はosユーザ名と同じになるっぽい。
で、inst_aユーザが所有するinst_aインスタンスを起動したければ、inst_aユーザでログイン(su -でも可)し
> db2start
でok。
winの場合はちょっとややこしくて、osでデフォルトの操作対象となるインスタンス名がレジストリに登録されていて、レジストリのDB2INSTDEFに設定されている値が、db2startの操作対象になるっぽい。
で、上記レジストリの値は環境変数(db2プロファイルレジストリとかいうのかな?ちょっと不明)DB2INSTANCEで上書きできる。
> set db2instance=インスタンス名
> db2start
とすると、指定されたインスタンスが起動する。
デフォルトインスタンスを変更したければ、
> db2set -g db2instdef=インスタンス名
とする。
と、ここまでの操作は全てサーバにログインできていての話。
telnetとかリモートデスクトップが使えればいいけど、できればoracleみたいに
> sqlplus sys/oracle@xxx as sysdba
SQL > startup
とかやってみたい。
なんとかできないかマニュアルを漁っていたら、db2startコマンドを発見。
このdb2startコマンドは、osコマンドではなく、db2コマンドラインクライアントの中で使える組み込みコマンド。
> db2
DB2 > db2start remote instance <インスタンス名> hostname <ホスト名> user <ユーザ名> using <パスワード>
上記例のプロンプトに注目。
db2のコマンドラインクライアントを起動している状態で、db2startコマンドを実行する。
この場合、サーバ側でDASが起動していて、インスタンス情報を提供する設定(デフォルト)にさえなっていれば、ノードカタログの登録も必要なく、listenポートを知らなくってもホスト名とインスタンス名がわかっていれば起動ができる。
停止する場合は
DB2 > db2stop remote instance <インスタンス名> hostname <ホスト名> user <ユーザ名> using <パスワード>
とする。
ちゃんとは検証してないけど、たぶんディスカバラーとか構成アシスタントとかと同じように、DAS宛のパケットを投げつけて、そこからインスタンスへの操作命令を流し込むような仕組みっぽい。
もしかすると、dbm cfgを変更するような操作もできちゃうのかもしれないけど、ここらへんは試験範囲でもないので突っ込むのは一旦終了。
そもそもDAS前提ってところで微妙だし。
もしリモートクライアントからのインスタンス操作のもっと良いやり方をご存知の方がおられましたら教えてください。
スポンサーサイト
- Newer: DB2 9 エンジニア試験準備 6:SQLとXQuery
- Older: DB2 9 エンジニア試験準備 4:セキュリティ その3
Comments: 0
Trackback+Pingback: 0
- TrackBack URL for this entry
- http://hitai.blog72.fc2.com/tb.php/58-3af01b3e
- Listed below are links to weblogs that reference
- DB2 9 エンジニア試験準備 5:インスタンスの制御 from ヒビコレショウジン