在发生灾难时,是否有任何测试方案/过程来验证OpenEdge复制?
任何证明复制过程的可行性的文档/测试方案都是有帮助的。
发布于 2014-10-07 12:01:08
首先,您需要知道您的复制已经启动并正在运行。
复制并不取代备份(如果用户从数据库中删除所有记录或删除表,则将复制更改!)
一旦发生了灾难,并且需要从源切换到目标,那么在转换为有效的主模块之前,您应该对数据库进行一些验证。如果数据库中有任何重大错误,事务没有完成等,OpenEdge很可能会抱怨。但是只有您可以检查您的数据库是否包含它应该包含的内容。所有的崩溃都倾向于失去某些东西--至少还没有提交交易。
再次:复制不替换备份
验证复制
可以以不同的方式验证正在运行的复制的状态:
虚拟系统表
您可以在VST中访问许多有用的数据。有关详细信息,请参阅产品文档。
_数据库-特征
_显示数据库中活动和/或启用的功能列表。
-服务器:
提供详细的OpenEdge复制服务器信息。
-代理控制:
提供有关OpenEdge复制服务器控制的OpenEdge复制代理的详细信息。
_Repl-代理人
提供详细的OpenEdge复制代理信息。
示例代码:
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如果一切正常,只编写6021 (并将OK返回到操作系统)。有关更多信息,请查看下面的OE复制文档。
资料来源:
OE 11.4复制文档
OE 11.4数据库管理-第28章
https://stackoverflow.com/questions/26234589
复制相似问题