« 2007年2月 | トップページ | 2007年4月 »

Firebird 2.0系 に関するメモ

Firebird 2.0系のお話。

僕は今のところ 1.5系をもう少し使っていくつもりでいる。だって、まだ 2.0系の日本語の情報少なすぎるんだもん。

...「だもん」 とは言いつつも、いつかは 2.0系に以降することになるワケで、いろいろと情報を集めたりしておく必要はある。

ってことで 2.0系に関して調べた情報をメモしていく。

・ODSのバージョンが11になった。
ODSとは 「On-Disk Stracture」 だから、データベースファイルの構造ってことですか。確か1.5系はODS10とか10.1とかだったと思った。まあ、「ODSのバージョン番号が10.1から11になった」 というのは別にどうでもいいことであって、重用なのは「データベースファイルの構造が1.5系と2.0系では違う」 ってこと。

1.5系から2.0系に以降する場合はこの情報を頭の中に入れておく必要がある。「2.0系から Firebird はじめます!」 って人にはどうでもいい情報だったりするのだけれども。

・security.fdb の仕様が変わった。
どうやら 2.0系は 1.5系から security.fdb の仕様が変更になっているらしい。まず、ファイル名が security.fdb じゃなくて security2.fdb になっている。もちろん中身も変わっている。1.5系 の security.fdb を security2.fdb にリネームしても 2.0系では使えない。

ただし、これは運用の仕方によっては別にどうでもいい場合がある。「1.5系でシステム運営しているけど、ユーザーアカウントは SYSDBA の他に 2つほどあるだけだよ。」 なんて場合は 1.5系の security.fdb を捨てて、2.0系の security2.fdb に 1.5系で使っていたのと同じユーザー名のアカウントを追加してあげるだけでいい。2つのアカウントを追加するだけなら手間ではない。

もちろん security.fdb から security2.fdb への以降手順はある。のだけれども... たぶんね、2つしかアカウントないなら以降手順を試すよりもアカウント2つ追加する方が楽。

security.fdb を security2.fdb へ変換しようと思ったときに関係してくるのは 「ODSのバージョンが11になった。」 ということ。まずは ODS10.1 な security.fdb を ODS11 に変換してあげる必要がある(らしい)。

Firebird 2.0.1 に含まれているドキュメントを読むと ODS10.1 から 11 へのコンバートは 「gbak 使ってバックアップリストアしないさい。」 とのこと。

どうやら 2.0系は 1.5系のデータベースファイル... ODS10.1 なファイルも扱える。そして 2.0系を使っているからといって、1.5系のデータベースファイルが自動的に 2.0系へ変換されることはない。ただし 「バックアップ/リストアをすると、1.5系のファイルは 2.0系のファイルへと変換されるよ。」 ってことなんだろう。

とりあえず 「へぇー」 って感じで覚えておく。サーバーを 2.0系に以降しても、ODS を 10.1 から 11 に変換しないと 2.0系で得られるすべての恩恵は受けられないのかも知れないが、逆に考えると ODS が 10.1 のままの場合はサーバーを 1.5系に戻してもそのデータベースファイルはそのまま扱える... ってことになる。

ああ、話が脱線。

兎に角、security.fdb を security2.fdb にコンバートするにはまず、ODS を 11 にコンバートする... gbak(もしくはそれのフロントエンドツール)を使って「バックアップ/リストア」する必要がある。

さて、ODS11 へのコンバートが終わったらどうするのか。

いろいろ読んでいくと、(ODS11 へコンバートされた)security.fdb を security2.fdb にコンバートするスクリプトが 2.0系には含まれているらしい。さがしてみると、Windows の場合は 「(2.0系のインストールフォルダ)\misc\upgrade\security」  に 「security_database.sql」 という名前で存在していた。

スクリプトってゆうか、SQLコマンドね。つまり変換したい security.fdb を(Firebird 2.0系のサーバーで)開いてそれに
security_database.sql に書いてある内容の SQLコマンドを実行してあげればいいのだろう。なるほどなるほど。

...

今日は Firebird 2.0 に関する情報を集めてみた。日本語の情報が少ないので苦労する。そして忘れたら困るのでここにメモとして書いておく。ちなみに、上記の情報はまったくテストしていない内容なので間違っていたらごめんなさい。

| | コメント (0) | トラックバック (0)

FC6 に Firebird 1.5.4 をインストール(アップグレード)

Firebird は 2.0 系が出ているけど、もう少し 1.5 系で行きたいと思う。(特に理由はない)

さて、1.5 系に新しいバージョン 1.5.4 がでた。どうやらこれが 1.5 系の最終バージョンになるらしい。十分に枯れた 1.5 系の最終バージョン。1年くらいはこのバージョンで引っ張ろうかな... InterBase と同じ ROWS 句のサポートが 個人的に 2.0 系一番のトピックスだったりするけど、まあ、いいや。

さて、Firebird 1.5.3 がインストールされた Fedora Core 6 に 1.5.4 をインストールしよう。http://www.firebirdsql.org/ から FirebirdSS-1.5.4.4910-0.nptl.i686.rpm をダウンロードする。

さて、インストールしようか... rpm -Uvh FirebirdSS-1.5.4.4910-0.nptl.i686.rpm ...と。

してはいけません!

ふっ、ええ、最初私は rpm -Uvh しましたよ。これしたらちゃんとインストールされませんね。ええ。なので、一度 1.5.3 をアインインストールしてから 1.5.4 をインストールすることにする。

まずは 1.5.3 をアインインストール。firebird が起動してても大丈夫。

[root@localhost ~]# rpm -e FirebirdSS (enter)
Stopping Firebird server: server shutdown completed
Saved a copy of SecurityDatabase (security.fdb) in /tmp

これで完了。security.fdb データベースファイルが /tmp にコピーされたらしい... ということがアンインストールメッセージからは読める。

この security.fdb は超重用。ここにユーザー情報などが保存されているので。まあ、このファイルをちゃんとコピーしてくれるので安心して rpm -e を実行してもいいということになる。

さて、firebird 1.5.4 をインストールする。

[root@localhost ~]# rpm -ivh FirebirdSS-1.5.4.4910-0.nptl.i686.rpm (enter)
準備中...                ########################################### [100%]
   1:FirebirdSS             ########################################### [100%]
Starting Firebird server: server has been successfully started
[  OK  ]
GSEC> GSEC>
Running ex to modify /etc/init.d/firebird

これでインストール完了。ここまでは簡単。firebird の起動プロセスを確認してみよう。

[root@localhost ~]# ps ax | grep fb (enter)
6883 ?          S      0:00 /opt/firebird/bin/fbguard -f
6884 ?          Sl      0:00 /opt/firebird/bin/fbserver
6909 pts/1    S+     0:00 grep fb

どうやらインストールは成功しているようだ。

と、ここで例の changeDBAPassword.sh を使って SYSDBA のパスワードをアンインストール前に戻してあげる。インストール時の初期 SYSDBA パスワードは /opt/firebied/SYSDBA.password ファイルに書かれているので確認しておこう(インストールするたびに違うパスワードが作成されるようだ)。

[root@localhost ~]# /opt/firebird/bin/changeDBAPassword.sh (enter)
Please enter current password for SYSDBA user: (初期パスワード)
Please enter new password for SYSDBA user: (アンインストール前のパスワード)
GSEC> Warning - maximum 8 significant bytes of password used
GSEC>

Running ex to modify /etc/rc.d/init.d/firebird

これで SYSDBA のパスワードはアンインストール前のパスワードに戻った。

だが、このままでは追加したユーザー情報などが消えてしまっている。changeDBAPassword.sh を使わないと firebird の起動スクリプトなどのパスワード情報が更新されないので changeDBAPassword.sh を使った。次は、アンインストール時にコピーされた security.fdb を上書きしてその他のユーザー情報を復元しよう。

firebird を停止する。

[root@localhost ~]# /etc/init.d/firebird stop (enter)
Stopping Firebird server: server shutdown completed

/tmp/security.fdb を /opt/firebird に上書きコピーする。

[root@localhost ~]# cp /tmp/security.fdb /opt/firebird/ (enter)
cp: `/opt/firebird/security.fdb' を上書きしてもよろしいですか(yes/no)? y (enter)

firebird を起動する

[root@localhost ~]# /etc/init.d/firebird start (enter)
Starting Firebird server: server has been successfully started
                                                           OK  ]

これで無事にアップグレードインストールが完了した... ハズ。後は IBConsole で接続していろいろするなり自分のアプリケーションを動かすなりして一通りの動作確認をするだけ。バックアップされた security.fdb をコピーしてあげれば、ユーザー情報などはちゃんと復元されているハズなので安心。

と、ここまで。データベースのアップグレードインストールなど滅多にしないので、やり方はどっかにメモされていた方がいい。Firebird Wiki に書けって? いやあ、たしかにそうなんだけど、何となく恥ずかしいというか... ごもごも。

| | コメント (0) | トラックバック (0)

« 2007年2月 | トップページ | 2007年4月 »