HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

DB2 Express-C v9.7をUbuntu 10.04 Serverにインストール

DBサーバー用に作ったUbuntu 10.04 Server on Ubuntu 10.04 Server(何)へのインストール。
最初、何も考えずにDB2 Express-C v9.7.4のLinux用アーカイブをダウンロードして、展開して、READMEとかその辺を読みながら以下のコマンドを実行。

$ sudo apt-get install libaio1
$ sudo apt-get install ksh
$ sudo apt-get install libstdc++6-4.4-dev
$ sudo apt-get install libstdc++6-4.4-pic
$ sudo ./db2setup
DBI1190I  db2setup が DB2 セットアップ・ウィザードを準備中です。
      このウィザードがプログラムのセットアップ操作を案内します。 お待ち
      ください。



DISPLAY 変数が正しく設定されていません。  DISPLAY 変数が正しく設定されていて、指定されたディスプレイのウィンドウがオープンできるように許可が正しく設定されているかどうか確認してから、コマンドを再実行してください。
$

そういえばそうだった、と思い出し、この時点での選択肢は2つ。「CUIインストールするための方法をがんばって探す」と「GUI環境を入れてしまう」。
時間が有り余っていれば前者もありだったが、そうもいかないので後者か、と思いながら、「DB2 Express-C ubuntu」で探してみると、そういえばチラ見した記憶がある以下の記事を発見。

で、最後のURLにあるPDFファイル「DB2 and Ubuntu Whitepaper」を斜め読みしていたら、なんと13ページ目あたりに「How to Install DB2 Express-C with Debian Package」なる記述を発見。
ということで試したメモ(前置き長っ)。

インストール(using apt)

※冒頭の4つの「apt-get install」は実行済みの環境で試しているので、以下の手順でうまくいかない場合はその点を確認してみるといいかも。

まぁ、ホワイトペーパーに書いてある通りのコマンドを順に実行するだけなんだけど。

  1. /etc/apt/sources.list をテキストエディタで開く
  2. 以下の行がコメントアウトされているので、コメントをはずす(大体48〜49行目あたり)
    • deb http://archive.canonical.com/ubuntu lucid partner
    • deb-src http://archive.canonical.com/ubuntu lucid partner
  3. 以下のコマンドを順に実行
    • sudo apt-get update
    • sudo apt-get install db2exc

流れていくメッセージを見ていると、導入されるのはDB2 v9.7.2らしい。

検証

ひとまずサンプルDB作成。

$ sudo su - db2inst1

db2inst1$ db2sampl

  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.

db2inst1$ 

サンプルDB作成中にVMwareのゲストOSが落ちた(らしい)のだが、もしかしたらインストール後にOSの再起動が必要だったりしたのかも(未確認)。
いくつかコマンドを叩いてみる。

db2inst1$ db2level
DB21085I  Instance "db2inst1" uses "32" bits and DB2 code release "SQL09072"
with level identifier "08030107".
Informational tokens are "DB2 v9.7.0.2", "s100514", "IP23088", and Fix Pack
"2".
Product is installed at "/opt/ibm/db2/V9.7".
db2inst1$ db2 list database directory

 System Database Directory

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = SAMPLE
 Database name                        = SAMPLE
 Local database directory             = /home/db2inst1
 Database release level               = d.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =

db2inst1$ db2 connect to sample

   Database Connection Information

 Database server        = DB2/LINUX 9.7.2
 SQL authorization ID   = DB2INST1
 Local database alias   = SAMPLE

db2inst1$ db2 "SELECT * FROM TABLE(VALUES(CURRENT_SERVER, CURRENT_SCHEMA)) AS t"

1                  2                                                                      
------------------ ------------------
SAMPLE             DB2INST1          

  1 record(s) selected.

db2inst1$ db2 connect reset
DB20000I  The SQL command completed successfully.
db2inst1$

とりあえず、問題なく動いているらしい。