是否所有交易都有唯一的 SCN?两个交易可以共享一个 SCN 吗?
我对 Oracle Golden Gate 手册中的这句话感到困惑:
CSN 与事务 ID(在 Oracle GoldenGate 信息输出中显示为 XID)进行交叉检查。XID-CSN 组合唯一标识一个事务,即使在有多个事务同时提交的情况下,因此具有相同的 CSN。例如,这可能发生在具有并行性和高事务并发性的 Oracle RAC 环境中。
https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_csn.htm#GWUAD752
该文档中的表 D-1 将 GoldenGate CSN 标识为 Oracle DB SCN:
Oracle GoldenGate CSN Values Per Database
Oracle: system_change_number
Where: system_change number is the Oracle SCN value.
Run Code Online (Sandbox Code Playgroud)
小智 7
对于单节点 Oracle RDBMS 安装,SCN 永远不会重复。
对于旧版本的 Oracle RAC(例如 Oracle 9i),在不同的 RAC 节点上运行的两个事务可能会以相同的 SCN 结束。只有在 RAC 节点上的高事务率与 MAX_COMMIT_PROPAGATION_DELAY 的大值相结合的极少数情况下才会发生重复。
在 11gR2 及更高版本的 Oracle RAC 安装中,RAC 节点默认通过广播机制协调对 SCN 的更改,从根本上消除了重复 SCN 的可能性。