ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 闪回总结

oracle 闪回总结

原创 Linux操作系统 作者:眼镜男 时间:2009-11-04 21:53:12 0 删除 编辑
                                                                 一.闪回
闪回只对逻辑错误有意义,对数据块损坏和联机日志损坏必须采用介质恢复
truncate table:不产生redo日志,不产生回滚信息,表结构还在,将重新设置高水平线(High Water Mark)和所有的索引。
drop table:将表重新命名,空间是不释放,在recycle bin中能够找到这张表,产生redo日志,产生rollback.
1.闪回数据库
 闪回数据库就是将数据库整体推回到过去的某个时间点。
 闪回数据库的实现机理:buffer cache<-->flashback cache<-->rvwr<-->闪回日志【日志只记录修改前的旧值】
  
 闪回日志与联机日志的区别:联机日志会记录改变前后的值,而闪回日志只记录改变前的值
 
 闪回应用场合:删除用户,truncate table,批处理导致多个表出现逻辑错误
 
 db_flashback_retention_target:尽量保证你设置的时间内日志不被删除,但闪回空间不足时会自动删除一些日志。如果想不自动删除日志需
 执行[create restore point **** guarantee flashback database]
 
2.闪回drop table
 drop table:并没有真正的删除表,只是将表重新命名,在回收站里维护了,删除前的表明和删除后的表名对应关系,因此只需利用回收站的表明便可以恢复。
 闪回table后,表上的对象需要重建(如索引)
 
3.闪回表
 就是将表里的数据推回到过去的某个时间点,是利用undo表空间里记录的数据被改变前的值,如果闪回表所需要的undo数据,由于保留的时间超过了初始化参数undo_retention所指定的
 值,从而导致该undo数据块被其他事务覆盖,就不能恢复到指定的时间点了。
 
 闪回表的局限:当前的时间点到要闪回到的时间点之间不允许有ddl操作,否则闪回无法成功。
4.闪回版本查询(flashback version query)
 
 所谓版本指的是每次事务所引起的数据行的变化的情况,每一次变化就是一个版本。
 闪回版本查询使用的undo表空间里记录的undo数据。
 
5.闪回事务查询提供的是一个视图,flashback_transaction_query,利用这个视图,可以显示哪些事务引起了数据的变化,并为此提供了撤销事务的SQL语句。
 闪回事务查询利用的是undo表空间的undo数据
 
6.闪回查询
 查询过去某个时刻表的数据的情况,一旦确认某个时刻的数据满足我们的需求以后,可以根据这个时间执行闪回表。
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21996817/viewspace-618149/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-28

  • 博文量
    30
  • 访问量
    31792