0

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

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)

随时要求任何澄清。

4

1 回答 1

0

这是新的热备用设置吗?

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

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

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


如果数据库连接已成功添加并且 SRS 认为它应该正在复制,那么admin logical_status应该显示两个连接的状态,Active但情况并非如此......备用连接正在显示Active/Waiting for Enable Marker

我猜当您添加备用连接时,您选择通过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}命令将 adump marker放在活动数据库的事务日志中
  • 代理将此转发dump marker给 SRS
  • SRS 转发dump marker到 DSI
  • DSI 收到dump marker后将暂停与备用数据库的连接并开始保存传入的事务
  • 操作员将数据库(或事务日志)转储文件加载到备用数据库中
  • online database操作员针对备用数据库发出命令
  • 操作员恢复到备用数据库的 DSI 连接
  • admin logical_status应显示状态为的备用连接Active/
  • DSI 开始对备用数据库应用事务

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

admin logical_status向我们展示 DSI 仍在等待dump marker.

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

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

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

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

于 2021-01-11T23:03:38.427 回答