前回はOSDL(OpenSource Development Labs)が開発したデータベースシステム向けの統合テストスイートである「OSDL Database Test Suite」とそのテストの概要について述べた。今回は早速「OSDL DBT-1」を試してみることにする。

まず、前提となる環境から説明しよう。今回の試験に使用したハードウェアは、Pentium 4(動作周波数は3GHz)を搭載した安価なPCサーバである。OSはLinuxのディストリビューション「CentOS」のバージョン4.5。DBT-1の評価対象となるデータベースシステムは、CentOSに収録のパッケージから「PostgreSQL 7.4」をインストールした。各設定ファイルは何も変更せず、ほぼデフォルトの状態のままである。

それでは、DBT-1の導入を進めて行こう。OSDL Database Test Suiteの実行に必要なリソース一式は、オープンソースソフトウェアのためのプロジェクト支援サイト「SourceForge」から入手できる。本稿執筆時点の最新バージョンは「dbt1-v2.1」だが、筆者の手元にある環境では残念ながらまったくビルドできなかったので、今回は一つ前のバージョン「dbt1-2.0.1」を導入することにした。

まず、DBT-1のテストを実行するユーザ、グループのアカウントを作成する。グループ名、ユーザ名は任意だが、DBT-1では一応「pgsql」という名前が推奨されている。


# groupadd pgsql
# useradd -g pgsql pgsql

以後、もろもろの手順は、基本的にこのユーザの権限で実行することにする。次はDBT-1の実行に必要なリソース一式、「dbt1-v2.0.1.tar.gz」のダウンロード、アーカイブの展開、それからビルドに必要な環境変数の設定だ。


$ tar zxvf dbt1-v2.0.1.tar.gz
$ cd dbt1-v2.0.1
$ export CFLAGS=-I/usr/include
$ export LDFLAGS=-L/usr/lib
$ autoconf

CFLAGS環境変数にはlibpq_fe.hなどのPostgreSQLのヘッダファイルが存在するディレクトリを、LDFLAGS環境変数にはlibpq.soなどのPostgreSQLのライブラリが存在するディレクトリを指定する。autoconfがエラー無く終了したら、続けてビルドの手順を実行しよう。PostgreSQLのテストのみを行うのであれば、MaxDBに関連するリソースは不要である。「--without-maxdb」オプションを指定してconfigureを実行しよう。


$ ./configure --without-maxdb
$ make
$ su -
# make install

以上でDBT-1のテストに必要なプログラムがインストールできた。残るは細かい環境設定だ。テスト用の環境変数を整えるためのスクリプト「set_run_env.sh」の設定を変更しよう。


$ cd scripts/pgsql
$ vi set_run_env.sh

export SID1=DBT1
export PATH=$PATH
export PGDATA=/var/lib/pgsql/data
export PGUSER=pgsql
export DBT1_PERL_MODULE=/xxxxxx/dbt1-v2.0.1/perlmodules

「SID1」は、テストに使うデータベース名を指定する。「PATH」は、psqlなどのPostgreSQLの各コマンドが実行できるよう、プログラムディレクトリにパスを通す。例えば/usr/local/pgsql/binにコマンド一式がある場合には、


export PATH=/usr/local/pgsql/bin:$PATH

以上のようにすればよい。 「PGDATA」、「PGUSER」も、それぞれPostgreSQLの環境に合わせて変更しよう。なお、「DBT1_PERL_MODULE」は、デフォルトのまま変更する必要はない。

以上の設定が完了したら、次はテストに使用するデータベースの作成を行う。DBT-1には、データベースの作成からオンライン書店のサンプルデータの生成までを、すべて自動的に行う便利なスクリプト群が付属している。適当にパラメータを指定して順番にスクリプトを実行すれば、簡単にテスト環境が整う仕組みだ。

…が、残念ながら今週はここまで。次回は、サンプルデータの作成からテストの実行までの手順を、じっくりと紹介していく。お楽しみに。