快照太老了错误

时间:2012-08-15 16:13:05

标签: oracle teradata informatica

当我运行工作流程超过5小时时,我经常收到“快照太旧错误”。我的源代码是oracle,目标是Teradata。请帮忙解决这个问题。谢谢提前

2 个答案:

答案 0 :(得分:2)

快照太旧错误或多或少与查询的运行时间直接相关(通常是FOR循环的游标)。因此,最佳解决方案是优化查询,以便它们运行得更快。

作为短期解决方案,您可以尝试增加UNDO日志的大小。

<强>更新

UNDO日志在更新之前存储先前版本的记录。它用于回滚事务并检索旧版本的记录,以便为长时间运行的查询提供一致的数据快照。

如果您想通过增加UNDO日志来解决问题,您可能需要深入了解Oracle数据库管理。基本上你做(作为SYSDBA):

 ALTER SYSTEM SET UNDO_RETENTION = 21600;

21600秒是6小时。

但是,如果UNDO日志文件足够大,Oracle将只保留6小时的旧数据,这取决于回滚段的大小和数据库上执行的更新量。

因此,除了更改撤消保留时间外,还应确保在作业运行时执行少量并发更新。特别是,应尽量减少您的工作正在阅读的数据更新。

如果一切都失败了,请增加UNDO日志。

答案 1 :(得分:2)

this AskTom thread

中找到了我读过的ORA-01555快照太旧错误的最佳解释

问候。