2006/04/03 更新
Firebird の SQL文についてのおぼえがきはFirebird の SQL文(おぼえがき)にあります。
Zope/Python 関連のインストールや使い方については、Firebird の DAを使うを参考にして下さい。
私のもっているのは、以下の書籍
Windows の場合は、本家 http://www.firebirdsql.org/ からバイナリインストーラー形式のものをダウンロードしてくれば良いでしょう。
Linux/BSD で、ソースからコンパイルしたい方は、ソースは本家 からダウンロードできますので、最新のソースアーカイブをダウンロードしてきて、
|
# bzcat Firebird-1.5.0.src.tar.bz2 | tar xvf - # cd firebird15 # ./autogen.sh # make # make install |
で、コンパイルできます。
例えば、super server 版をサポートしているアーキテクチャ(Linux)で、isqlなどのコマンドで、行編集機能を使いたい場合は、
./autogen.sh --with-editline --enable-superserver
とします。どんな引数が使えるかは
./autogen.sh --help としてみて下さい。(ただし、出てくるすべての optionが機能しているわけではないようです)
RPM 等ディストリビューションに対応したパッケージが出ていれば、それを使った方が良いでしょう。
Gentoo の場合は、 http://blog.so-net.ne.jp/nakagami/2005-06-21 を参照して下さい。
FreeBSD の場合は、ports からインストール、つまり
|
# cd /usr/ports/databases/firebird # make install |
とすれば、良いでしょう。
その場合、(FreeBSDで動く) Classic Server版は、inetd から起動されるので、/etc/rc.conf に
| inetd_enable="YES" |
の1行が必要です。
/etc/hosts.allowに
|
fb_inet_server : localhost : allow fb_inet_server : ALL : deny |
と入れておくと、localhost からの接続しか受け付けなくなります。
Python/Zopeでの使い方は省略し、ここでは、Firebirdを使う上で最低限のコマンドについて例示します。
UNIX系の場合、root権限を持っていると、-user -pass の指定がなくても良いようです(SYSDBA の権限で実行できる)。
SYSDBA のパスワードを newpass に変更します。
| C:\work>gsec -user SYSDBA -pass masterkey GSEC> modify SYSDBA -pw newpass GSEC> quit |
| C:\work>gsec -user SYSDBA -pass masterkey GSEC> add foo -pw bar GSEC> quit |
その他は gsec -h で調べてください。
isql -user foo -pass bar
でログインしたあと
| SQL> create database 'localhost:/some/path/file.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET EUCJ_0208; |
で、データベース /some/path/file.fdb が文字コードが euc-jp で作成されます。
この時、/some/path に、ユーザー firebird のファイル作成権限がなくてはなりません(UNIX系の場合)。
文字コードを utf-8 にしたいときは UNICODE_FSS を、Shift JIS にしたい時には、SJIS_0208 を DEFAULT CHARACTER SET に 指定します。
このあと、isql コマンド内で引き続き、SQL文が使えます。最後に
| SQL> quit; |
で isql を終了します。
2-3.と同じく isql でログインした後
| SQL > connect 'localhost:/some/path/file.fdb'; |
で /some/path/file.fdb のデータベースに接続できます。
| $ gbak -b -user SYSDBA -pass masterkey foo.fdb foo.fdb.backup |
| $ gbak -r -user SYSDBA -pass masterkey foo.fdb.backup foo.fdb |
Firebird 1.x の場合は、foo.fdb が存在する場合でも -r で上書きでレストアされますが、 Firebird 2.0 では「foo.fdb が存在する -rep オプションを使え」というようなメッセージがでます。ですので、Firebird 2.0 以降で上書きレストアするような場合
| $ gbak -rep -user SYSDBA -pass masterkey foo.fdb.backup foo.fdb |
Firebird では、データベースとファイルシステム上のファイルが1対1に対応します。ですので、データベースのバックアップというと、gbak を使う他に、データベースファイル自体をコピーして取っておくことができます。
データベースのファイルとは別のファイルに保存されているものもあります。例えば、ユーザーアカウント情報 (gsecで取り扱われるもの)は、Firebirdをインストールしたディレクトリの security.fdb に保存されています。
データベースファイル(.fdb)の他に、Firebird をインストールしたディレクトリ (普通は、/usr/local/firebird)にある以下のファイルのバックアップを取っておけば良いでしょう。
Firebirdをインストールすると、以下の2つのサービスが登録されます
Firbird Guardian Service は、Firebirdのサーバープロセスを監視して、落ちているときにログにメッセージを出したりしているもののようで、開発環境では、特に必要ではないもののようです。(停止していても動作上問題なし)
Firbird Server も、開発環境であれば、自動にする必要はなく、手動にしておき、必要なときだけ起動するようにすればよいでしょう。
1データーベース=1ファイルというのが、わかり易くて、とても良いと思います。チューニングパラメータが一切ないのも、「管理が楽」と、良い方にとれば、何の問題もありません。
なお、情報を集める時には、「Firebird」 よりは「InterBase」というキーワードで探したほうがより良い結果が得られるでしょう。InterBase
6.0 と Firebird 1.0はほぼ同じ機能と考えてよいでしょう。最近は、Firebird の情報が増えてきました。InterBase の情報は古いので見るのはやめたほうがよいかも知れません。