Firebirdのアーキテクチャと特性、歴史
Firebird日本ユーザー会
はやしつとむ
2008/10/16
Firebirdのインストールから起動まで
さて、firebirdとはいったいどんなRDBMSだろう? 今回は、手始めに導入の手順はもちろんだが、Firebirdが生まれた背景や、アーキテクチャの特性にも触れたいと思う。歴史的背景の部分は、コンピュータ業界の栄枯盛衰もからむものだから、一度は読んでみてもいいだろう。
まずは本題、Firebirdの最新版であるv.2.1.1を使ってみよう。
ビルドするには
まずは、FirebirdプロジェクトのWebサイトからリンクをたどって、現在の最新版であるv.2.1.1のソースコードを取得しよう。ターゲットOSはCentOS 5.1としたが、最近のLinuxディストリビューションならどれでもまず問題ないだろう。パッケージも用意されているが、ここではソースコードを入手してビルドする手順を紹介する。
以降の解説はCentOS 5.1を前提にするので、それ以外の環境の場合は適宜読み替えてほしい。
- FirebirdプロジェクトのWebサイト
http://www.firebirdsql.org/
まずは、wgetコマンドでアーカイブを入手する。
$ wget http://nchc.dl.sourceforge.net/sourceforge/firebird/Firebird-2.1.1.17910-0.tar.bz2
bzip2とtarでアーカイブされているので、下記の手順で展開する。
$ tar xjf Firebird-2.1.1.1790-0.tar.bz2
終了すると、Firebird-2.1.1.17910-0といった名前のディレクトリができているので、そこに移動しておこう。
このディレクトリの配下にはいくつかのファイルとディレクトリがあるが、このうちautogen.sh というシェルスクリプトを実行する。
$ cd Firebird-2.1.1.17910-0 $ ls ChangeLog acx_pthread.m4 builds configure.in examples lang_helpers Makefile.in autogen.sh configure doc extern src $ ./autogen.sh
autoconfが走って、おなじみのチェックが一通り終わると以下のメッセージが表示されるはずだ。
The Firebird2 package has been configured with the following options: Architecture : ClassicServer Debug : disabled 64 bit I/O for 32-bit platforms : enabled Raw devices : enabled Lock manager : enabled Service name : gds_db Service port : 3050 GPRE modules : c_cxx.cpp
Install Dir : /usr/local/firebird
Now type `make' to compile Firebird2
ビルドオプション
ここまでの作業が終わったら、あとはmake を実行すればFirebirdのビルドが始まる。
その前に、autogen.shのオプションについて説明しておこう。 autogen.shに --help オプションを付けて実行すると、すべてのオプションについての説明が表示されるが、ここでは代表的なものを下の表にまとめておこう。用途や環境に合わせて使い分けてほしい。
オプション | 内容 |
--prefix=PREFIX | Firebirdのインストール先。RPMを使ってインストールすると、/opt/firebird2などに置かれるが、デフォルトでは/usr/local/firebird。Linuxの作法では後者の方が正しい |
--enable-superserver | 指定すると、SuperServer版でビルドされる。指定しない場合、ClassicServerとなる |
--enable-debug | 指定すると、デバッグ版でビルドされる。デフォルトでは無効 |
--enable-raw-devices | 指定すると、データベースでのRAWデバイスサポートが有効になる。POSIX環境ではデフォルトで有効 |
--with-lock-manager | ロックマネージャをビルドする。ClassicServer版のときはデフォルトで有効 |
--with-service-name | INETサービスネームを指定できる。デフォルトではgds_db |
--with-service-port | INETサービスポートを指定できる。デフォルトで3050 |
--disable-largefile | 32bitOSでの64bitI/Oを無効にする。デフォルトで有効 |
makeそのものは特別なことはなく、以下のようにコマンドを入力するだけだ。makeが終了したら、rootになってmake install を実行する。ここではインストール後にもroot権限で行う作業があるのでsudoではなくsuで作業する。
$ make
$ su root権限に
# make install
ずらずらとメッセージが表示された後、以下のプロンプトが表示されるので1回目にEnterキーを、2回目はsysdba、つまりFirebirdの管理者ユーザーのパスワードを入力してEnterキーを押下する。
●1回目のプロンプト Firebird classic 2.1.1.17910-0.i686 Installation
Press Enter to start installation or ^C to abort
●2回目のプロンプト Please enter new password for SYSDBA user: ユーザーとパスワードを入力
「Install completed」と表示されてプロンプトに戻ったらインストールは完了だ。
インストールが完了したら、rootを抜ける前にFirebirdのコマンドライン接続ツールであるisqlを使いやすくするため、/usr/local/binにシンボリックリンクを張っておこう。
# ln -s /usr/local/firebird/bin/isql /usr/local/bin/isql
接続ツールisql
isqlでFirebirdに接続するには以下のようにする。ここでは、付属のサンプルデータベースにsysdbaで接続している。-p オプションの後には先ほど入力したパスワードを入れること。
$ isql -u sysdba -p ******* /usr/local/firebird/examples/empbuild/employee.fdb Database: /usr/local/firebird/examples/empbuild/employee.fdb, User: sysdba
接続すると、isqlのプロンプトになる。使用できるコマンドは help; とすると出てくるので確認してみてほしい。
試しに基本的なコマンドを打ち込んでみよう。
show version; とすると接続しているFirebirdのバージョンが表示される。データベースに関する情報を表示するには show database; とする。ここで注意したいのは最後に「;(セミコロン)」を付けないと改行していくだけでコマンドは実行されないということ。逆に複数行にまたがるSQLを書くときには、どんどん書いていって最後にセミコロンを付ければいい。
isqlを終了するには、exit; またはquit; を実行する。
exit; もquit; も終了のコマンドだが、終了時の挙動が異なっているので注意が必要だ。exit; とした場合は変更をcommitしてから終了し、quit; の場合はロールバックしてから終了する。下の例ではロールバックする必要がないので、exit; としている。このほかの詳細はhelp; コマンドも併せて参照してほしい。
SQL> show version; ISQL Version: LI-V2.1.1.17910 Firebird 2.1 Server version: Firebird/linux Intel (access method), version "LI-V2.1.1.17910 Firebird 2.1" on disk structure version 11.1 SQL> show database; Database: /usr/local/firebird/examples/empbuild/employee.fdb Owner: SYSDBA PAGE_SIZE 4096 Number of DB pages allocated = 265 Sweep interval = 20000 Forced Writes are OFF Transaction - oldest = 167 Transaction - oldest active = 168 Transaction - oldest snapshot = 168 Transaction - Next = 171 ODS = 11.1 Default Character set: NONE SQL> show tables; COUNTRY CUSTOMER DEPARTMENT EMPLOYEE EMPLOYEE_PROJECT JOB PROJECT PROJ_DEPT_BUDGET SALARY_HISTORY SALES SQL> select count(*) from employee;
COUNT ============ 42 SQL> exit;
以上で、Firebird.2.1.1のソースコード取得からビルド、インストールまで駆け足で見てきた。v.1.5以降はビルド+インストールが簡単になっているので、ぜひ試してみてほしい。
次ページからは、より深くFirebirdを知るために、アーキテクチャの特徴などを紹介する。
ここでは本家FirebirdプロジェクトのWebサイトや、日本語で質の高い解説が読める情報源を挙げておこう。既知の問題への対処法のほか、機能を検証したドキュメントなどもあるので一度目を通してみるといいだろう。
1/3 |
アーキテクチャと特性、歴史
ビルドするには|ビルドオプション|接続ツールisql|情報源
Eureka! Shadowingだ!!
Firebird 2.5(SuperClassic)はプロセス・スレッドモデルを統合した実装
Yet another OSS DB:Firebird |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|