Database JUNKY

MySQL,MariaDBを中心としたブログです

CENTOS 5系にDB2 EXPRESS-C 8.2をコマンド(CUI)インストールする!!

しばらくibm db2に触らない期間が続き、あれ?どんなデータベースなんだっけ?(汗)という状態に陥ったため、インストールからデータベースを作成するところまでをまとめてました。しかしながら、ただインストールするのはつまらないので、以下の試練を自分に与えました。

centos 5.6 を使う ・db2 express-c ver 8.2 をインストールする ・GUI インストールではなく、CUI(コマンド)インストールを使う

MySQLRPMインストールに慣れてしまったせいか、db2のインストールってもーれつに難しいです。あと、db2 express-c ver 8.2が出たころは、当然のことながらcentos 5.6なんて存在しないので、ちょっと普通とは違うモジュールなんかもインストールする必要があります。

そういえば、centos5.x にdb2 express-c 8.2をGUIインストールする方法についても昔、記載したことがありました。

CENTOS5系でのDB2express-c 8.2 GUIインストール手順

その中で書いたのですが、db2 express-c 8.2 はもうどこからもダウンロードできませんので、もし8.2を利用したい方は、日経Linuxの 2006年5月号の付録DVDに入っておりますので、がんばって入手してください。というか、amazonにて中古で出ていますので、以下にリンクはっておきますね

余談ではありますが、db2 express-c ver 8.2 を使いたい理由は、 ・プロセスモデルであること(現行のdb2express-c はスレッドモデル) ・無償版でありながら、4GBのメモリ空間を利用できること(現行はたぶん、2GB) であるからなのです。個人差はありますが、私は、旧バージョンのほうが好き・・

64ビットOSが一般的になっている現在で、32bitというのもなんなのですが、色々な企業さんで、この8.2を利用しているところが結構あるようなのでここに掲載しました。

では、早速インストール手順を記載したいと思います。

▼前準備 前準備つーか、現行の環境も含めての説明です。osは、32bitでdb2インストーラーは、予め、/usr/local/src に格納しております。インストールに必要なモジュールとしては、compat-libstdc++-33くらいでしょうか?あと入れていない方のためにDevelopment Toolsもyum でインストールしております。これらが入っていないとインストーラすら動きません

[root@db2host ~]# cat /etc/redhat-release
CentOS release 5.6 (Final)
[root@db2host ~]# uname -i
i386
[root@db2host src]# yum groupinstall "Development Tools"
[root@db2host src]# pwd
/usr/local/src
[root@db2host src]# ll
合計 350728
-rwxr-Sr-x 1 root root 317356030  9月  6 11:55 db2exc_LNX_26x86.tar.gz
-rwxr-Sr-x 1 root root  41424046  9月  6 11:55 fonts.zip

[root@db2host src]# tar zxvf db2exc_LNX_26x86.tar.gz

[root@db2host src]# unzip fonts.zip

[root@db2host db2exc_LNX_26x86]# yum install compat-libstdc++-33

[root@db2host src]# ll
合計 350736
drwxr-xr-x 4 1023 users      4096  2月 28  2006 db2exc_LNX_26x86
-rwxr-Sr-x 1 root root  317356030  9月  6 11:55 db2exc_LNX_26x86.tar.gz
drwxr-xr-x 2 root root       4096  1月 21  2010 fonts
-rwxr-Sr-x 1 root root   41424046  9月  6 11:55 fonts.zip

db2のインストール いよいよdb2のインストールです。以下にファイル一覧を出しておりますが、db2_installというやつが、cuiインストーラです。guiインストーラは、db2setup になります。ちなみに、db2_deinstallがアンインストーラなのですが、ここでは説明を割愛します。というか、db2_deinstall使ったことないです。

[root@db2host src]# pwd
/usr/local/src

[root@db2host src]# cd db2exc_LNX_26x86

[root@db2host db2exc_LNX_26x86]# ll
合計 32
drwxr-xr-x  5 1023 users 4096  2月 28  2006 db2
-rwxr-xr-x  1 1023 users 6834  2月 28  2006 db2_deinstall
-rwxr-xr-x  1 1023 users 6953  2月 28  2006 db2_install
-r-xr-xr-x  1 1023 users 7140  2月 28  2006 db2setup
drwxr-xr-x 15 1023 users 4096  2月 28  2006 doc

[root@db2host db2exc_LNX_26x86]# ./db2_install
以下のキーワードを 1 つ以上指定し、
スペースで区切って DB2 製品をインストールしてください。

キーワード        製品説明
DB2.EXP        DB2 UDB Express Edition for LINUX26

"ヘルプ" を入力して製品名を再表示してください。

"終了" を入力して終了してください。

***********************************************************
DB2.EXP

インストール・ログ・ファイルは /tmp/db2_install_log.1629 にあります。
<<省略>>
db2_install プログラムは正常に完了しました。

インスタンスの構築 GUIインストールの場合は、インスタンスも自動生成するのですが、CUIインストールの場合は、インスタンスも手動で作成する必要があります。db2のアカウントは、OSのユーザー情報を密接に絡みますのでここの設定は必須です。

[root@db2host db2exc_LNX_26x86]# groupadd -g 500 db2grp
[root@db2host db2exc_LNX_26x86]# useradd -u 500 db2inst1 -g db2grp
[root@db2host db2exc_LNX_26x86]# passwd db2inst1
Changing password for user db2inst1.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

[root@db2host ~]# mkdir /db2data
[root@db2host ~]# chown -Rf db2inst1:db2grp /db2data/
[root@db2host ~]# chmod -Rf 775 /db2data/

[root@db2host ~]# groupadd -g 501 db2fgrp1
[root@db2host ~]# useradd -u 501 db2fenc1 -g db2fgrp1
[root@db2host ~]# passwd db2fenc1
Changing password for user db2fenc1.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

[root@db2host ~]# /opt/IBM/db2/V8.1/instance/db2icrt -u db2fenc1 db2inst1
DBI1070I Program db2icrt completed successfully.

[root@db2host ~]# groupadd -g 502 db2dasgrp
[root@db2host ~]# useradd -u 502 -g db2dasgrp -G db2dasgrp -d /home/dasusr1 dasusr1
[root@db2host ~]# passwd dasusr1
Changing password for user dasusr1.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

[root@db2host ~]# /opt/IBM/db2/V8.1/instance/dascrt -u dasusr1
SQL4406W  The DB2 Administration Server was started successfully.
DBI1070I Program dascrt completed successfully.

[root@db2host ~]# /opt/IBM/db2/V8.1/cfg/db2ln

[root@db2host ~]# vi /etc/services
-----------------------------
# Local services
db2c_DB2        3700/tcp
db2i_DB2        5001/tcp
-----------------------------

▼ライセンスファイルの登録 さすがに、db2 8.2になると、フリーといえども過去のもの・・・ユーザーを、db2inst1に切り替え、現在のdb2の状態を確認してみます。

[root@db2host ~]# su - db2inst1

[db2inst1@db2host ~]$ db2licm -l
Product Name                            = "DB2 Universal Database Express Edition"
Product Identifier                      = "DB2EXP"
Version Information                     = "8.2"
Expiry Date                             = "Expired"
Registered User Policy                  = "Disabled"
Enforcement Policy                      = "Soft Stop"
Number of processors                    = "1"
Number of licensed processors           = "2"
Annotation                              = ""
Other information                       = ""

・上記にて、Expiry Dateが"Expired"になっているのがわかるかと思います。この状態ですと、db2のサービスを開始することすらできません。そこでライセンスファイルを登録する作業が必要になります。ライセンスファイルは、先ほどのインストーラーを解凍した場所に格納されております。ライセンスの登録は、db2licm -a にて実施します

[db2inst1@db2host ~]$ cd /usr/local/src/db2exc_LNX_26x86/db2/license
[db2inst1@db2host license]$ pwd
/usr/local/src/db2exc_LNX_26x86/db2/license
[db2inst1@db2host license]$ db2licm -a db2exp.lic
DBI1402I License added successfully.

[db2inst1@db2host license]$ db2licm -l
Product Name                            = "DB2 Universal Database Express Edition"
Product Identifier                      = "DB2EXP"
Version Information                     = "8.2"
Expiry Date                             = "Permanent"
Registered User Policy                  = "Disabled"
Enforcement Policy                      = "Soft Stop"
Number of processors                    = "1"
Number of licensed processors           = "2"
Annotation                              = ""
Other information                       = ""

▼ 状態を確認&db2 サービスを開始する 特に説明はないのですが、db2のサービス開始は、db2startコマンドで行います。

[db2inst1@db2host license]$ db2level
DB21085I  Instance "db2inst1" uses "32" bits and DB2 code release "SQL08024"
with level identifier "03050106".
Informational tokens are "DB2 v8.1.2.105", "special_15656", "MI00152_15656",
and FixPak "11".
Product is installed at "/opt/IBM/db2/V8.1".

[db2inst1@db2host license]$ db2start
SQL1063N  DB2START processing was successful.

▼データベースを作成してみる サービスが無事起動したところで、データベースを作成してみます。 ・database名: squaddb ・user : db2inst1 ・文字コードutf-8 ・データベースディレクトリ: /db2data

です。この部分は、任意の設定でかまいません。

[db2inst1@db2host ~]$ db2 create database squaddb on /db2data using codeset UTF-8 territory JP collate using SYSTEM
DB20000I  The CREATE DATABASE command completed successfully.

[db2inst1@db2host ~]$ ll /db2data/
合計 4
drwxrwxr-x 3 db2inst1 db2grp 4096  9月  6 17:23 db2inst1
[db2inst1@db2host ~]$ db2 connect to squaddb user db2inst1 using

[db2inst1@db2host ~]$ db2 connect to squaddb user db2inst1
Enter current password for db2inst1:

Database Connection Information

Database server        = DB2/LINUX 8.2.4
SQL authorization ID   = DB2INST1
Local database alias   = SQUADDB

[db2inst1@db2host ~]$ db2 list active databases;

Active Databases

Database name                              = SQUADDB
Applications connected currently           = 1
Database path                              = /db2data/db2inst1/NODE0000/SQL00001/

[db2inst1@db2host ~]$ db2 terminate
DB20000I  The TERMINATE command completed successfully.

以上で終了です!おつかれさまでした!! 尚、CUIのインストール手順につきましては、『imaiworks 』さんの、『DB2 9.5 express-c コマンドライン速攻インストール手順』(http://d.hatena.ne.jp/imaiworks/20080514/1210744929)を参考にし、db2 8.X用に一部改定したものになります。imaiworksさん同様、ほぼ自分向けの備忘録なので、他の方がやったらうまくいかなかった・・なんてこともあるかもしれません・・。