このページは機械翻訳されています。英語の原文をお読みください。 English

HQbird Enterpriseにおけるネイティブなマスター・スレーブレプリケーション:DMLおよびDDL、トリガー不要、レプリケート対象テーブルにはユニークキーまたはプライマリキーが必要です。Firebird 2.5〜5.0と100%互換 - バックアップ/リストアなしでバイナリを切り替え可能。1ライセンスでマスター1台とレプリカ1台をカバーし、追加レプリカは別途販売されます。

非同期と同期

通常、本番環境では非同期が適切な選択です。

非同期(推奨)

マスターはコミット済みの変更をセグメントファイルにジャーナルし、レプリカはバックグラウンドでそれらを取得して適用します。デフォルトのフラッシュ間隔は90秒(多くの場合15〜30秒に設定)。レプリカはオンラインで再作成可能で、マスターを停止する必要はありません。クラウドや高レイテンシのリンクに適しています。高負荷時には遅延が増加する可能性があります。

同期

マスターはコミット済みの変更をレプリカに直接書き込みます。遅延は約1〜2秒で、安定した約1Gbpsの経路が必要です。レプリカは読み取り専用です(いくつかの注意点あり)。レプリカの再作成にはマスターの停止が必要です。カスタムフェイルオーバー(3ノード以上)、読み取りのオフロード、または非同期との併用に使用します。

非同期Firebirdレプリケーション:マスターからレプリカへのジャーナルセグメント
非同期:ディスク上のセグメントをバックグラウンドで適用。
同期Firebirdレプリケーション:マスターがレプリカに直接書き込む
同期:ライブ接続でコミット時にバッチ処理。

インストール

マスターとレプリカにHQbird Server with Firebirdをインストールします。Windows:HQbirdServer2024.exe(2.5〜5.0)。管理ツールはレプリケーションには任意です。Linux:インストールガイド。トライアルまたはフルライセンスで登録します。ユーザーガイド§2でサーバー設定を説明しています。

Firebird 2.5:HQbirdはSuperClassicをインストールします。データベースヘッダーのページバッファ数が多い場合、パフォーマンスが低下する可能性があります。バッファを0に設定してfirebird.confが優先されるようにします:

gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb

手順 - 非同期レプリケーション

  1. データベースをマスターとして設定します。
  2. レプリカファイルを作成します(nbackupまたは「レプリカデータベースの再初期化」)。
  3. レプリカサーバーを設定します。

ステップ1 - マスター

http://127.0.0.1:8082を開きます(ポートは設定可能)。admin / 強力なパスワードでログインします。Active serverウィジェットにFirebird 2.5/3.0/4.0/5.0 HQbirdと表示されることを確認します。

レプリケーション用にデータベースを追加する準備ができたHQbirdコンソール

データベースを追加:ニックネームとファイルパス(エイリアスではなく) - エイリアスはレプリケートされません。

明示的なファイルパスを指定したデータベース追加ダイアログ

データベースヘッダーアイコンからレプリケーションを開きます。マスター非同期 → 保存を選択します。パラメータが最初の接続時に読み込まれるよう、Firebird(またはすべてのClassic接続)を再起動します。

基本的な非同期マスターレプリケーション設定
基本的なマスター設定。
完全な非同期マスターレプリケーションパラメータ
詳細 >> - クリーンインストールではデフォルトで問題ありません。
  • ログディレクトリ - 運用セグメント、デフォルトは${db.default-directory}\ReplicationLog。エンジン管理対象のため、そのままにします。
  • ログアーカイブディレクトリ - アーカイブ済みセグメント、デフォルトはデータベースの隣の${db.path}.LogArch
  • ログアーカイブコマンドの上書き - 空のままにします。
  • コミット済みデータの強制フラッシュ - デフォルト90秒。

書き込み直後にログディレクトリにローテーションファイルが表示され、コミット/タイムアウト後にアーカイブセグメントが表示されるはずです。運用セグメントには触れないでください。アーカイブをレプリカにコピーする方法:ネットワーク共有またはFTP/SSH

ディスク上のレプリケーションセグメントファイル

ステップ2 - 初期レプリカファイル

HQbird 2018 R2以降では、レプリカデータベースの再初期化により、マスターの隣にemployee30.fdb.17-Apr-2018_142507.4replicaのような名前のコピーが作成されます。または、マスターを停止せずにnbackupを使用することもできます。

ステップ3 - レプリカサーバー

レプリカにレプリカGUIDが設定されたに、FBDataGuardでレプリカを登録します。必須設定はアーカイブ済みセグメントのフォルダです。保存してFirebirdを再起動します。デフォルトはレプリカの隣のフォルダからインポートされ、処理済みセグメントは削除されます。異なるデータベースのアーカイブを1つのフォルダに混在させないでください。

基本的な非同期レプリカ設定
Detailed async replica settings

手順 - 同期レプリケーション

  1. Firebird を停止します。
  2. マスターファイルをコピーし、レプリカモードに切り替えて、レプリカサーバーにコピーします。
  3. FBDataGuard でレプリカサーバーを設定します。
  4. マスターの前にレプリカを起動します。
  5. マスターを設定し、その後マスターを起動します。

非同期よりもダウンタイムが長くなります。レプリカはマスターが起動する前にオンラインになっている必要があります。リモートレプリカの例: サーバー replicaserver、パス /data/test2.fdb。レプリカでは、そのコピーに加えて gfix -replica {master-guid} を実行するだけで十分です。

Synchronous replication configuration

本番システムでのテスト

disable_on_error を true に設定すると、レプリケーションエラーが発生した場合にレプリケーションがオフになり、マスターはサービスを継続します。エラーを修正した後、クリーンなログから再初期化します。FBDataGuard で Replication log ジョブを有効にして、エラーと警告を確認します。

disable_on_error true for replication testing
Replication log monitoring job in HQbird

nbackup でレプリカコピーを作成する

非同期(および追加のレプリカ)の場合、マスターを停止せずにオンラインで動作します。または、Firebird を停止してファイルをコピーします。

nbackup -l database_path_name -user SYSDBA -pass masterkey
copy database_path_name replica_path_name
nbackup -n database_path_name -user SYSDBA -pass masterkey
nbackup -f replica_path_name
gfix replica_path_name -replica {DATABASEGUID} -user SYSDBA -pass masterkey

DATABASEGUID は、gstat -h から取得したマスターの一意の ID です。これがない場合は、HQbird の Firebird バイナリで一度接続し、gstat -h を再度実行してください。

gstat -h showing Database GUID
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey

空の {} はファイルを通常(読み書き)モードに戻します。レプリカでは読み取り専用の作業(SELECT)のみ実行できます。データやメタデータは変更しないでください。