Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1. 我们先做一个全备RMAN> backup database ;Starting backup at 2015/07/09 13:40:47allocated channel: ORA_DISK_
千家信息网最后更新 2026年11月01日Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复
1. 我们先做一个全备
RMAN> backup database ;Starting backup at 2015/07/09 13:40:47allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=28 device type=DISKchannel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/09 13:40:48channel ORA_DISK_1: finished piece 1 at 2015/07/09 13:42:34piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkp tag=TAG20150709T134048 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:01:46channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 2015/07/09 13:42:35channel ORA_DISK_1: finished piece 1 at 2015/07/09 13:42:36piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_ncsnf_TAG20150709T134048_bsw2gcly_.bkp tag=TAG20150709T134048 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/09 13:42:36
2. 创建一个表,往里面插入一些数据。记录下时间,等待一会再将表truncate。
SQL> alter user scott account unlock;User altered.SQL> alter user scott identified by tiger;User altered.SQL> conn scott/tigerConnected.SQL> select sysdate from dual;SYSDATE-------------------2015/07/09 13:44:30SQL> create table t1 as select * from emp;Table created.SQL> select sysdate from dual;SYSDATE-------------------2015/07/09 13:45:32SQL> truncate table t1;Table truncated.
在2015/07/09 13:45:32以前,表t1中有14条数据。之后做了truncate。我们现在来看看能不能将数据库恢复到2015/07/09 13:45:32这一时刻。也就是t1被truncate掉之前。
3. 关闭数据库,再启动到mount状态
SQL> conn / as sysdbaConnected.SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 839282688 bytesFixed Size 2233000 bytesVariable Size 494931288 bytesDatabase Buffers 339738624 bytesRedo Buffers 2379776 bytesDatabase mounted.
4. 恢复数据库
RMAN> RUN { ALLOCATE CHANNEL c1 TYPE DISK; ALLOCATE CHANNEL c2 TYPE DISK; SET UNTIL TIME = '2015/07/09 13:45:32'; RESTORE DATABASE; RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; }2> 3> 4> 5> 6> 7> 8> using target database control file instead of recovery catalogallocated channel: c1channel c1: SID=20 device type=DISKallocated channel: c2channel c2: SID=21 device type=DISKexecuting command: SET until clauseStarting restore at 2015/07/09 13:50:59channel c1: starting datafile backup set restorechannel c1: specifying datafile(s) to restore from backup setchannel c1: restoring datafile 00001 to /u01/app/oracle/oradata/devdb/system01.dbfchannel c1: restoring datafile 00002 to /u01/app/oracle/oradata/devdb/sysaux01.dbfchannel c1: restoring datafile 00003 to /u01/app/oracle/oradata/devdb/undotbs01.dbfchannel c1: restoring datafile 00004 to /u01/app/oracle/oradata/devdb/users01.dbfchannel c1: restoring datafile 00005 to /u01/app/oracle/oradata/devdb/example01.dbfchannel c1: reading from backup piece /u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkpchannel c1: piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkp tag=TAG20150709T134048channel c1: restored backup piece 1channel c1: restore complete, elapsed time: 00:01:15Finished restore at 2015/07/09 13:52:14Starting recover at 2015/07/09 13:52:15starting media recoverymedia recovery complete, elapsed time: 00:00:01Finished recover at 2015/07/09 13:52:16database openedreleased channel: c1released channel: c25. 验证数据是否存在。
SQL> conn scott/tiger Connected.SQL> select count(*) from t1; COUNT(*)---------- 14SQL>
可见数据已经找回。
基于时间点的恢复,是不完全恢复的一种,我们还可以基于SCN和日志sequence恢复。
UNTIL SEQUENCE or UNTIL SCN
数据
数据库
时间
也就是
日志
时刻
状态
全备
验证
实战
习之
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技有限公司
重庆互联网络科技
中国 科技 互联网
有木互联网科技
撒么互联网科技公司
互联网时代科技改变生活
和信科技工业互联网
成都互联网科技公司工作好不好
深圳市优智互联网科技有限公司
健康食品互联网创新科技园项目
内蒙古九一互联网科技
互联网科技创新的路径
山东星卡互联网科技有限公司官网
领航科技大厦互联网公司
有人说阿里系是互联网科技企业
35岁以上互联网科技行业
艺电能源互联网科技有限公司招聘
北京天晋互联网科技有限公司
互联网科技大佬云集
互联网科技企业文化
互联网科技园
北京路客互联网科技有限公司
金融科技 互联网金融
善班互联网科技
互联网科技创新服务
允成互联网科技有限公司融资
全球科技与互联网公司市值变化
青岛易易互联网科技
互联网领先科技成果宣传视频
科技互联网企业在行动