我收到“快照太旧错误”频繁,而我跑我的工作流程,当它运行超过5 hrs.My源是Oracle和目标Teradata的。 请帮忙解决这个提前issue.Thanks
Answer 1:
我读过的ORA-01555快照太旧错误的最好的解释,在发现这个AskTom线程
问候。
Answer 2:
快照太旧错误或多或少直接关系到你的查询的运行时间(通常的游标FOR循环)。 所以,最好的办法是让他们跑得更快,以优化查询。
作为一个短期的解决方案,您可以尝试增加UNDO日志的大小。
更新:
它的更新之前撤销日志存储记录的先前版本。 它用于回滚交易和检索长时间运行的查询数据一致性的快照记录的旧版本。
你可能需要潜入Oracle数据库管理,如果你想通过增加UNDO日志来解决它。 基本上,你做的(如SYSDBA):
ALTER SYSTEM SET UNDO_RETENTION = 21600;
21600是在秒6小时。
然而,甲骨文将只保留6小时旧数据如果撤消日志文件是足够大的,这取决于该回滚段的大小和数据库上执行的更新量。
因此,除了改变撤消保留时间,你也应该确保你的工作运行时数并发更新被执行。 特别是,你的工作是读取数据的更新,应尽量减少。
如果这些都失败,增加UNDO日志。
文章来源: Snapshot too old error