4

プロジェクトに Firebird を使用する可能性を調査しています。

ただし、潜在的な問題の 1 つは、レプリケーションとフェイルオーバー、または (主観的な) 「適切な」ソリューションの欠如です。Firebird FAQ にリストされているいくつかの潜在的な解決策がありますが、それらは次のいずれかです。1) Windows 中心。2) ひどく時代遅れ。3) コマーシャル。または 4) フル機能ではありません。

私が見る唯一の潜在的なオプションはFIBERであり、それは1)未熟に見えます。2) 死んだ可能性がある。3) フル機能ではありません。

DRBD と Heartbeat について学びましたが、これらのソリューションは有望に見えます。1) 複製された Firebird 構成をセットアップする。および/または 2) Firebird で DRBD を使用した。

「落とし穴」、推奨事項、ヒントなどはありますか?

ありがとう!

4

2 に答える 2

3

DRBD/Heartbeat/Pacemaker Solution を過去 2 年間、まったく同じ問題に使用してきました。Firebird データベースの稼働とフェイルオーバーを維持するため。セットアップは実際には非常に簡単です。有利なスタートを切るためのいくつかの提案があります。したがって、これらは単なる提案です...

  • drbdパーティションを作成し、フォーマットして/dataにマウントします(もちろんペースメーカーを使用)
  • aliases.confをdrbd パーティションに配置すると、 aliases.confを変更するたびに 2 回変更する必要がなくなります。aliases.conf ファイルを /data にコピーし、両方のノードで /etc/firebird/2.1/aliases.conf にリンクします。

プライマリ/セカンダリ セットアップで Drbd/Pacemaker を使用することの欠点は、プライマリ ノードが停止するとすぐに、セカンダリ ノードが起動するまでクライアントの接続が失われることです。は再接続する必要があります。Firebirdクライアントは接続タイムアウトを許可する必要がありますが、アプリケーションでは実際には機能しませんでした(おそらく、使用するアプリケーションまたはライブラリは実際にはfirebird接続タイムアウトを使用していません)。

データベースの複製に関しては、Hugues Van Landeghem が記述または引用した方法に従ってください。トリガーで動作するアプリケーションを開発しました。そのため、新しい行がテーブルに追加され、トリガーがエントリのキーを別のテーブルにコピーします。このテーブルは、そのエントリを取得して別のデータベースに挿入するアプリケーションによって常に読み取られます。かなり醜いですが、うまく機能します!個人的には、Firebird は独自のデータベース レプリケーション システムを構築するために時間を費やすべきだと思います...彼らは本当に遅れをとっています...

私の情報が少しでもお役に立てば幸いです。さらに質問がある場合は、お気軽に私に連絡するか、私のサイト @ gefoo.orgにアクセスしてください。

于 2012-03-20T10:48:23.037 に答える
3

Firebird Conference 2009でレプリケーションに関するセッションが 1 つある

ホルガー・クレムト

* Firebird Replicated Part 1
* Firebird Replicated Part 2
      o In this two sessions you will see how easy it is to implement

Firebird データベース内の独自の複製システム。トリガーと簡単なスクリプトに基づいて、ライブ バックアップ システムを作成できます。このアーキテクチャでは、マスター - マスター、マスター - スレーブ、マルチマスター、オンラインおよびオフラインのレプリケーションが可能です。複製された Firebird クラスターは、部分的なハードウェア障害、計画されたハードウェアおよびソフトウェアのメンテナンス操作 (新しい Firebird バージョンへの切り替えなど) の場合でも、中断することなく任意のクライアントで使用できます。

于 2009-10-26T12:07:02.907 に答える