DB2 Express-C 9.7 を CentOS 6 にインストール再び

以前勉強のため、DB2 Express-C を、Virtual Box やなんかにインストールしてみたのだが、仕事でDB2を使っていてちょっとおもしろくなってきたので、再度環境を構築してみる。

まず、DB2はOracleに比べて書籍圧倒的に少ない。

資格試験用の参考書なんて、日本語版は出版すらされていない。

そんななか、概要を調べようと。

DB2 9.7 エバリュエーション・ガイドブック

を購入。。。

したんですが、

 翔泳社 DB2 電子書籍を無料公開!

と、見事電子版が翔泳社様から無料公開されました。

少し残念ですが感謝。

その他の電子書籍も Oracle と比較してDB2を理解することをテーマとしたものなど、良かったです。

あと、

DB2 Express-C 入門

も無料で公開されているので、大変助かります。

ここからは、あとで参照するためのインストールメモ。

 

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_inst01

「新規インストール」を選択

db2_inst02

 

DB2のサーバー・プロセスは、上記の「DB2の管理ユーザー」で起動されます。

「次へ」を選択

db2_inst03

「同意する」にチェックし「次へ」

db2_inst04

「標準」を選択して「次へ」

DB2 9.7 エバリュエーション・ガイドブック を見ると、「カスタム」を選択して、言語を「日本語」に設定している。

CentOS 自体の言語を 日本語にしていたためか、標準で継続したら、途中でランゲージパックの指定を求められた。

 db2_inst05

応答ファイルは、インストール時に選択した内容を記録しておくファイルで、同じ内容で次回インストールする際にそのファイルを使用するとインストール作業を自動化できる

「応答ファイルに保管する」を選択したまま「次へ」

db2_inst06

DB2を導入するディレクトリーを選択

デフォルトでは/opt/ibm/db2/V9.7

db2_inst07

DB2の管理ユーザーについての設定

db2_inst08

ここで、「DB2インスタンスを作成する」を選ばない場合、データベースを扱うためのインスタンスの作成・構成はインストール・プロセスの中では行われず、インストール終了後にdb2icrtコマンドなどを用いてマニュアルで実施することになる。

「DB2インスタンスを作成する」を選択し、「次へ」

db2_inst09

インスタンス・オーナー・ユーザーについて指定する画面

DB2プロセスは、ここで指定したユーザーで実行されます。

「次へ」

db2_inst10

fencedユーザーの設定

DB2のユーザー定義関数、ストアード・プロシージャーなどは、fencedユーザー権限で実行されます。

fencedユーザーをインスタンス・オーナーと別に指定することで、ユーザー定義関数、ストアード・プロシージャーに問題があった際にインスタンス本体へ影響を及ぼすことを防ぎます。

「次へ」

db2_inst11

本来は、この辺りで、「インスタンスが使用するTCP/IPのポート番号と自動起動の有無を入力」する筈なのだが、表示されない。(なぜかは後述) まぁ、気にせず継続する。

設定内容に間違いが無いことを確認して「完了」

db2_inst12

途中で、ランゲージパックの指定を求められる。解凍して準備しておく。

db2_inst14

セットアップ完了!

db2_inst15

 

3.ファーストステップの実行

ファーストステップを実行して、サンプルデータベースを作成する。

インストールした CentOS に db2inst1 でログインし、メニューからDB2ファーストステップを起動。

db2_inst16

OK

db2_inst17

SAMPLEデータベースの作成

db2_inst18

XMLおよびSQLのオブジェクトとデータを選択しOK

db2_inst19

しばらく待つと、サンプルデータベースが作成される。

・・・って、ここまでのことは、以下のコマンドからも実行できる。

$ 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。」

db2_inst20

んーなんだ?としばらくいろいろ調べると、TCP/IPサービスが設定されていないようだ。

確認すると、設定されていない。。。なぜ?

$ db2 get dbm config | grep "SVC"
 TCP/IP サービス名                                               (SVCENAME) = 
 SSL サービス名                         (SSL_SVCENAME) = 

インスタンスにTCP/IPで接続できるように設定するには

を参照して設定する。なぜインストーラがこんなことしてくれないのか?

# 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_inst21

ということで、今後ちょいちょいDB2を学んでいきたいなぁと。

即戦力のDB2管理術 ~仕組みからわかる効率的管理のノウハウ

ちなみにこの本も、購入しちゃったんですが、チューニングや管理のノウハウが丁寧にわかりやすく記述されていて、イイ!!