一、使用kettle从源端数据库抽到目标端数据库时,当数据量过大时,会报ORA-01555快照过旧报错
二、产生的原因:
(1):sql执行比较久,需要优化sql
(2):回滚段过小
(3):undo保存时间过短
三、执行步骤:
1:查看sql语句,是否可以优化
2:检查回滚段大小
3:查看undo_retention参数
打开plsql命令窗口,输入:show parameter undo_
Undo_retention:是undo数据保存的时间,是一个目标期望值,单位为秒,默认为900s
用户设置出这个值之后,Oracle内部会尽量保证将Undo数据保留超过undo_retention设置的时间,但是如果Undo使用紧张,没有额外的方法,那么这个时间段也是不能保证的,这个时间如果设置的比较小,数据很快就覆盖了,那么执行较长时间的查询语句就会报ORA-01555的错误。
修改语句:alter
system
set
undo_retention=7200;
修改成功后,执行 show parameter undo_,查看时间已变