数据库启用了回闪时恢复删除了用户
rman>shutdown rman>startup mount; rman>alter database flashback on; rman>alter database open;
于 2012-02-24 15:25:08删除用户test
drop user test cascade;
使用回闪恢复数据库
rman>shutdown rman>startup mount;
使用回闪语句
RMAN> flashback database to time "to_date('2012-02-24 15:24:00','yyyy-mm-dd hh24 :mi:ss')"; RMAN> alter database open resetlogs; 数据库已打开 在归档模式下recover database是将数据库恢复到它可以恢复到出现介质故障的时间点,并会应用到这一时间的所有重做日志文件. -------------- 有完全备份和归档重做日志时恢复删除了用户
RMAN> backup database; 启动 backup 于 2012-02-24 16:36:19 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA01.DBF 输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA02.DBF 输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF 输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSAUX01.DBF 输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\UNDOTBS01.DBF 通道 ORA_DISK_1: 正在启动段 1 于 2012-02-24 16:36:20 通道 ORA_DISK_1: 已完成段 1 于 2012-02-24 16:51:05 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_24\O1_ MF_NNNDF_TAG20120224T163620_7NGM04K2_.BKP 标记=TAG20120224T163620 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:14:45 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 备份集中包括当前控制文件 在备份集中包含当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 2012-02-24 16:51:07 通道 ORA_DISK_1: 已完成段 1 于 2012-02-24 16:51:08 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_24\O1_ MF_NCSNF_TAG20120224T163620_7NGMVVNJ_.BKP 标记=TAG20120224T163620 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03 完成 backup 于 2012-02-24 16:51:08
于 2012-02-24 16:54:08删除用户test
drop user test cascade;
使用不完全恢复恢复数据库
rman>shutdown rman>startup nomount; rman>restore controlfile to 'D:\oracle\product\10.2.0\oradata\ocp\control01.ctl'; rman>startup mount; rman>restore database; rman>recover database until time '2012-02-24 16:53:00'; rman>alter database open resetlogs;
另一种写法是
RMAN> run 2> { 3> set until time '2012-02-24 16:52:30'; 4> restore database; 5> recover database; 6> } 正在执行命令: SET until clause 启动 restore 于 2012-02-24 17:20:36 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始恢复数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件 正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF 正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\UNDOTBS01.DBF 正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSAUX01.DBF 正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA01.DBF 正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA02.DBF 通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP \BACKUPSET\2012_02_24\O1_MF_NNNDF_TAG20120224T163620_7NGM04K2_.BKP 通道 ORA_DISK_1: 已恢复备份段 1 段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_24\O 1_MF_NNNDF_TAG20120224T163620_7NGM04K2_.BKP 标记 = TAG20120224T163620 通道 ORA_DISK_1: 恢复完成, 用时: 00:11:57 完成 restore 于 2012-02-24 17:32:38 启动 recover 于 2012-02-24 17:32:49 使用通道 ORA_DISK_1 正在开始介质的恢复 介质恢复完成, 用时: 00:00:15 完成 recover 于 2012-02-24 17:34:42 RMAN> alter database open resetlogs; 数据库已打开
在非归档模式下不完全恢复
RMAN> backup database; 启动 backup 于 2012-02-25 10:11:09 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA01.DBF 输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA02.DBF 输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF 输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\UNDOTBS01.DBF 输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSAUX01.DBF 通道 ORA_DISK_1: 正在启动段 1 于 2012-02-25 10:11:11 通道 ORA_DISK_1: 已完成段 1 于 2012-02-25 10:26:26 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_25\O1_ MF_NNNDF_TAG20120225T101110_7NJJSZL2_.BKP 标记=TAG20120225T101110 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:15:15 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 备份集中包括当前控制文件 在备份集中包含当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 2012-02-25 10:26:28 通道 ORA_DISK_1: 已完成段 1 于 2012-02-25 10:26:29 段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_25\O1_ MF_NCSNF_TAG20120225T101110_7NJKPNL2_.BKP 标记=TAG20120225T101110 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03 完成 backup 于 2012-02-25 10:26:29 RMAN> alter database open; 数据库已打开
于 2012-02-25 11:01:29 删除test用户
rman>shutdown; rman>startup mount; RMAN> restore database; 启动 restore 于 2012-02-25 11:11:20 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始恢复数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件 正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF 正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\UNDOTBS01.DBF 正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSAUX01.DBF 正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA01.DBF 正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\HYGEIA02.DBF 通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP \BACKUPSET\2012_02_25\O1_MF_NNNDF_TAG20120225T101110_7NJJSZL2_.BKP 通道 ORA_DISK_1: 已恢复备份段 1 段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OCP\BACKUPSET\2012_02_25\O 1_MF_NNNDF_TAG20120225T101110_7NJJSZL2_.BKP 标记 = TAG20120225T101110 通道 ORA_DISK_1: 恢复完成, 用时: 00:12:15 完成 restore 于 2012-02-25 11:23:36 RMAN> recover database until time '2012-02-25 10:30:00'; 启动 recover 于 2012-02-25 11:25:16 使用通道 ORA_DISK_1 正在开始介质的恢复 介质恢复完成, 用时: 00:00:03 完成 recover 于 2012-02-25 11:25:31 RMAN> alter database open resetlogs; 数据库已打开
在执行alter database open resetlogs如果报
ORA-01190: 控制文件或数据文件 4 来自最后一个 RESETLOGS 之前
ORA-01110: 数据文件 4: ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF’
可以设置初始化参数_allow_resetlogs_corruption=true这个参数是允许控制文件与数据文件的scn不一至情况下启动数据库 _allow_terminal_recovery_corruption=ture 允许恢复错误
再执行alter database open resetlogs如果还是报错
CREATE CONTROLFILE set Database op Resetlogs MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'C:\oracle\product\10.2.0\oradata\op\RED001.LOG'SIZE 50M, GROUP 2 'C:\oracle\product\10.2.0\oradata\op\RED002.LOG'SIZE 50M, GROUP 3 'C:\oracle\product\10.2.0\oradata\opRED003.LOG'SIZE 50M DATAFILE 'D:\oradata\SYSTEM01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\UNDOTBS01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\SYSAUX01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\USERS01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\EXAMPLE01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\HYGEIA01.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\HYGEIA02.DBF',--要恢复的数据所在的dbf文件 'D:\oradata\HYGEIA03.DBF'--要恢复的数据所在的dbf文件 CHARACTER SET ZHS16GBK
再执行
alter database open resetlogs;
重新创建临时表空间
查看恢复后结果