1

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

以下是配置的系统架构。

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

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

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

GoldenGate 元数据信息

servername 以“CRN01A”结尾的行表示 BASE 表的 GG 副本。servername 以 'CRN01D' 结尾的行代表 DELETE 表的 GG 副本。

APPLIED_LOW_POSITION 给出“已应用提交位置小于此值的所有消息”。

我们的问题是,两个副本是否将拥有自己的隔离 CSN 或在提取方面同步。

例子:

  1. APPLIED_LOW_POSITION 初始值 - 100 用于 BASE 表副本和 DELETE 表副本。
  2. 源数据库上发生了 100 次插入/更新。BASE 表副本 APPLIED_LOW_POSITION 值更改为 200。
  3. 在第 2 步之后,源系统上发生了 3 次 DELETE。我们的问题是,此时 DELETE 副本的 APPLIED_LOW_POSITION 值是多少?是103 还是 203

你能提供你的想法吗?

4

1 回答 1

0

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

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

然后进行了 3 次额外的 DELETE 操作。并且从 200 增长到 203。

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

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

于 2017-06-27T20:23:52.197 回答