災害時に OpenEdge Replication を検証するためのテスト シナリオ/プロセスはありますか?
レプリケーション プロセスの実行可能性を証明するドキュメント/テスト シナリオは役に立ちます。
災害時に OpenEdge Replication を検証するためのテスト シナリオ/プロセスはありますか?
レプリケーション プロセスの実行可能性を証明するドキュメント/テスト シナリオは役に立ちます。
何よりもまず、レプリケーションが稼働していることを確認する必要があります。
レプリケーションはバックアップを置き換えません (ユーザーがすべてのレコードを削除するか、データベースからテーブルを削除すると、その変更はレプリケートされます!)
障害が発生し、ソースからターゲットに切り替える必要がある場合は、有効なマスターになる前に、データベースの検証を行う必要があります。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 レプリケーション ドキュメントを確認してください。
ソース: