oracle闪回出错!快照过旧 回退段号5的问题

qianzongli 2008-07-25 10:43:59
各位大侠:
我昨天在修改数据时 出现数据丢失:(原数据库表中有707条数据,我又从excel中复制了3000条数据到表中。 是直接复制粘贴过来的。 但是发现表中吧之前的707条数据丢失了)。就用
alter table bzuserdb.userinformation enable row movement


flashback table bzuserdb.userinformation to timestamp to_timestamp('2008-07-24 16:00:00','yyyy-mm-dd hh24:mi:ss'); 这个语句想恢复到指定的时间。 但是报错。

错误提示:递归sql级别1出现错误。并行查询服务器p000中发出错误信号。快照过旧 回退段号5(名称为“_SYSSMU5$”)过小。
请大家指教 这个是什么原因 如何修改啊?? 在线等!!! 小弟就80分了 全部发了!!
...全文
1048 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zk5168 2010-09-16
  • 打赏
  • 举报
回复
我也遇到了这个问题
ruihuahan 2008-07-25
  • 打赏
  • 举报
回复
快照过旧 回退段号5(名称为“_SYSSMU5$”)过小。
============================================
回滚段过小,造成数据行的 before image 被新的事物覆盖。

指定使用空间足够的回滚段。
vc555 2008-07-25
  • 打赏
  • 举报
回复
“吧excel的数据复制到表中以后提交了 然后就没有之前的数据了”
这怎么会呢?你怎么复制到表中的?用了sqlldr的replace?
qianzongli 2008-07-25
  • 打赏
  • 举报
回复
我的数据是吧excel的数据复制到表中以后提交了 然后就没有之前的数据了。 是不是我的回滚段 太小了?? 还是有设置大的回滚段?
vc555 2008-07-25
  • 打赏
  • 举报
回复
这是因为你的撤销段中用于闪回的数据已经没了。
可能是因为你的撤销保留时间设的不够长,也可能就是说DML操作太多了,已经重复使用了用于闪回的撤销段。

你可以尝试把闪回时间点再缩小点,看能不能找到记录。
还有一点就是你的这个数据丢失的原因是什么,是别人DELETE了,还是当时没提交,等等。不是所有操作都能闪回。
kongkongye 2008-07-25
  • 打赏
  • 举报
回复
看来是undo 信息丢了,没法flashback table 了。

如果数据特别重要,用rman 恢复另一个环境出来,然后再获得之前的数据吧。

为了吸取这次的经验:
1。你的dml操作一定要特别注意,即,尽量不要出错
2.要能及时发现你的错误,即使是事后,即,即使出错了,也要越早发现越好
3.review 你的undo_retention 设置,设置的足够大,并且保证有足够大的undo tablespace
zougang5 2008-07-25
  • 打赏
  • 举报
回复
学习中
oracledbalgtu 2008-07-25
  • 打赏
  • 举报
回复

增大UNDO_RETENTION参数,并增加undo表空间的大小。
改了之后,以后的操作才起左右。
以前的估计没有办法通过flashback找到了,因为已经被其它的覆盖了。

[Quote=引用楼主 qianzongli 的帖子:]
各位大侠:
我昨天在修改数据时 出现数据丢失:(原数据库表中有707条数据,我又从excel中复制了3000条数据到表中。 是直接复制粘贴过来的。 但是发现表中吧之前的707条数据丢失了)。就用
alter table bzuserdb.userinformation enable row movement


flashback table bzuserdb.userinformation to timestamp to_timestamp('2008-07-24 16:00:00','yyyy-mm-dd hh24:mi:ss'); 这个语句想恢复到指定的时间。 但是报错。 …
[/Quote]

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧