【问题标题】:changes on primary are not getting replicated to standby in SAP ASE - ASE replication在 SAP ASE 中,主节点上的更改未复制到备用节点 - ASE 复制
【发布时间】:2021-01-07 10:03:20
【问题描述】:

2 SAP ASE 服务器配置为在 testdb 上使用 SAP RS 进行复制,并将逻辑连接用作热备用。就我而言,所有线程和代表代理都运行良好,但 PDS.testdb 上的数据更改没有复制到 RDS.testdb。 在 Replication Server 上:

1> admin logical_status
2> go
 Logical Connection Name
         Active Connection Name
         Active Conn State
         Standby Connection Name
         Standby Conn State
         Controller RS
         Operation in Progress
         State of Operation in Progress
         Spid
 ---------------------------------------------------------------------------
 [102] manvith6605t1.testdb
         [103] MANVITH6605T1.testdb
         Active/
         [104] APMW2K8R2641.testdb
         Active/Waiting for Enable Marker
         [16777317] SAMPLE_RS
         None
         None

1> admin who_is_down
2> go
 Spid Name            State             Info
 ---- --------------- ----------   ----------

在主要:删除了一些数据行。

1> select count(*) from mytable
2> go

 -----------
          24

(1 row affected)

待机:

1> select count(*) from mytable
2> go

 -----------
          64

(1 row affected)

如有任何疑问,请随时询问。

【问题讨论】:

    标签: database-replication sap-ase sybase-rs


    【解决方案1】:

    这是新的热备用设置吗?

    您过去是否能够通过这种热备用设置成功复制到备用数据库中?

    你最近有没有运行过switch active 命令?

    假设这是一个新设置,并且switch active 尚未运行,我将假设这可能是备用连接添加到设置中的问题...


    如果数据库连接已成功添加并且 SRS 认为它应该正在复制,则 admin logical_status 应该显示两个连接状态为 Active 但情况并非如此......备用连接显示 @987654325 @。

    我猜当您添加备用连接时,您选择通过dump-n-load 操作初始化备用数据库。如果您通过资源文件创建备用连接,则资源文件中可能有rs.rs_init_by_dump: yes 之类的内容;如果你从命令行运行rs_init,就会有一个相关的问题,你可能会说yes

    当您告诉rs_init 备用数据库将通过dump-n-load 操作进行初始化时,标准场景如下所示:

    • 备用连接已创建
    • 备用 DSI 配置为丢弃所有传入事务,直到它看到 dump marker
    • admin logical_status 应显示状态为Active/Waiting for Enable Marker 的备用连接
    • 操作员在活动数据库中执行dump database(或dump transaction,如果这是一个较大的数据库并且数据库转储已经转储并加载到备用数据库中)
    • dump {database|transaction} 命令将dump marker 放入活动数据库的事务日志中
    • 代理将此dump marker 转发给 SRS
    • SRS 将 dump marker 转发到 DSI
    • DSI 在收到dump marker 后将暂停与备用数据库的连接并开始保存传入事务
    • 操作员将数据库(或事务日志)转储文件加载到备用数据库中
    • 操作员针对备用数据库发出online database 命令
    • 操作员恢复到备用数据库的 DSI 连接
    • admin logical_status 应显示状态为Active/ 的备用连接
    • DSI 开始对备用数据库应用事务

    注意:我不记得在收到dump marker 后备用连接的状态是否更改为Active/ a) (并关闭 DSI)或 b) 在恢复备用 DSI 连接时。

    您的 admin logical_status 向我们显示 DSI 仍在等待 dump marker

    如果这是一个生产数据库,您可能需要执行新的数据库转储...此时备用 DSI 应该关闭...然后您需要将数据库转储加载到备用数据库中, online表示数据库,然后恢复到备用数据库的DSI连接。这是确保您的备用数据库在没有丢失事务的情况下联机的唯一方法(即,当前设置正在丢弃事务)。

    如果这是一个开发/测试环境和/或您不关心活动和备用数据库不同步的可能性,您应该能够:

    • 将 DSI 挂起到备用数据库中
    • 将 DSI 恢复到备用数据库中
    • 验证admin logical_status 现在显示备用数据库的Active/ 状态,如果是这样...假设没有其他问题...
    • 活动数据库中新执行的事务应该开始复制

    注意:您之前对活动数据库执行的DELETE 现在可能已被丢弃,因此您可能希望首先对备用数据库手动运行相同的DELETE,以便使表同步(假设这是两个表的唯一区别,例如,自从打开复制后,您没有在活动数据库中运行任何 UPDATEs)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-08
      • 2020-05-28
      • 1970-01-01
      • 2017-09-10
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多