DB2 Express-C 9.7 を CentOS 6 にインストール再び
以前勉強のため、DB2 Express-C を、Virtual Box やなんかにインストールしてみたのだが、仕事でDB2を使っていてちょっとおもしろくなってきたので、再度環境を構築してみる。
まず、DB2はOracleに比べて書籍圧倒的に少ない。
資格試験用の参考書なんて、日本語版は出版すらされていない。
そんななか、概要を調べようと。
を購入。。。
したんですが、
と、見事電子版が翔泳社様から無料公開されました。
少し残念ですが感謝。
その他の電子書籍も Oracle と比較してDB2を理解することをテーマとしたものなど、良かったです。
あと、
も無料で公開されているので、大変助かります。
ここからは、あとで参照するためのインストールメモ。
1.事前に決めておくこと
事前に以下の設定値を決めておく必要がある。
項目 | 値 | 説明 |
DB2管理サーバー(DAS)のユーザー名 | (デフォルト:dasadm1) | 管理作業ができるようにするためのサーバー(DAS)用ユーザー |
DB2のインスタンス・オーナー・ユーザー名 | (デフォルト:db2inst1) | インスタンス中で最も強い権限を持つユーザー |
fencedユーザーのユーザー名 | (デフォルト:db2fenc1) |
ストアード・プロシージャーやユーザ セキュリティーの関係上インスタンス・オーナーとは別のユーザーにするのが一般的 |
インスタンスのTCP/IPポート番号 | (デフォルト:50000番) |
インスタンスごとに1つ、現在使用していないポート番号が必要 |
2.ダウンロードと解凍とセットアッププログラムの実行
# tar -xvf db2exc_975_LNX_x86.tar.gz # cd special_27924_linuxia32_expc/ # ./db2setup
左側のペインから、製品のインストール
「新規インストール」を選択
DB2のサーバー・プロセスは、上記の「DB2の管理ユーザー」で起動されます。
「次へ」を選択
「同意する」にチェックし「次へ」
「標準」を選択して「次へ」
DB2 9.7 エバリュエーション・ガイドブック を見ると、「カスタム」を選択して、言語を「日本語」に設定している。
CentOS 自体の言語を 日本語にしていたためか、標準で継続したら、途中でランゲージパックの指定を求められた。
応答ファイルは、インストール時に選択した内容を記録しておくファイルで、同じ内容で次回インストールする際にそのファイルを使用するとインストール作業を自動化できる
「応答ファイルに保管する」を選択したまま「次へ」
DB2を導入するディレクトリーを選択
デフォルトでは/opt/ibm/db2/V9.7
DB2の管理ユーザーについての設定
ここで、「DB2インスタンスを作成する」を選ばない場合、データベースを扱うためのインスタンスの作成・構成はインストール・プロセスの中では行われず、インストール終了後にdb2icrtコマンドなどを用いてマニュアルで実施することになる。
「DB2インスタンスを作成する」を選択し、「次へ」
インスタンス・オーナー・ユーザーについて指定する画面
DB2プロセスは、ここで指定したユーザーで実行されます。
「次へ」
fencedユーザーの設定
DB2のユーザー定義関数、ストアード・プロシージャーなどは、fencedユーザー権限で実行されます。
fencedユーザーをインスタンス・オーナーと別に指定することで、ユーザー定義関数、ストアード・プロシージャーに問題があった際にインスタンス本体へ影響を及ぼすことを防ぎます。
「次へ」
本来は、この辺りで、「インスタンスが使用するTCP/IPのポート番号と自動起動の有無を入力」する筈なのだが、表示されない。(なぜかは後述) まぁ、気にせず継続する。
設定内容に間違いが無いことを確認して「完了」
途中で、ランゲージパックの指定を求められる。解凍して準備しておく。
セットアップ完了!
3.ファーストステップの実行
ファーストステップを実行して、サンプルデータベースを作成する。
インストールした CentOS に db2inst1 でログインし、メニューからDB2ファーストステップを起動。
OK
SAMPLEデータベースの作成
XMLおよびSQLのオブジェクトとデータを選択しOK
しばらく待つと、サンプルデータベースが作成される。
・・・って、ここまでのことは、以下のコマンドからも実行できる。
$ db2sampl -xml -sql Creating database "SAMPLE"... Connecting to database "SAMPLE"... Creating tables and data in schema "DB2INST1"... Creating tables with XML columns and XML data in schema "DB2INST1"... 'db2sampl' processing complete.
4.IBM Data Studio から接続
さて、IBM Data Studio から接続してみる。。。もエラー
「データベース始動コマンドが開始されていません。ErrorCode = –4499、SQLState = 08001。」
んーなんだ?としばらくいろいろ調べると、TCP/IPサービスが設定されていないようだ。
確認すると、設定されていない。。。なぜ?
$ db2 get dbm config | grep "SVC" TCP/IP サービス名 (SVCENAME) = SSL サービス名 (SSL_SVCENAME) =
を参照して設定する。なぜインストーラがこんなことしてくれないのか?
# vi /etc/services db2tcp 50000/tcp # db2 $ db2set DB2COMM=TCPIP $ db2 update dbm cfg using SVCENAME db2tcp DB20000I UPDATE DATABASE MANAGER CONFIGURATION コマンドが正常に完了しました。
と思いつつ設定し、管理サーバーを起動するもエラー。
$ cd /opt/ibm/db2/V9.7/instance/ $ db2admin start SQL4401C DB2 Administration Server が起動中にエラーを検出しました。
ログを確認すると、、、
$ /home/db2inst1/sqllib/db2dump $ cat db2diag.log 2012-01-23-00.55.06.814660+540 I59535G210 LEVEL: Error PID : 4667 TID : 3062871760 FUNCTION: DB2 Tools, DB2 administration server, rrm_main, probe:90 DATA #1 : Sint32, 4 bytes -3020
SQL4401C error received when trying to start the DAS on UNIX or Linux
https://www-304.ibm.com/support/docview.wss?uid=swg21198111
hostsファイルにホスト名を記述しろとのこと。
ホスト名 susanoo を追記し、db2admin start で起動成功!
これが原因で、インストール中にポートの設定画面とかでてきてなかったのかな???
$ hostname susanoo #vi /etc/hosts 127.0.0.1 susanoo localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 susanoo localhost localhost.localdomain localhost6 localhost6.localdomain6
DataStudio からの接続も無事成功!
ということで、今後ちょいちょいDB2を学んでいきたいなぁと。
即戦力のDB2管理術 ~仕組みからわかる効率的管理のノウハウ
ちなみにこの本も、購入しちゃったんですが、チューニングや管理のノウハウが丁寧にわかりやすく記述されていて、イイ!!