在Oracle中导出一天数据而不保持锁定

时间:2016-04-22 07:21:34

标签: database oracle oracle12c

我必须编写一个脚本,该脚本将从单个表中获取一天的数据并将其转储到另一个表中(我的其他进程将处理该数据)。但是,我想要导出数据的表格是" Live"具有大量插入物的桌子。任何类型的锁定(在导出过程中)都是不可接受的。我知道mysql有一种不通过" - skip-lock-tables"旗。 Oracle有类似的东西吗?如果没有,实现这一目标的最佳方法是什么?

正在使用的Oracle版本是 - Oracle SE One 12.1.0.1.v2

1 个答案:

答案 0 :(得分:1)

在SELECT启动的时间点,SCN附加到SELECT。 SCN之后对数据的任何更改都不会影响您的SELECT。您的SELECT从UNDO读取旧数据。如果这是一个高事务表并且您希望SELECT长时间运行,请确保您有足够的UNDO空间和足够的UNDO_RETENTION。

专注于良好的设计可以防止任何潜在的问题。从这个角度来看,我建议在源表上实现每日分区。这有助于轻松备份一天的数据,并有助于维护未来的数据。

希望这有帮助。