设置数据库复制时订阅创建和验证的问题

2020-08-18 16:42发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我正在设置从
方案1:的数据库复制:ASE1(PDS)通过ASE_RS2(PRS)和ASE_RRS(RRS)到ASE2(TDS)
方案2:使用以下步骤通过ASE_RS(PRS)和ASE_R(RRS)将PROD(PDS)转换为UAT(TDS)。

1.创建数据库
2.创建连接
3.为所涉及的复制服务器创建直接路由
4.在PRS中创建数据库复制定义,在RRS
中为数据库repdef创建下标5.在PDS.PDB中创建表,并检查数据是否已在TDS中复制。 贸易发展局

如果我错过了任何内容,请纠正我。

*************************************************** ****************************************************** *******************
对于方案1:

1。在ASE1,ASE2中创建数据库E30_2
2.在ASE_RS2中创建ASE1.E30_2的连接,并在ASE_RRS中创建ASE2.E30_2的连接。
3.在ASE_RS2和ASE_RRS之间创建直接路由。
4.使用以下命令在ASE_RS2中为数据库E30_2创建复制定义。

使用ASE1中的主数据库创建数据库复制定义RepDep_E30_2_For_ASE_RRS
。E30_2
复制DDL
复制sqldml

5.使用以下命令创建数据库复制定义的预订,
为RepDep_E30_2_For_ASE_RRS
创建预订SubDef_E30_2_From_ASE_RS2
,主要在ASE1.E30_2
,在ASE2.E30_2
复制 >观察:数据库复制定义已成功创建,但是我无法为其创建预订(由于诸如ASE1.E30_2的问题,对于ASE_RS2而言不是有效站点)

*************************************************** ****************************************************** ********************

对于方案2:

1。在PROD,UAT中创建数据库E30_2_MSA_Target1
2.在ASE_RS中创建PROD.E30_MSA_Target1的连接并在ASE_R中创建UAT_E30_MSA_Target1的连接。
3.在ASE_RS和ASE_R之间创建直接路由。
4。 使用以下命令在ASE_RS中为数据库E30_MSA_Target1创建复制定义。

使用PROD.E30_MSA_Target1主数据库创建数据库复制定义RepDep_E30_MSA_Target1_For_ASE_R

复制DDL
复制sqldml

5。使用命令创建数据库复制定义的预订

为RepDep_E30_MSA_Target1_For_ASE_R
创建RepDep_E30_MSA_Target1_For_ASE_R
的订阅SubDef_E30_MSA_Target1_From_ASE_RS
,复制副本位于UAT.E30_MSA_Target1

观察:在我指定"未实现"后,成功创建了数据库复制定义,并创建了订阅,但是即使执行验证订阅后,它也会进入"未知"状态(rs_helpdbsub)

奇怪的是,在方案1中没有创建订阅本身,在方案2中没有验证订阅,即使它提示输出"订阅现在有效",但仍显示为未知状态。

请告知。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我正在设置从
方案1:的数据库复制:ASE1(PDS)通过ASE_RS2(PRS)和ASE_RRS(RRS)到ASE2(TDS)
方案2:使用以下步骤通过ASE_RS(PRS)和ASE_R(RRS)将PROD(PDS)转换为UAT(TDS)。

1.创建数据库
2.创建连接
3.为所涉及的复制服务器创建直接路由
4.在PRS中创建数据库复制定义,在RRS
中为数据库repdef创建下标5.在PDS.PDB中创建表,并检查数据是否已在TDS中复制。 贸易发展局

如果我错过了任何内容,请纠正我。

*************************************************** ****************************************************** *******************
对于方案1:

1。在ASE1,ASE2中创建数据库E30_2
2.在ASE_RS2中创建ASE1.E30_2的连接,并在ASE_RRS中创建ASE2.E30_2的连接。
3.在ASE_RS2和ASE_RRS之间创建直接路由。
4.使用以下命令在ASE_RS2中为数据库E30_2创建复制定义。

使用ASE1中的主数据库创建数据库复制定义RepDep_E30_2_For_ASE_RRS
。E30_2
复制DDL
复制sqldml

5.使用以下命令创建数据库复制定义的预订,
为RepDep_E30_2_For_ASE_RRS
创建预订SubDef_E30_2_From_ASE_RS2
,主要在ASE1.E30_2
,在ASE2.E30_2
复制 >观察:数据库复制定义已成功创建,但是我无法为其创建预订(由于诸如ASE1.E30_2的问题,对于ASE_RS2而言不是有效站点)

*************************************************** ****************************************************** ********************

对于方案2:

1。在PROD,UAT中创建数据库E30_2_MSA_Target1
2.在ASE_RS中创建PROD.E30_MSA_Target1的连接并在ASE_R中创建UAT_E30_MSA_Target1的连接。
3.在ASE_RS和ASE_R之间创建直接路由。
4。 使用以下命令在ASE_RS中为数据库E30_MSA_Target1创建复制定义。

使用PROD.E30_MSA_Target1主数据库创建数据库复制定义RepDep_E30_MSA_Target1_For_ASE_R

复制DDL
复制sqldml

5。使用命令创建数据库复制定义的预订

为RepDep_E30_MSA_Target1_For_ASE_R
创建RepDep_E30_MSA_Target1_For_ASE_R
的订阅SubDef_E30_MSA_Target1_From_ASE_RS
,复制副本位于UAT.E30_MSA_Target1

观察:在我指定"未实现"后,成功创建了数据库复制定义,并创建了订阅,但是即使执行验证订阅后,它也会进入"未知"状态(rs_helpdbsub)

奇怪的是,在方案1中没有创建订阅本身,在方案2中没有验证订阅,即使它提示输出"订阅现在有效",但仍显示为未知状态。

请告知。

付费偷看设置
发送
11条回答
hengyuye
1楼-- · 2020-08-18 17:09

(显然),您需要解决路由问题 首先。

我建议查看PRS和RRS的错误日志,以查看是否有任何消息表明" 创建路线"存在问题。

如果/当您继续删除路由时,我建议确保' rs_helproute '显示路由已成功删除。

CJones
2楼-- · 2020-08-18 17:03
< Ben,我确实在创建订阅时提到了"用于数据库复制的定义",但是我在发布时在这里打了一个错字。 让我对其进行编辑。

d56caomao
3楼-- · 2020-08-18 17:04

创建订阅需要在PDB中调用" rs_marker ",然后该标记必须流经PRS,RRS和 最后是DSI。 随着标记流过各个RS组件/线程,订阅的状态也会更新。

如果订阅显示为" 未知",则" rs_marker '被卡在PDB和DSI之间(或者更糟的是被丢弃)。

我建议在PRS和RRS中都运行' check subscription ', 并检查以确保repagent已启动并正在运行,并且所有PRS/RRS线程都已启动。

SC_Yao
4楼-- · 2020-08-18 16:48

假定子在PRS中有效而在RRS中无效,并假定所有 RS线程已启动,我可以想到4个可能的问题:

  1. 路由问题; 但是您说repdef和PDB在RRS/RSSD中可见,因此我们可以排除这一点
  2. DSI已关闭; 但是如果您可以确认DSI已启动,那么我们可以排除此问题
  3. 在DSI/出站队列中备份事务; " admin who,sqm "显示出站队列(进入RDB)是空的还是在其中备份了某些事务? 如果队列中有备份的事务,是否可以在队列转储中看到预订的 rs_marker ?
  4. DSI正在丢弃事务(例如, 较新的oqid位于RDB的 rs_lastcommit 表中); ' admin who,dsi '对忽略的Xacts 显示非零值吗? 如果您删除并重新创建订阅,并且假设状态仍然为VALID/INVALID,忽略Xacts 计数器会增加吗? 将* ALL * DSI暂停到RDB中,截断RDB的 rs_lastcommit 表,恢复DSI,然后再次删除/重新创建订阅

有关更多信息 有关步骤4所述问题的信息,请参见此博客文章

Nan4612
5楼-- · 2020-08-18 16:55

标记,我只是从目标端E30_2数据库的rs_lastcommit表中删除了该条目,然后删除并重新创建了订阅。

即使在此之后,状态仍然未知,但是我看到数据正在被复制。

不知道创建订阅的状态显示为未知的实际原因。

一周热门 更多>