首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenEdge复制过程验证?

OpenEdge复制过程验证?
EN

Stack Overflow用户
提问于 2014-10-07 11:06:18
回答 1查看 529关注 0票数 1

在发生灾难时,是否有任何测试方案/过程来验证OpenEdge复制?

任何证明复制过程的可行性的文档/测试方案都是有帮助的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-07 12:01:08

首先,您需要知道您的复制已经启动并正在运行。

复制并不取代备份(如果用户从数据库中删除所有记录或删除表,则将复制更改!)

一旦发生了灾难,并且需要从源切换到目标,那么在转换为有效的主模块之前,您应该对数据库进行一些验证。如果数据库中有任何重大错误,事务没有完成等,OpenEdge很可能会抱怨。但是只有您可以检查您的数据库是否包含它应该包含的内容。所有的崩溃都倾向于失去某些东西--至少还没有提交交易。

再次:复制不替换备份

验证复制

可以以不同的方式验证正在运行的复制的状态:

虚拟系统表

您可以在VST中访问许多有用的数据。有关详细信息,请参阅产品文档。

_数据库-特征

_显示数据库中活动和/或启用的功能列表。

-服务器:

提供详细的OpenEdge复制服务器信息。

-代理控制:

提供有关OpenEdge复制服务器控制的OpenEdge复制代理的详细信息。

_Repl-代理人

提供详细的OpenEdge复制代理信息。

示例代码:

代码语言:javascript
复制
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来访问有关复制的信息。

示例:

这将为您提供一个交互式提示,以检查各种内容:

代码语言:javascript
复制
dsrutil db -C monitor

您还可以使用其他选项(参见手册)来编写脚本。

示例:

代码语言:javascript
复制
dsrutil db -C status detail

如果一切正常,只编写6021 (并将OK返回到操作系统)。有关更多信息,请查看下面的OE复制文档。

资料来源:

OE 11.4复制文档

OE 11.4数据库管理-第28章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26234589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档