我在10g 的  em   用表闪回功能,想将这个表的数据恢复到以前的一个时间段上。结果报错:错误:ora-00604递归SQL级别1出现错误:ORA-12801:并行查询服务器P002中发出错误信号ORA-01555:快照过旧:回退段号3("SYSSMU3$")过小.前几天,我还闪回成功过,但是今天再闪回就提示这个错误。请教各位大侠。

解决方案 »

  1.   

    undo信息已经被覆盖了.所以提示快照过旧.
    解决方法:
    1.把undo 空间设置大一点.
    2.把undo_retention_police 设置为gurantee
    sql>alter tablespace undosbs1 retention guarantee;(强制保证undo_retention参数保证的时间内数据不被覆盖)
    缺省情况下 undo表空间是处于 noguarantee状态。
      

  2.   

    解决方法楼上已经给你说了原因么就是因为你的回滚空间不够用了 这个表的前镜像被覆盖掉了 当然FLASHBACK就不能闪回了
    因为FLASHBACK TABLE命令利用的就是回滚段中的信息
      

  3.   

    覆盖掉了 是不是就是闪回不了了?alter tablespace undosbs1 retention guarantee 还是不行能有什么办法让我闪回到那个时间上?
      

  4.   

    undo_retention 你设置的是多少啊,
    900 莫认是15分钟哈,
    设置了gurantee之后,只能保证15分钟内的数据不被覆盖.
      

  5.   

    楼主的理解是不是有些偏差
    alter tablespace undosbs1 retention guarantee;
    执行了上面这条语句只是说以后的数据可以保证在回滚段里保存你undo_retention指定的时间
    而你以前那个表的前镜像已经被覆盖掉了 
    现在即便设置了GUARANTEE,也是找不回来了
    这个语句只能对以后的操作起作用而已