1

災害時に OpenEdge Replication を検証するためのテスト シナリオ/プロセスはありますか?

レプリケーション プロセスの実行可能性を証明するドキュメント/テスト シナリオは役に立ちます。

4

1 に答える 1

1

何よりもまず、レプリケーションが稼働していることを確認する必要があります。

レプリケーションはバックアップを置き換えません (ユーザーがすべてのレコードを削除するか、データベースからテーブルを削除すると、その変更はレプリケートされます!)

障害が発生し、ソースからターゲットに切り替える必要がある場合は、有効なマスターになる前に、データベースの検証を行う必要があります。OpenEdge は、データベースに大きなエラーがある場合、トランザクションが完了していない場合などに文句を言う可能性が高くなります。しかし、データベースに必要なものが含まれているかどうかを確認できるのはあなただけです。すべてのクラッシュは何かを失う傾向があります - 少なくともまだコミットされていないトランザクション。

繰り返しますが、レプリケーションはバックアップを置き換えません

レプリケーションの検証

実行中のレプリケーションのステータスは、さまざまな方法で検証できます。

仮想システム テーブル

VST で多くの有用なデータにアクセスできます。詳細については、製品ドキュメントを参照してください

_データベース機能

_Database-Feature VST は、データベース内でアクティブまたは有効になっている機能のリストを表示します。

_Repl サーバー:

詳細な OpenEdge Replication サーバー情報を提供します

_Repl-AgentControl:

この OpenEdge Replication サーバーが制御している OpenEdge Replication エージェントに関する詳細情報を提供します

_Repl-エージェント

詳細な OpenEdge Replication エージェント情報を提供します

コード例:

FIND FIRST _Database-Feature NO-LOCK WHERE _database-Feature._dbFeature_name = "Openedge Replication" no-error.

IF AVAILABLE _Database-Feature THEN DO:
    DISPLAY 
        _Database-Feature._DBFeature_Enabled = "1" LABEL "Repl enabled"
        _Database-Feature._DBFeature_Active  = "1" LABEL "Repl running"
        WITH FRAME frame1 SIDE-LABELS 1 COLUMN TITLE "Replication".


END.


FIND FIRST _Repl-Server NO-LOCK.
IF AVAILABLE _Repl-Server THEN DO:
    DISPLAY 
        _Repl-Server._ReplSrv-AgentCount       LABEL "# Agents" 
        _Repl-Server._ReplSrv-BlocksSent       LABEL "Blocks sent"
        _Repl-Server._ReplSrv-StartTime        LABEL "Started at"
        _Repl-Server._ReplSrv-LastBlockSentAt  LABEL "Last block sent"
        WITH FRAME frame2 SIDE-LABELS 1 COLUMN TITLE "Repl Server".
END.

/* To access _Repl-AgentControl you need to connect a soure/master db and not a target/slave db*/
FIND FIRST _Repl-AgentControl NO-LOCK NO-ERROR.
IF AVAILABLE _Repl-AgentControl THEN DO:
    DISPLAY 
        _Repl-AgentControl._ReplAgtCtl-ConnectTime      LABEL "Connected at" 
        _Repl-AgentControl._ReplAgtCtl-RemoteDBName     LABEL "Remote DB"   FORMAT "x(20)"
        _Repl-AgentControl._ReplAgtCtl-RemoteHost       LABEL "Remote Host" FORMAT "x(20)"
        _Repl-AgentControl._ReplAgtCtl-LastBlockSentAt  LABEL "Last block sent"
        _Repl-AgentControl._ReplAgtCtl-Method           LABEL "Method"
        (_Repl-AgentControl._ReplAgtCtl-Status = 3049)  LABEL "Normal Status"
        (_Repl-AgentControl._ReplAgtCtl-CommStatus = 1) LABEL "Connected"
        WITH FRAME frame3 SIDE-LABELS 1 COLUMN TITLE "Repl Agent Control" WIDTH 80.
END.
ELSE DO:
    DISPLAY "Not a source".
END.

/* To access _Repl-Agent you need to connect a target/slave db and not a source ...*/
FIND FIRST _Repl-Agent NO-LOCK NO-ERROR.
IF AVAILABLE _Repl-Agent THEN DO:
    DISPLAY
        (_Repl-Agent._ReplAgt-Status = 3049) LABEL "Normal Status"
        (_ReplAgt-CommStatus = 1)            LABEL "Connected"
        WITH FRAME frame4 SIDE-LABELS 1 COLUMN TITLE "Repl Agent".
END.
ELSE DO:
    DISP "Not a slave db..".
END.

コマンドライン

コマンド ライン ツールdsrutilを使用して、レプリケーションに関する情報にアクセスできます。

例:

これにより、さまざまなことを確認するためのインタラクティブなプロンプトが表示されます。

dsrutil db -C monitor

スクリプト作成には他のオプション (マニュアルを参照) を使用することもできます。

例:

dsrutil db -C status detail

すべてが OK であれば、単純に 6021 を書き込みます (そして OS に OK を返します)。詳細については、以下の OE レプリケーション ドキュメントを確認してください。

ソース:

OE 11.4 レプリケーションのドキュメント

OE 11.4 データベース管理 - 第 28 章

于 2014-10-07T12:01:08.267 に答える