Oracle数据库RMAN不完全恢复之基于时间恢复的相关知识是本文我们主要要介绍的内容,需要注意的是RMAN不完全恢复只适用于archivelog模式,只能在mount状态下完成。基于时间恢复是指当出现用户错误(例如误删除表、误截断表)时,恢复到指定时间点的恢复。
示例:
模拟误截断表t_user。
在终端设置环境变量nls_date_format指定日期时间格式。
执行RMAN,启动数据库到mount状态。
使用set until time命令指定要恢复到的时间点。
转储、恢复数据库,并使用resetlogs选项打开数据库。
--模拟误截断表t_user。
class="dp-xml">
- SQL> host date
- 2011年 08月 29日 星期一 21:01:29 CST
- SQL> truncate table t_user;
- Table truncated.
--在终端设置环境变量nls_date_format指定日期时间格式。
- [oracle@localhost ~]$ export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
--恢复
- [oracle@localhost ~]$ RMAN target sys/oracle@oralife nocatalog
- RMAN> run {
- 2> startup force mount;
- 3> set until time='2011-08-29 21:01:00';
- 4> restore database;
- 5> recover database;
- 6> sql 'alter database open resetlogs';
- 7> }
--已恢复
- SQL> conn sys/oracle@oralife as sysdba
- Connected.
- SQL> select count(*) from t_user;
- COUNT(*)
- ----------
- 2
在实际环境下,应该使用LogMiner确定误操作时间点。
在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。如:
- run {
- delete noprompt backup;
- delete noprompt copy;
- backup database format='/oracle/10g/oracle/RMAN/%d_%s.dbf';
- sql 'alter system archive log current';
- }
以上就是Oracle数据库RMAN不完全恢复之基于时间恢复的实例的全部内容,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!