image header
Index >> Plamo Linux Fan >> InterBase 6 メモ
                InterBase 6 / Firebird メモ
2003/09/22

1.目的
 InterBase 6 は、オープンソースの商用 RDBMS です。InterBase そのものの沿革については、以前のページ(InterBase 4 for Linuxメモ)でご紹介しました。また、InterBase5についても以前のページをご覧下さい。

 InterBase の以前のバージョンとの最大の違いは、オープンソースであることです。なんで今まで有償で売っていたプロダクトをタダで配ってしまうのか、にわかには理解し難いことと思いますが、要するにプラットフォームそのもの(すなわちモノ)で商売する事を止めた、ということだと勝手に解釈しています。つまり、これを使える人は勝手に使って結構、だけど使えないなら有償でお手伝いしてあげましょう、ということでしょう。最近の Linux サポートなんかとスタンスは同じだと思います。

※6.5も7も有償ででたので、すでに当てはまらない?

 InterBase 6 は、Linux版はもちろん、Windows版やSolaris版などが揃っています。Firebirdではこれに加えてFreeBSD版などもあります。クライアントもそれぞれにあり、APIセットも全部公開されています(当然だ(笑)。また、Windows上の開発環境である C++ Builder や Delphi との親和性が高く、Windows上で動作するC/Sアプリを作るプラットフォームとしてお勧めです。近々、Kylix というコードネームで知られる Linux 用のネイティブ開発環境もデビューするらしいですから、Linux 中心の方でも興味深々でしょうね。

※ご存知のとおりすでにデビューしてついでにKylix2になってます(^^;
※Kylix3になってC++も使えるようになってます…が、僕買えないので試せない(泣)
 もちろん、Perl や PHP などでCGIと連携して使う事も出来ますし、Java から使う事も出来て、アマグラマからプログラマまで幅広いユーザを満足させてくれることでしょう。まぁそうはいっても僕はWebDBシステム作るのは商売ではないので、Java クライアントはきっと当面使う事はないでしょうけど(笑)。

 なお、Plamo-2.x で動かすには多少細工が必要です。Plamo-3.xも同様です。それも明記しますので、参考にしてください。

2.入手先

Inprise, inc. の InterBase のページ
http://www.borland.com/interbase/
Firebirdと称されるもう一つのInterBase6、今じゃこっちがオープンソースとしては本流 2003/09/22現在1.0.3.972-0
http://Firebird.sourceforge.net/
IBConsole(InterBase6 SuperServer用統合管理ツール)
IBConsole 1.1.0.14
今日現在の最新版。ころころ変わるので要チェック。
IBConsole for Linux
IBConsole 1.1.0.13 for Linux
Firebird 1.0 日本語版
twise labo, inc.のダウンロードページ
日本語が扱えるIBConsoleが含まれていて、便利です。最新版を日本語化くださっています。IBConsoleのcharset扱いがまともなので、日本語使うにはとっても便利です(^-^)b
商用InterBase6日本語版
BorlandのInterBase6ページ
もちろん日本語扱えます。IBConsoleも日本語化されてます。でも有料です(笑)
3.導入方法

1.インストールするパッケージを選ぶ

 以前のバージョンとは違い、InterBase 6 の Linux 版には2つの異なるパッケージがあります。Classic Serverキット(以下CS)とSuper Serverキット(以下SS)と呼ばれるものがそれです。違いは、CSの方は従来通り inetd からオンデマンドでロードされるタイプで、セッション毎に固有のプロセスが動きますが、SSはWindows版と同様常駐型で、マルチスレッドで動作します。
 どちらを使うべきかは正直僕にはわかりません。CS版は tcpwrapper によってドメイン単位やIPアドレス単位で InterBase 自体へのアクセスを制御できるという利点があります。SS版は(知る限りにおいて)このような形でのアクセス制御は出来ません。

※但しipchainsなどを組み合わせて不可視にすることはできます
 それだけ安全性は高いという理由からCSをお使いになっている方も多くいらっしゃるようです。
 しかし、僕は敢えてSS版を使っています。理由は、

  1. CS版はWindowsクライアント付属のIBConsoleからデータベース自体のメンテナンスや管理が出来ない。Linuxコマンドラインツールに慣れるよりWindows管理ツールに慣れるほうが早いし、Windows版InterBase6も同じツールを用いるので、管理者がDBサーバのOS種別を気にしなくてよい。
  2. 僕んちの利用環境が、閉じた(防護壁の内側の)ネットワークであり、外部からホストの存在するネットワークへのアクセス自体を許していないので、不正アクセスを気にする必要がない(もし防護壁が突破されたら、他にもっと危険なホストがたくさんある(爆)

 といったような事です。僕はそうだ、というだけですから、お使いになる方はご自身で悩まれたらいいんじゃないかと思います。

2.Plamo-2.x用に細工

 冒頭で触れたとおり、Plamo-2.xへこれを導入するには、多少の細工が必要です。しかしながら、前バージョンのようにインストールに ksh は必要ありません。
 ですが、libncurses4 は必要です。こちらは Plamo-2.1では Contribute されているので、これを使います。

# installpkg /cdrom/contrib/Libs/ncurses4.tgz

 なお、Plamo-2.2 ではこれが Contribute されていません。そこで、他のバージョンのリンクを作成してみたら動いてしまいました(^^;

# ln -s /lib/libncurses.so.5.2 /lib/libncurses.so.4

 お試しになってみてください。

3.アーカイブを展開

# cd /tmp
# tar xvf InterBaseSS_LI-V6.0.1.tar

4.インストール

# ./install -s /tmp/InterBaseSS_LI-V6.0.tgz

 これで、/opt/interbase にインストールされます。別にこのままでもいいですが、僕は前のバージョンとの互換性(というより自身の習慣との互換性(笑)の為に、/usr/interbase というシンボリックリンクを作っています。インストールするディレクトリ自体を変えちゃうといろいろ面倒みたいですから(^^;

# ln -s /opt/interbase /usr/interbase

5.起動設定

 起動は、/etc/rc.d/rc.local から行う事にします。このファイルに下記の行を追記します。

# vi /etc/rc.d/rc.local
# cat /etc/rc.d/rc.local
...
if [ -x /usr/interbase/bin/ibmgr ]; then
  echo -n "Starting InterBase 6 Super Server "
  /usr/interbase/bin/ibmgr -start -forever
fi

 これで完了です。マシンを再起動したら、自動的に起動します。

6.テスト

 では、動いているかテストしてみます。まずは、Linux単体でテストします。
 テストしたいユーザでログインして、isql (InteractiveSQL) を起動します。/opt/interbase/binにありますが、僕は/usr/interbaseというリンクを作成しているので、下記のようにします。深い意味はありません。以前のバージョンが/usr/interbaseにインストールされていたので、自分の手がそう覚えているというだけです(笑)

$ /usr/interbase/bin/isql
Use CONNECT or CREATE DATABASE to specify a database
SQL>

 isqlは起動時にコマンドラインでデータベースを指定することもできますが、デフォルトキャラクタセットをShiftJISやらEUCにしているときに困りますので、しないほうがいいです。
 このような表示になったら、OKです。データベースへ接続して、実際に動いていることを確かめましょう。

SQL> connect /usr/interbase/examples/employee.gdb user sysdba password masterkey;
Database: /usr/interbase/examples/employee.gdb, User: sysdba
SQL>

 SYSDBAというユーザはデフォルトで存在する管理者アカウントで、masterkeyというのはそのデフォルトのパスワードです。必ず変更しましょうね。ここでは説明の都合で、これを用いますが。
 ここまできたら、間違いなく動いていますが、一応念のため、クエリーくらいは実行してみましょう。

SQL> show tables;
       COUNTRY                                CUSTOMER
       DEPARTMENT                             EMPLOYEE
       EMPLOYEE_PROJECT                       JOB
       PHONE_LIST                             PROJECT
       PROJ_DEPT_BUDGET                       SALARY_HISTORY
       SALES
SQL> select * from country;

COUNTRY         CURRENCY
=============== ==========

USA             Dollar
England         Pound
Canada          CdnDlr
Switzerland     SFranc
Japan           Yen
Italy           Lira
France          FFranc
Germany         D-Mark
Australia       ADollar
Hong Kong       HKDollar
Netherlands     Guilder
Belgium         BFranc
Austria         Schilling
Fiji            FDollar

SQL>

 こんな具合にテーブルのデータが表示されたら、確実に動いていることがわかりますね。確認が終わったら、終了します。

SQL> quit;

 以上でサーバが期待通り動いていることはわかりましたが、Windows から動作を確認するには、Windows版クライアントがインストールされたマシンが必要です。Windowsクライアントとして、本家から配布されているものを使うと、IBConsoleが日本語非対応でなにかと困るらしい(僕は困りませんが)ので、日本語化された Firebird InterBase 6 サーバを Windows にインストールしてしまいましょう。ついでにローカルDBも使えるようになったりして、テストなどには便利かもしれません(^-^)b

  1. Firebird日本語化版を入手
    twise labo. のページからTWIB60.EXEをダウンロードします。

  2. ローカルマシン上で実行します。

 これで、Firebird InterBase 6日本語版がインストールされます。再起動後、スタートメニューからTWIB60を探して、中のIBConsole日本語版を実行すると、日本語化されたIBConsoleが起動します。以後、これを使ってユーザ管理やデータベースの作成、データの登録、SQLの実行やバックアップ/リストアなどのデータベース管理が出来ます。

 なお、日本語化されたIBConsole単体がBorlandのホームページにも置いてありますが、もちろんライセンスの問題があり、誰でも使えると言うものではありません。幸い(?)僕は、商用のライセンスも持っているので両方試せますが、通常はダメですよ(^-^)b(謎)

 また、日本語化されたマニュアルが欲しいという方がいらっしゃいますが、それはもう商用のInterBase6を買うしかないでしょうねぇ(^^;

 こうしてトータルでみて、完全に日本語化された環境が欲しければ、Borland株式会社から販売されている商用版を買って開発、OpenSource版で運用、というのがもっともいいのではないでしょうか。僕の場合は、C++BuilderやらDelphiを買っているので、開発環境を日本語にするのもたやすいし、日本語のドキュメント類も付いてきますから、日本語じゃなくてはいやな方でも大丈夫です。なお、参考までに、OpenSource版のfor Linux SSとDelphi6のInterBaseクライアントの組み合わせなどは、特に問題なく管理、開発できます。同じくFirebirdSSとでも(今のところ、若干細工つきで)大丈夫です。
4.運用方法

 InterBase を導入して、さて何をしようか?と考えてしまう方は非常に多いと思います。かくいう私もそうですが(^^;
 で、何をするかは各々考えていただくとして(をいをい(^^;)、その手段として何が選べるか、書いてみますと、

● 単に Linux 上で使う
 すいません、こういう使い方したことないんで、何も書けません(笑)
 が、何も追加のツール類は要らないはずです(多分
● データベースサーバとして Windows マシンと共にクライアント/サーバ構成で使う
 僕が InterBase に固執する最大の理由は、Windows上の開発環境である C++Builder/Delphi との親和性が高いからです。また、最近は Kylix もデビューして、Linux 上の X 用アプリなんかも簡単に書けますしね(^-^)b
 昔は違いましたが、今は BDE とか ODBC みたいないわゆるミドルウェアなしに、ただインストールしただけで何も考えなくても素直に繋がります。今となっては、クライアントが何百台あろうがライセンス料はタダですし :-)
※商用版 InterBase6 も販売開始されたので、払いたい人はライセンス料を払う道もあります(謎)
 もちろん、C++Builder/Delphiは売り物ですから、買わなくてはなりません。僕は元々持っていたので、そのために買ったりはしていませんが・・・
 この構成では、データベース側からクライアントプログラムに対して積極的にトリガをかけると言う奇特な技が使えます。普通データベースの更新を見る必要があるときは、「ポーリング(自ら一定時間毎に状態変化を確かめる)」という処理をするものですが、これですとクライアント側プログラムもサーバもネットワークもすべてに無駄な負荷が掛かります。これをイベントとして受け取れると、こんな無駄な負荷はかけずに済みますからね。とっても便利です(^-^)b
● Perlを使ってCGI
 IBPerlとDBDの二つの方法があるようです。今まではIBPerlの方を主に使っていました。理由は「先に見つけたから(笑)」。今は DBI が主流みたいですが、僕程度の使い方だと IBPerl で実は十分でしたね。
 InterBase用のDBIについては、こちらを。
● PHPを使って
 最近はこちらへ傾倒しています。NT/IISのASP、NetWare/NetscapeのNSPと仕組みは同じです。最近では皆さん、PerlからPHPへ流れているようですし、実際軽いし学習が楽だし、いいんじゃないでしょうかね。Plamoにもパッケージで入ってますし。
 なお、IbaseAdmin という PHP ベースのデータベースメンテナンススクリプトが製作されているので、IBConsoleなどなくてもスキーマ作成なんかできたりして結構面白いです(^-^)b PHP 環境の構築ができたら一度動かしてみてはいかがでしょう?
● Javaを使って
 商売でやられる方は、こちらへ行くでしょうね。僕はひとまずこちらへ行く予定はないので、何も書けません。Javaな本でも読んでください。
 ただ、InterBase自体はJavaをサポートしていますから、別段問題ないでしょう。皆さんさくさくとお使いになっているようです。
 最近は JSP が何かと話題なので、ちっとやってみたいなぁという気になってます(笑)
付録1.参考文献

Inprise, inc.ご本家
ちょっと前まではInterBase, inc.だったが、今は元に戻って再び Inprise になって、更に戻って Borland になってます(^^;。更新履歴とか各種コミュニティへのリンク、各種プラットフォーム用のダウンロードができます。InterBase Express の Dialect3対応版もこちらから(但し英語版)
Code Central
更新されたコンポーネントやツール、サンプルソースなどが手に入ります。最新のIBConsoleもこちらから。
データベース Linux
リオスコーポレーションの下田雅彦氏が書かれた InterBase 4.0 for Linux の解説書です。データベース初心者にもわかりやすくて、お勧めです(^-^)b
購入は、ISBN4-7561-2013-X、\4,500-です。同梱CD-ROMに、InterBase 4.0 for Linux が含まれています。
InterBase Information
Borland株式会社による日本語のテクニカルインフォメーションがあります。公開サーバにインストールしてなおセキュリティを確保するためなどで Linux Classic 版をお使いになりたい方で初心者な方は、ここでコマンドライン版 gsec の使い方が分かります。
データベースLinux -Java Servletによる Webサーバー構築編
上記の続編、InterBase5用に書かれていて、Java Servletを使った構築法を解説しています。
Firebird 〜 オープンソースデータベースの導入と運用の実際
上記の書籍も書かれた加藤大受氏が書かれた、恐らく初めてのFirebirdの解説書です。最近『第3のオープンソースデータベース』とか言われていますが、うーん・・・ 単に知名度の問題ではなかろうか、と(^^; 湾岸戦争時は国連軍のメインRDBだったくらい歴史も実績もあるんですから・・・
InterBase6用ODBCドライバ
Dialect3対応のODBCドライバのβ版。2000年11月までしか使えないらしい(^^;
Karwin's IBPerl
InterBase を Perl5 から使うためのモジュールを配布しています。
DBI-InterBase
同じくInterBase を Perl5 から使うためのものですが、こちらはDBI用です。
IBObjects
C++Builder/Delphi付属のInterBase Expressのようなもの。
FIBPlus
こちらも同様。
IbaseAdmin
MySQL用のphpMyAdmin、PostgreSQL用のphpPgAdminと同様、データベースのメンテナンスがWeb上から行える PHP スクリプトです。
IbWebAdmin
こちらも同様ですが、最近こちらの方がアクティビティ高そうなので、ちょっと注目(^^;

Index >> Plamo Linux Fan >> InterBase 6 メモ

image footer