DB2 Express-C をインストールしてみる
勉強がてら、DB2を触るために、Express-C を CentOS にインストールしてみる。
最初は、ServersMan@VPS Entry プラン にインストールを試みた。インストール自体は成功するのだが、インスタンスがメモリ不足で起動しない。やはり 256MB のサーバーにRDBMSを入れるのは無理があるか。きっと上位契約にすれば良いはずだが、学習用にはもったいない。
ということで、途中から、VirtualBox 上の CentOSに切り替えた。
DB2 Express-C は、使用できるメモリ2G、CPUコア2つという制限があるが、基本的にデータサイズやインスタンス数等などの制限は行わない、再頒布も申請すれば可能、と非常に面白いライセンスになっているので、場面によっては、かなり使えるのではないか。
Linux 用 インストールガイド
http://www.ibm.com/developerworks/jp/offers/db2express-c/installlin_v95/
★ は、必要な箇所、☆は、ServersMan@VPS ではまった、基本的に不要な箇所
★ ダウンロード
http://www-06.ibm.com/software/jp/data/db2/v9/express-c/
本体:db2exc_974_LNX_x86.tar.gz と、ランゲージパック : db2exc_nlpack_974_LNX_x86.tar.gz をダウンロード。IBM ID がダウンロードに必要。無料でIDは取得できる。(自分は以前メンバーになっていたようで、ログインできた)
インストールを試みるも、ライブラリが足りない
ServersMan@VPS では、ライブラリが足りなかったため、インストールした。CentOSのインストーラから、GUI Server をインストールした場合、ライブラリを別途インストールする必要はなかった。
# tar -xvf db2exc_974_LNX_x86.tar.gz # cd expc # ./db2setup ERROR: The required library file libaio.so.1 is not found on the system. Check the following web site for the up-to-date system requirements of IBM DB2 9.7 http://www.ibm.com/software/data/db2/udb/sysreqs.html http://www.software.ibm.com/data/db2/linux/validate Aborting the current installation ... Run installation with the option "-f sysreq" parameter to force the installation.
ライブラリをインストールして再実行してみる。
# yum install compat-libstdc++-33 # yum install libaio # ./db2setup DBI1190I db2setup is preparing the DB2 Setup wizard which will guide you through the program setup process. Please wait. The DISPLAY variable is not set properly. Ensure that the DISPLAY variable is set properly and that permissions are set properly to open windows on the display specified, then rerun the command.
☆ VNCを入れる
ServersMan@VPS では、当然、GUIはないので、VNCを入れてみる。VirtualBoxには、GUI Server をインストールした。
途中で作成する、セットアップ設定ファイルを利用すると、サイレントインストール自体は可能なようだ。
switchdeskしようとしたら、GNOME がないので、言われたとおりにGNOMEも入れる
# yum install vnc-server.i386 # yum install switchdesk # switchdesk gnome Red Hat Linux switchdesk 4.0 Copyright (C) 1999-2004 Red Hat, Inc Redistributable under the terms of the GNU General Public License ERROR: GNOME is not installed on your machine! to install GNOME, please type yum groupinstall "GNOME Desktop Environment"
指摘通り GNOME を入れる
# yum groupinstall "GNOME Desktop Environment"
デスクトップを GNOME に変更する
# switchdesk gnome Red Hat Linux switchdesk 4.0 Copyright (C) 1999-2004 Red Hat, Inc Redistributable under the terms of the GNU General Public License Desktop now set up to run GNOME.
一旦、vncserver を実行後、設定を書き換える
# cd /root/.vnc # mv xstartup xstartup.bak # ln -s /root/.Xclients xstartup
vncserver を実行
# vncserver xauth: (stdin):1: bad display name "dti-vps-srv39:1" in "add" command New 'dti-vps-srv39:1 (root)' desktop is dti-vps-srv39:1 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/dti-vps-srv39:1.log
ServersMan@VPS にVNCクライアントから接続。
★ DB2 Express-C インストール
ダウンロードしたファイルを解凍し、expc フォルダの中で、db2setup を実行
# tar -xvf db2exc_974_LNX_x86.tar.gz # cd expc # ./db2setup
左側ペインで、Install a Product を選択
Install New を選択
DB2をインストールする前に、最低でも以下の事を計画しておく必要があるらしい
DB2のインストールは初めてなので、デフォルトで進める。
DB2管理サーバーのユーザー名 | デフォルト:dasadm1 |
DB2のインスタンス・オーナー・ユーザー名 | デフォルト:db2inst1 |
fencedユーザーのユーザー名 | デフォルト:db2fenc1 |
インスタンスのTCP/IPポート番号 | 50000番 |
「DB2のサーバー・プロセスは、上記の「DB2の管理ユーザー」で起動されます。また、DB2 ではインスタンスが外部(クライアント)からの接続を受け付けるために、1インスタンス毎に一つ、現在使用していないポート番号が必要になります。」
へぇ。
Next
次の画面では、ライセンスに同意してNext
Typical (標準)- Next
View Features で導入されるコンポーネントを確認できる。
「多くの場合、「標準」のままで問題ありません。」
ということのなので、そのままで次へ。
応答ファイル(レスポンス・ファイル)を作成するかどうかを設定
「応答ファイルは、インストール時に選択した内容を記録しておくファイルで、同じ内容で次回インストールする際にそのファイルを使用するとインストール作業を自動化できるというものです。」
なしでいいかな。とりあえず。
インストールディレクトリはデフォルトのままで
/opt/ibm/db2/V9.7
DB2の管理ユーザーについての設定
インスタンスを作成するにして、次へ
「DB2インスタンスを作成する」を選ばない場合、データベースを扱うためのインスタンスの作成・構成はインストール・プロセスの中では行われず、インストール終了後にdb2icrtコマンドなどを用いてマニュアルで実施することになります。
インスタンス・オーナー・ユーザーについて指定
fencedユーザーについても、同様に、パスワードを設定し進める。
fencedユーザーとは、
DB2のユーザー定義関数、ストアード・プロシージャーなどは、fencedユーザー権限で実行されます。fencedユーザーをインスタンス・オーナーと別に指定することで、ユーザー定義関数、ストアード・プロシージャーに問題があった際にインスタンス本体へ影響を及ぼすことを防ぎます。
設定内容のサマリーが表示される
インストール実行中
マイナーエラー発生!?
Post-install steps を実行しろと言っているようだ。
/tmp/db2setup.log を見ると、
ERROR: SQL1042C An unexpected system error occurred. ERROR: An error occurred while trying to start the "db2inst1" instance. The return code is "4" and the SQL Message is: "PROCESS_ERROR" ERROR: An error occurred while configuring the instance "db2inst1". Configuring DB2 instances :.......Failure ERROR: An error occurred while trying to start the "db2inst1" instance. The return code is "4" and the SQL Message is: "PROCESS_ERROR" ERROR: The installation program is unable to add the contact "db2inst1". The return value is "5109". See the DB2 Information Center for more information about adding contacts and configuring health alert notifications.
インスタンスの起動に失敗しているようだ。
この後、OS自体がメモリ不足でウィンドウが開かない、コマンドが実行できない等の状況となったので、メモリが足りないため、インスタンスの起動ができなかったのだろう。
メモリを2Gに設定した、VirtualBox上にCentOSをインストールして、ここまでの作業をやり直したところ、は成功。
★ ランゲージパックのインストール
一旦、db2inst1 ユーザでログインし直し、db2stop を行ってから、rootになって実行(インスタンスが動いているとエラーが発生することがあるとのことなので)
# tar -xvf db2exc_nlpack_974_LNX_x86.tar.gz # cd nlpack/ # sudo ./db2setup
Install a Product
Work with Existing ~ Laun ch DB2 Setup wizard
Next ~ Next Japanese を選択してNext
Finish
Setup Complete
☆ JDKのインストールと設定
ServersMan@VPS にてエラーのため実施したが、通常は不要と思われる。
ダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
インストールと設定
# mv jdk-6u25-linux-i586.bin /opt/ # cd /opt/ # chmod +x jdk-6u25-linux-i586.bin # ./jdk-6u25-linux-i586.bin
# vi /etc/profile.d/java.sh export JAVA_HOME=/opt/jdk1.6.0_25 export PATH=$JAVA_HOME/bin:$PATH # source /etc/profile.d/java.sh # alternatives --install /usr/bin/java java /opt/jdk1.6.0_25/bin/java 2 # alternatives --config java There is 1 program that provides 'java'. Selection Command ----------------------------------------------- *+ 1 /opt/jdk1.6.0_25/bin/java Enter to keep the current selection[+], or type selection number:
rootでうごかしていたVNCサーバーを終了させる
# vncserver -kill :1
一旦ログオフし、db2inst1ユーザにて接続しなおしVNCの設定、VNCサーバーの起動
$ switchdesk gnome Red Hat Linux switchdesk 4.0 Copyright (C) 1999-2004 Red Hat, Inc Redistributable under the terms of the GNU General Public License Desktop now set up to run GNOME. $ cd /home/db2inst1/.vnc $ mv xstartup xstartup.bak $ ln -s /home/db2inst1/.Xclients xstartup $ vncserver
☆ DB2ファーストステップ(db2fs)
ServersMan@VPS にて、このステップを行おうとしてエラーとなったため、JDKをインストールしたが、VirtualBoxにインストールしたCentOSでは不要。
https://www-304.ibm.com/support/docview.wss?uid=swg21377358
$ db2fs sh: /home/db2v2/sqllib/java/jdk32/jre/bin/java: No such file or directory DB2JAVIT : RC = 127
DB2の設定値を変更
$ db2 update dbm cfg using JDK_PATH $JAVA_HOME DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.
確認
$ db2 get dbm cfg | grep "JDK" Java Development Kit installation path (JDK_PATH) = /opt/jdk1.6.0_25
これで、上記のエラーは解消されるも、メモリ不足のエラーのため、ServersMan@VPS での続行を断念し、VirtualBox に CentOSをインストールして、ここまでの処理を行う。
★ サンプルデータベースの作成
上記インストールガイドで、db2fs でやっているのはサンプルデータベースを作成するだけのようだ。そのために、ブラウザのインストールが必要とうのは面倒くさい。サンプルデータベースはコマンドラインから作成可能のようだ。
コマンドからサンプルデータベースを作成する
$ 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.
ここまでで、システムの再起動推奨
★ インストールの確認
再起動後、DB2の状態を確認
インストールされた DB2 製品、fix pack のレベル、およびその他の詳細情報を表示
$ db2level DB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09074" with level identifier "08050107". Informational tokens are "DB2 v9.7.0.4", "s110330", "IP23242", and Fix Pack "4". Product is installed at "/opt/ibm/db2/V9.7".
インストールされた DB2 製品に固有のライセンス情報をすべてリストアップ
$ db2licm -l Product name: "DB2 Express-C" License type: "Unwarranted" Expiry date: "Permanent" Product identifier: "db2expc" Version information: "9.7" Max number of CPUs: "2" Max amount of memory (GB): "2"
DB2 コピーのコア機能を検証することによって、インストールの検証
db2val 応答返らず
★ IBM Data Studio
IBM Data Studio は、現在使用が推奨されない「コントロール・センター」や「コマンド・エディター」などの DB2 ツールに置き換わるものです (「コントロール・センター」、「コマンド・エディター」は DB2 には組み込まれているものの、現在開発は行われていません)。
とのことなので、次は IBM Data Studio を利用して作成したデータベースに接続してみよう。
★ まとめ
ServersMan@VPS で、たびたびエラーが出たため対処、今後のためにメモを残しておくが、VirtualBox 上にインストールしたCentOSでは、db2val の応答がないことを除いて、全く問題なくスムースに作業は完了した。