Sybase - SAP ASE - 复制服务器:路由声明

Sybase - SAP ASE - replication server: routing declaration

我正在尝试在 SAP Replication Server 中声明路由。

我有:

带有 ASE 和 RS 服务器(我们称之为 RS1)的服务器(我们称之为 S1)。

带有 ASE 和 RS 服务器(我们称之为 RS2)的服务器(我们称之为 S2)。

带有 ASE 服务器的服务器(我们称之为 S3)。

我在 RS1 中有一个从 S1 中的数据库到 S1 和 S2 中的数据库的复制。

现在我正在尝试通过 RS2 向 S3 中的数据库添加复制:从 RS1 到 RS2 的路由以及对 S3 中数据库的订阅。

我声明了路由,2个RSSD之间的代理。

当我尝试将订阅(在 RS2 中)设置为 S3 中的数据库时出现错误 - 说它不知道复制定义。

有人熟悉路由声明吗?

谢谢。

路由的关键是它们都需要在同一个复制系统中,这意味着它们必须共享同一个主代表服务器(称为 ID 服务器)——这包含有关复制中所有复制服务器的信息服务器设置,或众所周知的域。您可以在一个域中创建多个复制服务器,但要使它们能够通过路由 link 在一起,它们必须都使用相同的 ID 服务器。

注意:您不能单独设置它们,然后再 link 它们。当您设置 RS2 时,您说 RS1 是 id 服务器,并在您 运行 通过各种 rs_init 菜单创建 RS2 时将所有必需的信息放入 RS1 的 rs_init。

如果已经正确完成,那么:

首先在 RS1 和 RS2 之间设置路由(通过 'create route' 命令 here)如果你希望数据在某个时候双向流动,那么在 RS1 之间设置双向路由是有意义的和 RS2,因为根据定义,一条路线是单向的。这意味着您可以在三个 ASE 实例中的任何一个之间设置复制。

注意:您需要检查该路由是否真的完全启动并处于活动状态(通过 admin who)——如果没有,那么您需要开始查看代表服务器错误日志以了解失败的原因,例如interfaces 文件中缺少条目、登录问题等

设置了一个路由,当它们附加到不同的复制服务器时,您可以针对源数据库创建订阅复制定义,并在目标数据库上创建订阅。这可以是 table 级或数据库级复制定义 (MSA),具体取决于您的目标。

更新:我解决了。

特别是我所做的是修改运行设置并删除重复项。然后我再次设置连接,然后是订阅。

  • 断开连接。
  • 丢弃路线。
  • 清除路由 - 清除使用失败的创建路由创建的所有旧引用。
  • 暂停连接。
  • 停止代表代理并运行 rs_zeroltm 告诉代表代理在日志末尾启动并重新启动代表代理。
  • 恢复连接
  • 重新创建了 RSSD 之间的路由。
  • 验证复制定义是否已复制到目标 RSSD
  • 创建订阅
  • 在第二个 RS 上恢复复制连接