当前位置: 首页 > Linux

OS层面(LINUX)删除数据文件后的恢复方法:

时间:2023-04-07 03:10:17 Linux

本次删除数据文件后,请不要重启或关闭数据库,可以直接在线恢复。测试方法:先从数据库中查看数据库数据文件的文件号和路径:SQL>selectFILE#,namefromv$datafile;文件名----------------------------------------------------------1/u01/app/oracle/oradata/coffexiang/system01.dbf2/u01/app/oracle/oradata/coffexiang/tbs1_1.dbf3/u01/app/oracle/oradata/coffexiang/sysaux01??.dbf4/u01/app/oracle/oradata/coffexiang/undotbs01.dbf5/u01/app/oracle/oradata/coffexiang/example01.dbf6/u01/app/oracle/oradata/coffexiang/users01.dbf7/u01/app/oracle/oradata/coffexiang/undotbs1.dbf8/u01/app/oracle/oradata/coffexiang/tbs1_2.dbfSQL>从v$表空间中选择*;TS#NAMEINCBIGFLAENCCON_ID------------------------------------------------------------1SYSAUX是否是00系统是否是02UNDOTBS1是否是04USERSYESNOYES03TEMPNONOYES06EXAMPLEYESNOYES09TBS1YESNOYES0SQL>selecttablespace_name,statusfromdba_tablespaces;TABLESPACE_NAMESTATUS--------------------------------SYSTEMONLINESYSAUXONLINEUNDOTBS1ONLINETEMPONLINEUSERSONLINEEXAMPLEONLINETBS1ONLINE删除表空间TBS1的数据文件[oracle@xiang66~]$cd/u01/app/oracle/oradata/coffexiang/[oracle@xiang66coffexiang]$rmtbs1_1.dbftbs1_2.dbf建表测试,显示失败:SQL>createtablexiang1.tbs1asselect*fromscott.emp;createtablexiang1.tbs1asselect*fromscott.emp*错误位于line1:ORA-01116:errorinopeningdatabasefile2ORA-01110:datafile2:'/u01/app/oracle/oradata/coffexiang/tbs1_1.dbf'ORA-27041:unabletoopenfileLinux-x86_64错误:2:NosuchfileordirectoryAdditionalinformation:3然后我们通过dbw进程找到spid号,通过/proc/'spid号'/fd路径找到被删除的数据文件--找到spid号[oracle@xiang66coffexiang]$ps-ef|grepdbw|grep-vgreporacle64711007:52?00:00:00ora_dbw0_coffexiang[oracle@xiang66fd]$ll/proc/6471/fdtotal0lr-x------。1oracleoinstall64Jan1308:080->/dev/nulll-wx------。1oracleoinstall64Jan1308:081->/dev/nulllr-x------。1oracleoinstall64Jan1308:0810->/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/mesg/oraus.msbl-wx------。1oracleoinstall64Jan1308:082->/dev/nulllrwx------。1oracleoinstall64Jan1308:08256->/u01/app/oracle/oradata/coffexiang/control01.ctllrwx------。1oracleoinstall64Jan1308:08257->/u01/app/oracle/oradata/coffexiang/control02.ctllrwx------。1oracleoinstall64Jan1308:08258->/u01/app/oracle/oradata/coffexiang/system01.dbflrwx------。1oracleoinstall64Jan1308:08259->/u01/app/oracle/oradata/coffexiang/tbs1_1.dbf(已删除)lrwx------。1oracleoinstall64Jan1308:08260->/u01/app/oracle/oradata/coffexiang/sysaux01??.dbflrwx------。1oracleoinstall64Jan1308:08261->/u01/app/oracle/oradata/coffexiang/undotbs01.dbflrwx------。1oracleoinstall64Jan1308:08262->/u01/app/oracle/oradata/coffexiang/example01.dbflrwx------。1oracleoinstall64Jan1308:08263->/u01/app/oracle/oradata/coffexiang/users01.dbflrwx------。1oracleoinstall64Jan1308:08264->/u01/app/oracle/oradata/coffexiang/undotbs1.dbflrwx------。1oracleoinstall64Jan1308:08265->/u01/app/oracle/oradata/coffexiang/temp01.dbflrwx------。1oracleoinstall64Jan1308:08266->/u01/app/oracle/oradata/coffexiang/tbs1_2.dbf(已删除)lr-x------.1oracleoinstall64Jan1308:083->/dev/nulllr-x------。1oracleoinstall64Jan1308:084->/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/mesg/oraus.msblr-x------。1oracleoinstall64Jan1308:085->/proc/6471/fdlrwx------。1oracleoinstall64Jan1308:086->/u01/app/oracle/product/12.1.0/dbhome_1/dbs/hc_coffexiang.datlrwx------。1oracleoinstall64Jan1308:089->/u01/app/oracle/product/12.1.0/dbhome_1/dbs/lkCOFFEXIANG然后找到删除的数据文件恢复到原路径:[oracle@xiang66fd]$cp259/u01/app/oracle/oradata/coffexiang/tbs1_1.dbf[oracle@xiang66fd]$[oracle@xiang66fd]$cp266/u01/app/oracle/oradata/coffexiang/tbs1_2.dbf[oracle@xiang66fd]$离线数据文件恢复后,执行onlineSQL>alterdatabasedatafile2offline;Databasealtered.SQL>alterdatabasedatafile8offline;Databasealtered.SQL>recoverdatafile2;Mediarecoverycomplete.SQL>recoverdatafile8;介质恢复完成。SQL>alterdatabasedatafile2onlinene;Databasealtered.SQL>alterdatabasedatafile8online;Databasealtered.测试并创建相关表:SQL>createtablexiang1.tbs1asselect*fromscott.emp;Tablecreated。至此恢复完成

最新推荐
猜你喜欢