DB2 Express-C 9.7 for Windows(以下DB2 Express-C)は、有償のDB2 Expressとほぼ同じ機能を持っていながら、無料で使用することができるエディションです(IBMからのサポートはありませんが、WEBのフォーラムでQ&Aを行っています)。2011年5月に最新版v9.7.4 (9.7 Fix Pack 4)が公開されました。
ドキュメントではWindows版DB2 Express-Cのインストール方法を詳細に解説します。
DB2 Express-Cには以下のような制限がありますが、制限は少なめです。特にDBサイズの制限が無いことは特筆すべきことでしょう。
| 最大プロセッサ数 | DB2が使えるのは2コアまで (これ以上のCPUコアを持つマシンにも導入は可能) |
| 最大使用可能メモリ | DB2が確保できるメモリが2GBまで (これ以上のメモリを持つマシンにも導入可能) |
| 最大DBサイズ | 制限無し |
また、DB2の主な特徴として挙げられるのがXMLデータベース機能の「pureXML」や、メモリ管理の自動調整機能「STMM」ですが、そのどちらもDB2 Express-Cに搭載されています。最新の機能を持つデータベースを、ぜひ試してください。
DB2 9.7 for WindowsがサポートするWindows OSは「DB2 データベース製品のインストール要件」に記述されています。
正確なサポート範囲は上記ドキュメントに譲りますが、クライアント製品のWindows XP,VISTA,7やサーバー製品のWindows2003,2008等主要なWindows環境をサポートしています。また32bit版と64bit版の両方をサポートしています。
このドキュメントで使用したDB2とWindowsは以下の通りです。32bit版の例ですが64bit版OSでも同じ操作で導入できます。
- DB2 Express-C 9.7.4 (Windows 32bit版)
- Windows Vista (32bit版)
DB2 Express-Cは「Download DB2 Express-C」よりダウンロードが可能です。
リンク先ページでは多数のOS用DB2 Express-Cイメージが用意されています。また、同じページから.NET環境やJDBCのドライバ、新しい管理用GUI環境(IBM Data Studio)もダウンロード可能です。ここではWindows(32bit)版をダウンロードします。下記の丸印のリンクをクリックしてダウンロードしてください。なお64bit版Windowsを使用している場合は、Windows 64-bitをダウンロードしてください。
クリックすると以下の画面が現れます。IBM IDをお持ちの方はIBM IDでサインインしてください。IDをお持ちでない場合は右側の"Proceed without an IBM ID"をクリックしてください。
次の画面ではアンケートに答えた後、画面下の方でライセンスの確認を求められます。
ライセンス内容を確認の上、"I agree (同意します)"にチェックを入れて次に進んでください。
使用同意書に同意すると上の画面になります。ここではダウンロードの方法が選択できます。ダウンロード・ディレクター(Download Director)を使用した高速なダウンロード方法と、一般的なhttp経由でのダウンロードが選択できます。
通常はダウンロード・ディレクターを使用します。"DB2 Express-C”にチェックを入れて、一番下の「ダウンロード」をクリックします。同時にDB2 add-ins for Visual StudioやData Studioもダウンロードできますので、必要な場合は同様にチェックを入れてください。
Javaアプレットが使用できない環境ではダウンロード・ディレクターが使用できません。その場合は”Download using http”のタブをクリックしてからダウンロードしてください。
管理権限を持つユーザー (Administrator等)でログインして、さきほどダウンロードしたdb2exc_974_WIN_x86.exeを実行してください。
実行すると自動的に圧縮ファイルが展開され、インストーラーが起動します。最初に以下のような画面が表示されますが、これは64bit版のWindowsには64bit版のDB2を導入してくださいという確認です。OKを押してインストールに進みます。
これから具体的なインストール方法を解説しますが、これはDB2インストール方法の一例ですので、他の選択肢を選んでインストールしていただいても問題ありません。
上記画面で、「製品のインストール」を選択します。
右側の「新規インストール」ボタンをクリックすると、インストーラーが起動します。
注) OSに設定されている標準ブラウザが、Internet Explorer以外を標準にしている場合、上記のボタンを押してもインストーラーが起動しない場合が以前のバージョンではありました。もしそのような現象が起きた場合は一時的にInternet Explorerを標準のブラウザに変更して実行なおしてください。
この画面が表示されたら「次へ」をクリックします。ただし、インストーラーの内部処理で圧縮ファイルの展開作業を行っているため、システムによっては「次へ」ボタンが有効になるまでに少し時間が掛かる場合があります。
DB2をインストールする前に、最低でも以下の事を計画しておく必要があります。
- DB2の管理ユーザー名 (デフォルトでは、db2admin)
- インスタンスのTCP/IPポート番号 (デフォルトでは、50000番)
DB2サーバーは、Windows上のサービスとして起動します。その起動には、上記の「DB2の管理ユーザー」のIDとパスワードが使用されます。最近のDB2ではユーザーとしてローカルシステムアカウントを設定する事も可能です。
また、DB2 ではインスタンス(データベースシステム)が外部(クライアント)からの接続を受け付けるために、インスタンス毎に一つ、現在使用していないTCP/IPポート番号が必要になります。
DB2ライセンス情報の確認です。内容を確認して同意できたら「使用条件の条項に同意します」をチェックして、「次へ」をクリックします。
インストール・タイプを選択します。「カスタム」を選択すると導入するコンポーネントを細かく選択できます。「標準」を選ぶと標準的なコンポーネントが選択され、またインストール時の質問項目の多くが自動的に決定されるため、質問項目が少なくなります。「フィーチャーの表示」を選択すると「標準」で導入されるコンポーネント一覧が確認できます。
多くの場合、「標準」のままで問題ありませんが、全文検索機能Text Searchを導入したい場合は「カスタム」を選択する必要があります。
ここでは「標準」を選択したまま「次へ」をクリックします。
ここでは応答ファイル(レスポンス・ファイル)を作成するかどうかを設定します。応答ファイルは、インストール時に選択した内容を記録しておくファイルで、同じ内容で次回インストールする際にそのファイルを使用するとインストール作業を自動化できるというものです。
一番下の「設定を応答ファイルに保管する」を選択したまま「次へ」をクリックします。
ここではDB2を導入するディレクトリを選択します。デフォルトでは\Program Files\IBM\SQLLIB\に設定されています。任意のディレクトリ名に変更する事が可能です。ディレクトリを指定したら"次へ"を押します。
DB2の管理ユーザーについての設定です。ここではユーザー名をデフォルトのdb2adminとしています。また、Windowsのドメインを利用して認証する場合はここで選択できます。
ここで管理ユーザーを作成するのではなく、Windowsのローカルシステムアカウントを使うことも可能です。(真ん中の「LocalSystem アカウント」にチェックを入れる)
ローカルシステムアカウントは、パスワード管理が不要になるため簡単に使えます。そのため開発用途などではローカルシステムアカウントを選択しても良いでしょう。ただし本番環境用としてはお勧めできません。
下部の「同じユーザー名とパスワードを残りのDB2サービスで使用する」は通常チェックを入れておいて問題ありませんが、何かの事情でDB2のサービス毎にユーザーを変えたい場合はチェックを外してください。
ここでは、インスタンスの構成を変更できます。主に、使用するTCP/IPのポートと、システム起動時に自動起動するかどうかを設定します。
Windows版のDB2では“DB2”という名前のインスタンスが自動的に作成されます。インストール時には一つのインスタンスが作成されますが、DB2は複数のインスタンスを作成可能です。インスタンスを追加するには導入後にdb2icrtコマンドを使用します。
"DB2" インスタンスの構成を確認するため、”DB2”を選択して「構成」のボタンをクリックします。
「構成」を選択すると上記ダイアログが出ますので、TCP/IPタブの構成を選択し、あらかじめ決めておいたTCP/IPのポート番号を入力します。前述のように他のサービスで使用していないポート番号を指定する必要があります。使用されているサービスは、Windows\system32\drivers\etc\servicesファイルを見ることで確認できます。
また、このダイアログで指定したサービス名もservicesファイルに追記されます。任意の名前を付けることが出来ますが、DB2のサービスである事が分かる名前にする事を推奨します。設定したら次は「スタートアップ」タブを選択します。
「スタートアップ」タブを選択すると上記画面が表示されます。
「システム始動時にインスタンスを自動開始します」にチェックを付けておくと、OS起動時に自動的にインスタンスが起動するようになります。 (OS起動後にdb2startコマンドを実行するのと同じです)
DB2のインスタンスはWindowsのサービスとして登録されますので、インストール後にインスタンスの自動起動を変更したい場合は、Windowsの「サービス」管理パネルによって変更できます。
設定したら、「OK」をクリックして前の画面に戻り、「次へ」をクリックします。
全て入力が完了するとサマリーが表示されます。「DB2 コピー名:」というところにDB2COPY1という名前が設定されていることが確認できます。DB2 9.1から複数のバージョンのDB2を一つのマシンに導入できるようになったため、複数のDB2を区別するために、「コピー名」という名前が使用されるようになりました。カスタムでインストールした場合は自由なコピー名が設定できます。
設定内容に間違いが無いことを確認して「完了」をクリックします。後は自動的にDB2のインストールが行われます。
インストールの中で自動的にサンプルデーベース(SAMPLE)が作成されますが、デフォルトではインストールを実行したユーザー名(Administrator)のスキーマ上に表が作成されます。
SAMPLEデータベースを作成し直したい場合は、DB2導入後にAdministratorでdb2 DROP DB SAMPLEを行い、別のユーザーでdb2samplコマンドを実行する事で再度作成が可能です。(例えばdb2adminユーザーでdb2samplコマンドを実行するとDB2ADMINスキーマ上に表が作成されます)
インストールが終了するとブラウザ上にDB2 Express-Cホームページが表示され、インストーラーには上記のような完了の画面が表示されます。
これでDB2のインストールは完了です。「完了」をクリックしてインストールを完了します。
インストール完了後に上記のような「DB2ファースト・ステップ」が表示されます。メニューに「SAMPLEデータベースの作成」とありますが、標準インストールの場合はデフォルトで作成されていますので、再度作成する必要はありません。ここではそのままウィンドウを閉じてください。
あとでファースト・ステップを表示したい場合はWindowsスタートメニューから「IBM DB2 -> DB2COPY1(デフォルト) -> セットアップ・ツール -> ファースト・ステップ」で起動できます。
インストール後に、動作を確認します。まず、Administratorでログインしている場合はログオフし、DB2管理ユーザー(db2admin)で再度ログインします。Administratorでも問題なく作業が行えますが、DB2の作業をする場合は、db2adminや他のユーザーで行うのが良いでしょう。(なおインストール時にdb2adminユーザーを作成せずローカルシステムアカウントを使用した場合はログインしなおす必要はありません)。
次に、インストール時に作成したSAMPLEデータベースにコマンド・ウィンドウから接続してみます。スタートメニューから「IBM DB2 -> DB2COPY1(デフォルト) -> コマンド行ツール -> コマンド・ウィンドウ」と選択しコマンド・ウィンドウを起動します。DB2のコマンドはこのウィンドウで実行します。
まずdb2levelコマンドを実行してDB2のバージョンを確認してください。画面にDB2のバージョン番号や導入先ディレクトリが表示されるはずです。
次にコマンド・ウィンドウ上で以下のように入力し、SAMPLEデータベースに接続してみます。ただしインストール直後はインスタンスが起動していますのでdb2startは不要です。
> db2start (インスタンスの起動) > db2 connect to sample (データベースに接続) > db2 list tables for all (表の一覧を表示) > db2 “select * from administrator.staff “ (SQLを実行) > db2 terminate (接続解除) |
また、db2ccコマンドを実行するか、スタートメニューから「IBM DB2 -> DB2COPY1(デフォルト) -> 汎用管理ツール -> コントロール・センター」を選択することで、GUIのコントロール・センターを起動してデータベースの内容を確認する事もできます。
データベースに接続し、データベースの内容が確認できたら確認は終了です。
[Q] db2adminのパスワードを変えると、DB2が起動しなくなりました
[A] サービスのパスワードを入力しなおす必要があります
Windows版のDB2ではDB2関連のサービスをdb2adminユーザーで起動しているため、db2adminユーザーのパスワードを変更した場合、各サービスのプロパティにあるログオンタブを選択し、パスワードを新しいものに設定しなおす必要があります。
[Q] ドキュメントや情報はどこにあるのですか?
[A] インターネット上で閲覧可能です。
- インターネット上で最新のマニュアル (インフォメーション・センター) を確認できます。
- PDF版のマニュアルは、「DB2 Version 9.7 translated manuals」から検索して各国語版のマニュアルをダウンロードできます。
- また「インフォメーション・センター」をダウンロードして自分のPCに導入することも可能です。「DB2 database product documentation」に各種ドキュメントのURLがまとめられています。
- マニュアル以外の情報は、IBM developerWorks: Information Management ゾーン に各種情報がまとまっています。
[Q] 新しいDB2インスタンスを追加するには?
[A] db2icrtコマンドを使用します。
DB2インスタンスを追加するには、db2icrtを使用します。「db2icrt によるインスタンスの作成」と「db2icrt - インスタンスの作成コマンド」にある解説を参照してください。
[Q] 他のマシン(クライアントマシン)からリモートのDB2に接続するには?
[A] ランタイム・クライアントを導入後、接続先のサーバーを設定します。
他マシンからDB2サーバーにコマンドラインで接続するには、DB2のクライアント環境が導入されている必要があります。DB2のクライアント環境は「DB2 for Linux, UNIX and Windows Trial Downloads」からダウンロード可能です。
上記より、"Data Server Client Packages (latest fixpacks)" をクリックします。latest fixpacksとは最新の修正が適用されたという意味です。
上記のようにたくさんの種類のクライアントがありますが、Clientと書かれたリンクをダウンロードしてください。Clientにはほぼ全てのクライアントコンポーネントが含まれています。(なおJDBCでの接続や、ODBCでの接続のみ必要であれば、該当するコンポーネントをダウンロードする事でダウンロードサイズを小さくできます)
DB2のコマンド・ウィンドウからリモートのDB2サーバーに接続するにはクライアント環境を導入後、接続したいデータベースをクライアント側に登録する必要があります。
- まず、接続したいDBを提供しているインスタンスのTCPサービス名をDB2サーバー上で確認します。DB2サーバーにインスタンスオーナーでLoginして、db2 get dbm config コマンドを実行します。インスタンスに関する情報が出力されますが、その中の
TCP/IP サービス名 (SVCENAME) = db2cdb2inst1
の行を記録しておいてください。そして、そのサービス名と対になっている(同じ行に書かれている)TCP/IPのポート番号をサーバー上の /etc/services (Windowsの場合は、Windows\SYSTEM32\Drivers\etc\services) から見つけてください。 - インスタンスユーザーでクライアントマシンにLoginします(Windowsの場合は、DB2コマンドプロンプトを起動する)。
- 以下のコマンドを使用して、DB2サーバーを新しいノードとして登録します。
- ノード(DB2サーバー)上のデータベースを登録します。
上記登録が終了すると、別名を指定する事でDB2サーバー上のデータベースに接続する事が出来ます。
また、上記のコマンドラインからの方法以外にも、GUIの「構成アシスタント」を起動する事で、GUI上で設定を行う事ができます。
構成アシスタント
[Q] パッチ(修正ファイル)はどこで入手できますか?
[A] IBMサイトより、入手できます。
DB2 用の修正ファイルは、Fix Packという名前で公開されています。Fix Packの適用方法は、Fix Packのアーカイブ内 doc/jp/FixpakReadme.txtに日本語のマニュアルがありますので、そちらを参照してください。
ただし無償のExpress-C用には、Fix Packは提供されていません。Express-Cは定期的にダウンロードイメージが更新されるので、それを利用してください。また、Express-Cの有償保守サービスを購入すると、Fix Packが適用できるようになり、CPUコア数やRAMの使用可能量も増大します。
[Q] SQL****Nというエラー文が表示されました。どういう意味ですか?
[A] “?”コマンドで調査するか、メッセージ・リファレンス第2巻を調べてください。
SQLから始まる文字列は、SQLCODEというDB2 UDBでのエラー内容を表した値です。この値の意味を調べるには、インフォメーション・センターで検索するか、「データベースの基本 > メッセージ > SQL メッセージ」を参照してください。
またDB2コマンド・ウィンドウでdb2 “? SQLCODE”と入力する事で、簡易な解説を得る事ができます。
> db2 "? SQL0204N" |
[Q] 操作するインスタンスを切り替えるには?
[A] DB2INSTANCE環境変数を設定してください
DB2 for Windowsでは、操作するインスタンスは環境変数DB2INSTANCEの値で決定されるため、他のインスタンスに切り替えるにはDB2INSTANCEを変更します。
> set DB2INSTANCE=db2other |
また、システム起動時のデフォルトインスタンスを設定したい場合は、DB2のレジストリ変数DB2INSTDEFに値を設定します
> db2set DB2INSTDEF=db2other |
[Q] コマンドプロンプトからDB2のコマンドを実行すると、「DB21061E コマンド行環境は初期化されていません。」が表示されます。
[A] DB2のコマンド(db2 connect 等)は、DB2コマンド・ウィンドウから実行します。
コマンドプロンプト(MS-DOSプロンプト)から直接db2 connectなどと実行すると、「DB21061E コマンド行環境は初期化されていません。」というエラーが表示されます。これはDB2コマンドの実行に必要な環境が初期化されていないためです。DB2コマンドの実行は、スタートメニューから「IBM DB2」 -> 「DB2COPY1」 -> 「コマンド行ツール」内にあるコマンド・ウィンドウなどから実行する必要があります。
もしくは、MS-DOSプロンプトからdb2cmdコマンドを実行すると出てくるプロンプトでも同様にDB2コマンドの実行が可能です。
- 日本アイ・ビー・エム DB2ホームページ
- DB2 Express-C デベロッパーポータル: Express-C関連の情報が集められています。
- IBM developerWorks: developerWorks JapanのDB2関連技術情報サイトです。
- DB2サポート情報
- DB2 9.7 Information Center (マニュアル)

下佐粉 昭はDB2に関して10年の幅広い知識と経験を有する日本アイ・ビー・エムの社員です。彼は書籍「即戦力のDB2管理術」の著者であり、「DB2 逆引きリファレンス」と「XML-DB開発実技コース」の共著者でもあります。彼の旺盛な好奇心はDB2に留まらず、Javaやオープン・テクノロジーでも幅広い活躍をしています。現在はソフトウエア事業に所属し、ビジネス・パートナー様の技術支援の仕事に従事しています。休日は各地の温泉に行く事を趣味にしています。