前段时间写了篇博文叫<< Oracle undostat中的2012和ORA-01555问题 >> ,今天来个自我解答吧
因为最近忙于公司新版网站上线,有很多东西要调整就一直没有抽出时间来研究那篇关于【 Oracle undostat中的2012和ORA-01555问题】
趁着十一学习的时间找到了这个问题的原因,其实很简单的很简单的呢
第一个问题:
是在 alter.log 中发现大量的select 的查询语句也报告快照太旧错误如图: 熟悉的ORA-01555
时间都在23点到凌晨1点多,在其他任何时间都没有出现过,接连几天都是这样的,我纳闷了好一阵子。
原因在今天揭晓了,原来在系统有计划任务在那个时间运行------逻辑备份exp
由于发生快照太旧的时间就在exp到处数据的那个时间,库中没有在那个时间运行的job。
第二个问题:
查询v$undostats 得到的 begin_time 和 end_time 的时间是2012年,这个也太超前了。
今天咨询了一下培训班的老师,给我的解答是:系统时间曾经被修改过,或者其他的原因导致时间提前了,导致v$undostats 中的 begin_time 和 end_time 时间要比当前系统时间早。
我今天也做了个实验,将系统的时间更改为 2013 年1月1日
然后过一会儿查询v$undostats得到的结果:
系统时间正常情况的查询:
系统时间更改后的查询
当系统更改为正确的时间后,再次查询
时间还是没有变化,说明了这个系统的时间一定更改过。over了
重启数据库后回到正常的状态:
本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/400138,如需转载请自行联系原作者