flashback database 使用及注意事项

适用版本:10.2+(9i+可能也适用)

读者阅读前提:
1. 知道flashback
2. 知道oracle 的启动模式和基本系统视图

v$database中的flashback_on
Oracle 在安装后默认状态下flashback database是关闭的,查看flashback database是否开启可通过下面语句查看:
select flashback_on from v$database;
得到的值有两种情况:YES 或者 NO,分别表示开启和关闭。
如果需要打开或关闭,需要在mount状态下使用下面的命令:
alter database flashback on;
或者
alter database flashback off;
与flashback table等基于recycle bin的功能不同,flashback database之所以能够恢复数据库到历史状态,是通过flashback log和redo log来实现,所以要求redo log 必须是archive mode。当在not archive mode下,打开flashback database时,会提示下面的错误:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.   --&gt 无法创建用来flashback database 的flashback log。
ORA-38707: Media recovery is not enabled.  --&gt这里的意思不够直白,介质恢复功能关闭,而介质恢复使用的就是redo log,其表达的意思其实就是redo log没有打开。
查看redo log的归档模式,在实例的mount或open状态下,执行: archive log list;
修改redo log的归档模式,在实例的mount状态下,执行:
alter database archivelog;  --&gt打开归档
alter database noarchivelog;  --&gt 关闭归档

v$tablespace中的flashback_on
除了在v$database中有flashback_on之外,在v$tablespace中也有flashback_on,且这个值默认为YES,即开启状态。当新建表空间时,flashback_on会默认为YES。它的开启与否会影响flashback log是否会记录此tablespace的变更历史,而拥有从历史上某段时间到当前时间的连续flashback log 和redo log是flashback database的前提。所以,如果在flashback database到历史上某个时间点或SCN时,有tablespace的flashback_on是NO,或在此段时间内曾经是NO,将会导致flashback database失败。
如果需要打开或关闭,需要在mount状态下使用下面的命令:
alter tablespace xxx flashback on;
或者
alter   tablespace xxx   flashback off;
此字段的意义:v$tablespace上的flashback_on的作用有些鸡肋,最好不要随意修改,维持其默认的YES即可。出于数据完整性的考虑,不可能只flashback database中的一个tablespace,所以要么是flashback database,要么是no flashback database。

flashback database使用
flashback database有两种用法:
flashback database to scn xxx;
或者
flashback database to timestamp xxx;
可以将整个database恢复到历史上的某个时间点或SCN(SCN相当于Oracle的内部时钟,与时间的关系是一一对应的,所以可以用来定位时间点)。执行上述命令后,Oracle会通过flashback log和redo log里的记录,将数据库中的数据文件进行“回滚”。恢复完成后,SCN会小于保存在control file和data file中的SCN,所以需要使用resetlogs同步SCN到一个新的值。
bb
flashback database注意事项
flashback database的功能初看似乎挺强大,似乎可以瞬间回到数据库的任意历史点,但其实并非如此。需要注意:
1. 并不是可以回到任意时间点,可以恢复的区间是:数据库有完整flashback log(即所有的tablespace都有flashback log)的最早时间,到当前时间,在此区间中不能出现flashback log 和redo log的中断。
2. 一旦执行了一次flashback database后,必须使用resetlogs来open 数据库,此时flashback log和redo log发生中断,此前的日志全部作废,对介质恢复也有影响。

fj.png1.GIF

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

转载于:http://blog.itpub.net/23810573/viewspace-719176/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值