使用alter database datafile 'XXX' offline drop 是否能够恢复(非归档模式下)
2012-07-11 16:16
471 查看
今天在群里面听到一位网友在说使用了alterdatabasedatafile'XXX'offlinedrop命令是否能够恢复数据,在非归档模式下,下面是用一个实验来验证一下
SQL>createtablespacetestdatafile'/u01/app/oracle/oradata/orcl/test01.dbf'size10Mautoextendonnext1M;
Tablespacecreated.
SQL>createtabletest(idnumber,namevarchar2(12))tablespacetest;
Tablecreated.
SQL>insertintotestvalues(1,'colin');
1rowcreated.
SQL>insertintotestvalues(2,'janey');
1rowcreated.
SQL>insertintotestvalues(3,'tom');
1rowcreated.
SQL>insertintotestvalues(4,'adele');
1rowcreated.
SQL>commit;
Commitcomplete.
SQL>select*fromtest;
IDNAME
----------------------
1colin
2janey
3tom
4adele
SQL>alterdatabasedatafile'/u01/app/oracle/oradata/orcl/test01.dbf'offlinedrop;
Databasealtered.
SQL>commit;
Commitcomplete.
SQL>select*fromtest;
select*fromtest
*
ERRORatline1:
ORA-00376:file2cannotbereadatthistime
ORA-01110:datafile2:'/u01/app/oracle/oradata/orcl/test01.dbf'
SQL>selectLOG_MODE,OPEN_MODEfromv$database;
LOG_MODEOPEN_MODE
----------------------
NOARCHIVELOGREADWRITE
SQL>alterdatabasedatafile'/u01/app/oracle/oradata/orcl/test01.dbf'online;
alterdatabasedatafile'/u01/app/oracle/oradata/orcl/test01.dbf'online
*
ERRORatline1:
ORA-01113:file2needsmediarecovery
ORA-01110:datafile2:'/u01/app/oracle/oradata/orcl/test01.dbf'
SQL>recoverdatafile'/u01/app/oracle/oradata/orcl/test01.dbf';
Mediarecoverycomplete.
SQL>alterdatabasedatafile'/u01/app/oracle/oradata/orcl/test01.dbf'online;
Databasealtered.
SQL>select*fromtest;
IDNAME
----------------------
1colin
2janey
3tom
4adele
恢复成功。那是因为日志还米有切换,使用了online日志。
切换日志来测试:
SQL>alterdatabasedatafile'/u01/app/oracle/oradata/orcl/test01.dbf'offlinedrop;
Databasealtered.
SQL>select*fromtest;
select*fromtest
*
ERRORatline1:
ORA-00376:file2cannotbereadatthistime
ORA-01110:datafile2:'/u01/app/oracle/oradata/orcl/test01.dbf'
SQL>altersystemswitchlogfile;
Systemaltered.
SQL>/
Systemaltered.
SQL>/
/
Systemaltered.
SQL>
Systemaltered.
SQL>recoverdatafile'/u01/app/oracle/oradata/orcl/test01.dbf';
ORA-00279:change654004generatedat07/09/201221:07:18neededforthread1
ORA-00289:suggestion:/u01/app/oracle/arch/1_32_777559117.arc
ORA-00280:change654004forthread1isinsequence#32
Specifylog:{<RET>=suggested|filename|AUTO|CANCEL}
cancel
Mediarecoverycancelled.
SQL>/
Systemaltered.
SQL>recoverdatafile'/u01/app/oracle/oradata/orcl/test01.dbf';
ORA-00279:change654004generatedat07/09/201221:07:18neededforthread1
ORA-00289:suggestion:/u01/app/oracle/arch/1_32_777559117.arc
ORA-00280:change654004forthread1isinsequence#32
Specifylog:{<RET>=suggested|filename|AUTO|CANCEL}
auto
ORA-00308:cannotopenarchivedlog'/u01/app/oracle/arch/1_32_777559117.arc'
ORA-27037:unabletoobtainfilestatus
LinuxError:2:Nosuchfileordirectory
Additionalinformation:3
ORA-00308:cannotopenarchivedlog'/u01/app/oracle/arch/1_32_777559117.arc'
ORA-27037:unabletoobtainfilestatus
LinuxError:2:Nosuchfileordirectory
Additionalinformation:3
通过以上测试表明,在非归档模式下使用了alterdatabasedatafile'XXX'offlinedrop命令是不能被恢复的,虽然我上面的第一次实验成功了,那是因为online日志还没有切换,在日志中还能够找到相应的反操作。在第二个实验中,手工切换日志,会提示不能打开归档日志,因为我根本就没有归档,肯定找不到啊,所以不能够恢复的。切记,在非归档模型下不要随意使用一些drop命令,在实际生产环境中日志的切换是很频繁且快的,否则只有掏钱找oracle了。当然,如果在业务不繁忙的系统可以及时的通过online日志进行恢复,这种几率比较小。
相关文章推荐
- 使用alter database datafile 'XXX' offline drop 是否能够恢复(非归档模式下)
- alter database datafile '' offline drop以后的恢复
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- 使用alter database create datafile恢复丢失数据文件
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- alter database datafile 'file_name' offline drop alter tablespace users drop datafile '' 区别
- alter database datafile 'f:\rmidx_data\data04.dbf' offline drop;
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- alter database datafile offline drop 与 alter tablespace drop datafile 区别 .
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- alter database datafile offline drop 与 alter tablespace drop datafile 区别
- 对使用"ALTER DATABASE BACKUP CONTROLFILE TO ''" 备份的控制文件的恢
- alter database datafile offline drop 和 alter tablespace drop datafile 的区别
- rman datafile恢复(归档模式)
- RMAN恢复报错: ORA-01103: database name 'POWERDES' in control file is not 'PDUNQ'
- 使用alter tablespace create datafile恢复丢失的数据文件
- 关于ImageIO: CGImageRead_mapData 'open' failed ' XXX error = 2 (No such file or directory)问题
- ALTER DATABASE Datafile与ALTER TABLESPACE OFFLINE的区别