Oracle ora_rowscn 何时换行
Posted
技术标签:
【中文标题】Oracle ora_rowscn 何时换行【英文标题】:When does Oracle ora_rowscn wrap 【发布时间】:2013-12-18 21:24:17 【问题描述】:我正在使用 ora_rowscn 从 oracle 数据库到 MS SQL Server 数据仓库进行增量加载。这很好用。
但是,我找不到 ora_rowscn
换行时会发生什么以及 ora_rowscn
的数据类型到底是什么。
有人能解释一下吗?
当使用浮点列通过 SSIS 导入 ora_rowscn
时,建议使用浮点列,因为到目前为止我使用 bigint
是一个整数值。
文档:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns007.htm http://www.orafaq.com/node/2194 这提到ROWDEPENDENCIES
需要 6 个字节,这是每个 ora_rowscn
值需要 6 个字节吗?
那么ora_rowscn
能得到的最大的是什么?
【问题讨论】:
【参考方案1】:来自Ask Tom,回答问题:
当 COMMIT 发生时,SCN 加一。这是一个序列吗?当它必须回收时,它是否会走到尽头?
汤姆说:
它不是一个序列,它只是一个内部数字,它不是 像序列一样维护在 seq$ 中(它不能,它用于 管理数据文件,不能在数据文件的表中)
它不回收,它可以很高,你可以生成 每秒数千,仍然需要等待数十万 在我们用尽它之前的几年。
ora_rowscn
伪列显示行(或其块)受事务影响时的 SCN,因此它不会包装/回收。
大约两年前because of bugs 有很多关于 SCN 的讨论。有人提到,软限制为 16384 * 自 1988 年 1 月 1 日以来的秒数。我没有任何官方的链接,但它应该让你很好地了解它在近期或中期的未来可能会达到多高。即使当时确实如此,它也可能在 12c 中发生了变化,或者在未来再次发生变化,因为处理能力允许达到该软限制(即使没有错误)。
【讨论】:
这增加了我的解决方案的信心。虽然我还在想它到底能达到什么尺寸……以上是关于Oracle ora_rowscn 何时换行的主要内容,如果未能解决你的问题,请参考以下文章
ora_rowscn 在 USING 子句中时的 Oracle 合并语句行为