SSブログ

Firebird がどれぐらい流行ってるか調べた [RDBMS]

Google Trends で(MySQL にはとてもかなわないので)PostgreSQL と Firebird について比較してみた(12ヶ月)。世界中だと・・・
pg_fb_world.PNG
おー、よしよし、頑張ってるな。
日本は、PostgreSQL のが強いから日本で限定すると多少は負けるかな・・・
pg_fb_japan.PNG
0.03・・・普通の人は Firebird って知らないんだ。

Ubuntu 9.04 で kinterbasdb3.3 をソースからビルド [RDBMS]

http://nakagami.blog.so-net.ne.jp/2009-05-09 のときに、 KInterbasDB 3.2 をパッケージからインストールしてソースを修正したが、 3.3.0 をソースからインストールしている人をたまたま発見したのでメモっておく
http://mapopa.blogspot.com/2009/02/firebird-python-howto-on-ubuntu-wget.html

$ sudo apt-get install python-dev firebird2.1-dev
をすれば kinterbasdb をソースからインストールできる、ということ。

Firebird の DB に接続しているユーザーを知る [RDBMS]

http://forums.devshed.com/firebird-sql-development-61/query---find-count-of-active-connections-191785.html
http://groups.yahoo.co.jp/group/Firebird-jp-general/message/2133?threaded=1&expand=1
いつか使うかどうかわからんけど、たまたま発見したのでメモ。
ちなみに、 isc_database_info() で ODS の major/minor バージョンを知ることもできる。

RDBで階層構造を扱う [RDBMS]

http://labs.unoh.net/2009/06/rdb.html
参考になる。しかしジョジョは知らないのでサザエさんで解説して欲しい

Firebird 使用事例とセマフォ数の調整 [RDBMS]

Firebird News http://www.firebirdnews.org/?p=3028 経由
http://sourceforge.net/mailarchive/message.php?msg_name=4A424646.2090904%40gmx.net
使用事例は、あまり聞けないのでメモっておく(以下超訳)


Linux kernel 2.4 + Firebird 2.0.x から、サーバー入れ替えに伴い Linux kernel 2.6 + Firebird 2.1.2 に入れ替えた。
昔、 高負荷の環境で Kenel 2.6 + Firebird だと多くのトラブルに見舞われたので、 Kernel 2.4 のままにしてたんだけど・・・(平均して 75~150 コネクションが張られててピーク時に 300 以上になる。データベースサイズは 20G 越え。7つの異なるアプリケーション PHP/Java/Win32 native から使われ、10~30 分かかる長いトランザクション処理もあり)今回はすこぶる調子いい。

変更したのは、firebird.conf の LockSemCount のデフォルト 250 を 1024 に変えたとこくらい。デフォルトのままだと "Fatal lock manager error: semop failed (acquire), errno: 22" と出ちゃう。


投稿では、Super Server か Classic Server か書いてないけど内容からして Classic Server ですな。Kernel パラメータのセマフォ設定については書いてないけど、↓ここらに書いてある。
http://pmakowski.ibphoenix.fr/post/2009/03/05/From-the-support-list
win32 native の意味がよくわからんけど、ODBC ドライバのことかな?

そういえば、セマフォ不足については以前僕も FreeBSD 環境で悩んだことがあった。
高負荷ってわけじゃなく、 PostgreSQL を同時に立ち上げてたのと、初期状態のセマフォ数が少なすぎるのが原因。
http://nakagami.blog.so-net.ne.jp/2006-09-13

Firebird のバックアップ(ssh 経由とか) [RDBMS]

http://levosgien.net/2009/06/17/tunnelling-a-firebird-backup-with-ssh/

$ gbak -b [-v] XXX.XXX.XXX.XXX:database backup.fbk -user SYSDBA -password masterkey
これで、リモートのデーターベースのバックアップをローカルに取れる

$ gbak -b [-v] -service XXX.XXX.XXX.XXX:service_mgr database /path/to/backup.fbk -user SYSDBA -password masterkey
リモートのデータベースのバックアップを別のリモートのマシンにとれる(らしい)

$ ssh -C -f user@XXX.XXX.XXX.XXX -L 3052:localhost:3050 -N
でトンネルを作って
$ gbak -b [-v] localhost/3052:database backup.fbk -user SYSDBA password masterkey
で ssh でバックアップができる(のか?)

$ gbak -c [-v] backup.fbk database -user SYSDBA -password masterkey
でリストア。1.0 とオプションが変わってる。そのうち直したい↓なぁ。
http://www005.upp.so-net.ne.jp/nakagami/Memo/Firebird.html

Django の Firebird backend (20090606 version) [RDBMS]

Once, I wrote Django firebird backend
http://nakagami.blog.so-net.ne.jp/2009-03-12-2

But it is not good work on Django subverion trunk today. (Target is moving !)
So I catch it up. ( Thanks Maxi )
http://www005.upp.so-net.ne.jp/nakagami/Download/django-firebird_20090606.zip

I hope it works on Django 1.1 release.

Django の Firebird バックエンドを以前書いたんだけど、Django の trunk コードで動かなくなってたよ。えーん。
仕方がないので、現在の trunk で動くようにしてみた。 1.1 release でも動くといいな。

Firebird をインストール(Ubuntu 9.04) [RDBMS]

Ubuntu 6.10 の時の自分メモがこれ↓
http://nakagami.blog.so-net.ne.jp/2007-04-18-1

そして、Ubuntu 9.04 + Firebird2.1.1 がこれ↓
https://help.ubuntu.com/community/Firebird2.1
ここにはないけど、 kinterbasdb をインストールするのには
sudo ap-get install python-kinterbasdb
これだと、kinterbasdb3.2 + Firebird 2.1 の組み合わせで動かないので、
/usr/lib/python-support/python-kinterbasdb/python2.6/kinterbasdb/__init__.py の 209行目をコメントアウト
https://firebird.svn.sourceforge.net/svnroot/firebird/qa/trunk/kinterbasdb/__init__.py

Firebird 2.1.2 ready という話がこれ
http://www.firebirdnews.org/?p=2801

(追記)
classic (firebird-2.1-classic) をインストールした場合、
sudo update-inetd --enable gds_db
でデーモンを起動する

Firebird の Wire プロトコル [RDBMS]

FirebirdNews 経由
http://www.firebirdnews.org/?p=2121
pure python な firebird ライブラリ作るために、参考になる wire protocol のドキュメントない?というような質問。
http://tech.groups.yahoo.com/group/firebird-python/message/118

仕様書的にはこれ↓。でも 2.1 で拡張された部分に対応してないよ、という返事
http://firebird.svn.sourceforge.net/svnroot/firebird/NETProvider/trunk/Documentation/FirebirdWireProtocol/FirebirdWireProtocol.pdf
僕も前に見たことあるけど、正直、これだけじゃわからんのだよねぇ。

Jaybird の src/main/org/firebirdsql/gds/impl/wire/AbstractJavaGDSImpl.java が
参考になるよ、というお返事。
http://tech.groups.yahoo.com/group/firebird-python/message/120

XDR フォーマットされてるんだけど、xdrlib ↓で Pack/Unpack できるかな。
http://www.python.jp/doc/nightly/lib/module-xdrlib.html

いずれにせよ、僕にはハードル高いが、忘れないようにメモしておく


2010/10/31 追記
FB Internals documentation
http://www.firebirdnews.org/?p=4988