CENTOS 5系にDB2 EXPRESS-C 8.2をコマンド(CUI)インストールする!!
しばらくibm db2に触らない期間が続き、あれ?どんなデータベースなんだっけ?(汗)という状態に陥ったため、インストールからデータベースを作成するところまでをまとめてました。しかしながら、ただインストールするのはつまらないので、以下の試練を自分に与えました。
・centos 5.6 を使う ・db2 express-c ver 8.2 をインストールする ・GUI インストールではなく、CUI(コマンド)インストールを使う
MySQLのRPMインストールに慣れてしまったせいか、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さん同様、ほぼ自分向けの備忘録なので、他の方がやったらうまくいかなかった・・なんてこともあるかもしれません・・。