存在多个副本时Oracle GoldenGate CSN的行为?

时间:2017-04-16 20:12:17

标签: oracle-golden-gate

需要了解有关Oracle GoldenGate CSN的更多详细信息。

以下是配置的系统架构。

源数据库 - Oracle
目标数据库 - Oracle

对于源数据库中的每个表,在目标数据库上定义了2个表(BASE表和DELETE表)。 配置2个副本以将数据从源数据传输到目标数据库。 一个副本将INSERT / UPDATES移动到目标数据库,而其他副本将DELETE记录移动到目标。

以下是GG定义的视图,它提供了GoldenGate元数据信息。

GoldenGate metadata info

具有服务器名称的行以' CRN01A'结尾。表示BASE表的GG副本。 具有servername的行以' CRN01D'结尾。表示DELETE表的GG副本。

APPLIED_LOW_POSITION提供'所有提交位置小于此值的邮件已被应用'。

我们的问题是两个副本是否都有自己的孤立CSN或与提取同步。

示例:

  1. APPLIED_LOW_POSITION初始值 - 对于BASE表副本和DELETE表副本都为100。
  2. 源DB上发生了100次INSERTS / UPDATES。 BASE表副本APPLIED_LOW_POSITION值更改为200。
  3. 在步骤2之后,在源系统上发生了3个DELETE。我们的问题是在这个时间点,DELETE副本的APPLIED_LOW_POSITION值是什么? 是 103或203
  4. 你能提出你的想法吗?

1 个答案:

答案 0 :(得分:0)

CSN计数器与源数据库上的CSN号连接。它总是在增长。

如果CSN等于100,则发生了一些事务(INSERT)。它增长到200。

然后进行了3次额外的DELETE操作。从200开始,它将增长到203.

这3个DELETE操作可能无法复制到INSERT / UPDATE目标,因此APPLIED_LOW_POSITION可能不会在此目标上更改并保持在200级别。

但是在DELETE目标上,APPLIED_LOW_POSITION将升至203。