次の記事 | 前の記事

2006-10-06

Firebirdかなりいい加減なアップグレード手順(1)

Firebird 2.0 RC5 が出たらしい。
RC1が出てから半年ちょい。
そろそろ正式版と言ってもいいような気がしますが、Firebirdプロジェクトは非常に慎重なので正式版の認定がいつでるのかはよく判りません。

私はFirebirdに関してはRC1の時点でバージョン2.0と見なしても良いと思っています。
が、実際に使いはじめたのはRC4からでした。(それまではバージョン1.53を使ってた)

今回はそのときに実際に行ったバージョン1.5Xから2.0RC4にアップグレードした手順を記録に残しておこうと思う。Firebirdの情報は比較的少ないのでこんな情報でもだれかの役に立つことがあるかもしれないので。

結局一番参考になる場所は 2ch発の「Firebird Wiki」

実際に行ったことは単純なバージョンアップではなくプラットフォームの変更+バージョンアップ

既存環境
OS: Windows XP sp2
Firebirdバージョン:1.5.3

新環境
OS:Debian GNU/Linux 3.1r1(カーネル2.6.8)
Firebirdバージョン:2.0 RC3

更に新環境上で
Firebird 2.0 RC3 から RC4 にアップグレード(これは次回の記事で)

以下、実際の手順に続く
[手順]

1. 既存環境で 1.5.3 データのバックアップ

gbak -b -t -user sysdba -pass XXXXX nyahaha_db.fdb .\nyahaha_db_yyyymmdd.fbk


2.1 もし旧バージョンが新環境側で既に動いている場合は以下の手順でアンインストール

・起動状態の確認
ps -aeww | egrep "(fb|ib)"
リストアップされれば旧バージョンが動いている

・起動中のFB関連プロセスを終了させる
/etc/init.d/firebird stop
一応、再度確認
ps -aeww | egrep "(fb|ib)"


・既存バージョンのアンインストール

cd /opt/firebird/scripts
./tarMainUninstall.sh

※ 実行後に/etc/init.d/firebird をリネーム又は削除しておいた方がよさそう


2.2 新環境への2.0RC3インストール

入手したパッケージを解凍&展開
gzip -d [インストールパッケージ(?.tar.gz)]
tar -xvf [解凍後のインストールパッケージ(?.tar)]

展開されたディレクトリに移動

cd FirebirdSS-2.?

インストールスクリプトを実行(root で実行)

su
./install.sh
スクリプト最後でパスワードを入れることになる。(gsecコマンド?)


自動起動の設定は自分でやるのだったかな?
rc3.d には起動スクリプトへのリンクがあるが前バージョンで
手動で設定したものが残っているだけかもしれない。

※ rpm -ivh FirebirdSS-2??.rpm (rpmの場合)

※ Fedoraの場合(FC3) スクリプト最後の gsec 実行部分で libstdc++.so.5 が無いという状態に陥る。
  対処法は現在調査中(かなり有名な問題の様だが解決法に関しての情報が見つからない)

  (追記:2006/10/09 begin)
  Fedora Core 3 に Firebird をインストールする前のおまじない。
  rootで以下のコマンドを実行すると libstdc++.so.5 関連のライブラリがインストールされる。
  Googleで「fedora3 libstdc++.so.5」で検索すればすぐに見つかった。
  (よく見ると Firebird wiki にも載ってた。)
  $ yum install compat-libstdc++
  これでめでたくFedora Core 3 に Firebird がインストールできました。
  (追記:2006/10/09 end)

※ インストールスクリプトが完了するとFirebirdは既に起動状態になる。

※ ここらへんでユーザを通常作業用ユーザにもどす?


3. ver 1.5.3 のバックアップファイルを新環境に転送

 FTPなり、Samba経由なりで適当に...


4. ver 2.0RC3環境に旧バージョンのバックアップデータをリストア

DBパス
/home/hoge/fb/nyahaha_db

DB名
nyahaha_db

データベースの運用パスを作成し、そこに移動する。
cd /home/hoge/fb/nyahaha_db

 ※作成したディレクトリは chmod 777 nyahaha_db にしておく(あとで記述)

バックアップファイルを上記データベースの運用パスにコピー(リストアコマンドでフルパス指定するなら必要無し)
mv ??/nyahaha_db_yyyymmdd.fbk /home/hoge/fb/nyahaha_db/

移行データを受入れるデータベースを作成(リストアで新規作成モードを使う場合は不用な手順)
isql -user sysdba -password XXXXX
CREATE DATABASE 'nyahaha_db.fdb' page_size 8192 DEFAULT CHARACTER SET SJIS_0208 ;

 ※作成時にユーザ&PWを指定しようと「SYSDBA」を指定すると
  ユーザが登録されてない旨のメッセージが出るのでその部分の記述を省くと
  作成できた。(大文字小文字の違いか? 結局DBオーナーは sysdba な訳だが...)
  本来はユーザを別に新規追加してそのユーザで作成をするべき。(今回は既存環境の移行のためやむなく)

 gbak -rep -t -user sysdba -pass XXXXX ./nyahaha_db_yyyymmdd.fbk nyahaha_db.fdb
 ※gbak で上書きリストアしようとすると -r オプションの代わりに -rep を
  使えというメッセージが表示されるのでそのようにしてみたら問題無く完了。

/opt/firebird/aliases.conf の内容を設定

最後に以下の行を追加
nyahaha_db = /home/hoge/fb/nyahaha_db/nyahaha_db.fdb

(追記:2006/10/11 begin)
isqlやgsec, gbak をいちいちフルパスで指定するのは面倒なので .bash_profile とかで /opt/firebird/bin にパスを通す設定を加えておく。
(追記:2006/10/11 end)

サービスのリスタート
/etc/init.d/firebird restart


5. あいまいなところ

どの作業をどのユーザで行うべきか?

 登場人物は
 ・作業ユーザ:nahaha
 ・Firebirdユーザ:firebird (install.shで作成されるらしい)
 ・root

少なくとも install.sh の実行は root で行う必要がある。
install.shが完了したらもう通常ユーザに戻してもよさそうだと思い、
上記手順の 3番以降は nahaha ユーザで進めようとしたが 4番の
CREATE DATABASE でエラーとなった。パーミッションが無いらしい。
グループの所属とかいろいろ弄ってみたけど結局データベースを作成するディレクトリのパーミッションを 777 にしてしまった。
本来どうするべきかとう事は今の段階では判らない。


これで、めでたく Windows版 Firebird Ver1.5.3 環境から
Debian 3.1r1 (2.6.8) + Firebird 2.0 RC3 にデータ移行も含めて完了した。
当然、実運用も開始した訳だが翌日 2.0 RC4 が公開されてた。。。 orz...

ということで、次回は

Firebird 2.0 RC3 から RC4 へのアップグレードの手順を書きます!
(内容は大したこと無いかな)
category11. RDB Firebird  time2006-10-06 13:51  authorkagekino 

コメント

コメントはまだありません。

コメント追加

このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。

トラバ

トラバ
Hip.Labo orz-log
Firebirdかなりいい加減なアップグレード手順(2): RC3 から RC4 へアップグレードしたときの手順。
9/10/06
トラバピングURL
http://weblog.hip-labo.com/action.php?action=plugin&name=TrackBack&tb_id=68
手動によるトラバは こちらからどうぞ。
ローカルトラバ
Firebird 2.0 Released :正式リリースになったようです: ふと気を抜いていると Firebird 2.0 がリリースされてました。 (RC5は入れなくて正解だったかな) 早速ダウンロードしてみました。 現在運用中のRC4をアップグレードする予定。 いつやろうか... 入れ...
2006-11-16