xiaoshilangzi 2016-04-09 08:35 采纳率: 0%
浏览 3266

oracle 恢复数据 报错 ora-01555,请各位帮忙看看 怎么解决

oracle 恢复数据 两天前的数据,数据量不大,执行下面语句

--开启行移动功能
alter table 表名 enable row movement;
--恢复表数据
flashback table 表名 to timestamp to_timestamp('2016-04-07 17:40:00','yyyy-mm-dd hh24:mi:ss');

报错 :

ORA-01555: snapshot too old: rollback segment number 11 with name "_SYSSMU11$" too small

  • 写回答

1条回答 默认 最新

  • 青城远梦 2016-04-11 02:12
    关注

    1、扩大回滚段: 因为回滚段是循环使用的,如果回滚段足够大,那么那些被提交的数据信息就能保存足够长的时间是那些大事务完成一致性读取。

    2、增加undo_retention时间:在undo_retention规定的时间内,任何其他事务都不能覆盖这些数据。

    3、优化相关查询语句,减少一致性读:减少查询语句的一致性读,就降低读取不到回滚段数据的风险。这一点非常重要!

    4、减少不必要的事务提交:提交的事务越少,产生的回滚段信息就越少。

    5、对大事务指定回滚段,通过以下语句可以指定事务的回滚段:SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment; 给大事务指定回滚段,即降低大事务回滚信息覆盖其他事务的回滚信息的几率,又降低了他自身的回滚信息被覆盖的几率。大事务的存在,往往是1555错误产生的诱因。

    6、使用游标时尽量使用显式游标,并且只在需要的时候打开游标,同时将所有可以在游标外做的操作从游标循环中拿出。当游标打开时,查询就开始了,直到游标关闭。减少游标的打开时间,就减少了1555错误发生的几率。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题