1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 误操作删除数据文件恢复案例讨论

误操作删除数据文件恢复案例讨论

时间:2019-08-19 02:20:20

相关推荐

误操作删除数据文件恢复案例讨论

一、实验说明:

本文转载EYGLE的《数据安全警示录》中的一个案例,也有在itpub上发表过/thread-1721724-1-1.html,在这里只是做一个模拟,并记录一下!

操作系统:rhel 5.4 x32

数据库:oracle 11g r2

二、实验操作:

在UNIX、Linux系统中,误删除数据文件后,虽然该文件已从操作系统中删除,但是其文件句柄仍由数据库进行打开持有,所以在数据库层面仍然不会释放其链表信息,因而也就能够从进程的地址信息中,通过复制将其直接恢复。但是请注意,这要求数据库不能中途关闭,如果关闭了数据库,则所有文件句柄被释放,文件就真的难以回归了。

----首先创建一个环境----SQL>createtablespacejackdatafile'/u01/app/oracle/oradata/yft/jack01.dbf'size50m;Tablespacecreated.SQL>createuserechoidentifiedbyechodefaulttablespacejack;Usercreated.SQL>grantresource,connecttoecho;Grantsucceeded.SQL>createtableecho.tab(domianvarchar2(100))tablespacejack;Tablecreated.SQL>insertintoecho.tabvalues('');1rowcreated.SQL>commit;Commitcomplete.----在这里删除数据文件,告警日志没有报错----[oracle@yft~]$rm/u01/app/oracle/oradata/yft/jack01.dbf----查看一下句柄----[oracle@yft~]$ps-ef|grepdbw|grep-vgreporacle39111007:10?00:00:01ora_dbw0_yft[oracle@yft~]$ll/proc/3911/fdtotal0lr-x------1oracleoinstall64Jan1008:140->/dev/nulll-wx------1oracleoinstall64Jan1008:141->/dev/nulll-wx------1oracleoinstall64Jan1008:1410->/u01/app/oracle/diag/rdbms/yft/yft/trace/yft_ora_3855.trcl-wx------1oracleoinstall64Jan1008:1411->/u01/app/oracle/diag/rdbms/yft/yft/trace/yft_ora_3855.trmlr-x------1oracleoinstall64Jan1008:1412->/u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/oraus.msblr-x------1oracleoinstall64Jan1008:1413->/dev/zerolr-x------1oracleoinstall64Jan1008:1414->/proc/3911/fdlr-x------1oracleoinstall64Jan1008:1415->/dev/zerolrwx------1oracleoinstall64Jan1008:1416->/u01/app/oracle/product/11.2.0/db_1/dbs/hc_yft.datlrwx------1oracleoinstall64Jan1008:1417->/u01/app/oracle/product/11.2.0/db_1/dbs/lkYFTlrwx------1oracleoinstall64Jan1008:1418->/u01/app/oracle/oradata/yft/control01.ctllrwx------1oracleoinstall64Jan1008:1419->/u01/app/oracle/flash_recovery_area/yft/control02.ctll-wx------1oracleoinstall64Jan1008:142->/dev/nulllrwx------1oracleoinstall64Jan1008:1420->/u01/app/oracle/oradata/yft/jack01.dbf(deleted)lrwx------1oracleoinstall64Jan1008:1422->socket:[13943]----直接把数据文件拷贝回来----[oracle@yft~]$cp/proc/3911/fd/20/u01/app/oracle/oradata/yft/jack01.dbf[oracle@yft~]$ll/u01/app/oracle/oradata/yft/total2698480-rw-r-----1oracleoinstall9879552Jan1008:28control01.ctl-rw-r-----1oracleoinstall9748480Jan919:42control01.ctl.bak-rw-r-----1oracleoinstall104865792Jan1008:22example01.dbf-rw-r-----1oracleoinstall52436992Jan1008:27jack01.dbf-rw-r-----1oracleoinstall52429312Jan1008:27redo01.log-rw-r-----1oracleoinstall52429312Jan1007:16redo02.log-rw-r-----1oracleoinstall52429312Jan1007:16redo03.log-rw-r-----1oracleoinstall513810432Jan1008:22sysaux01.dbf-rw-r-----1oracleoinstall713039872Jan1008:27system01.dbf-rw-r-----1oracleoinstall30416896Jan1008:22temp01.dbf-rw-r-----1oracleoinstall99622912Jan1008:27undotbs01.dbf-rw-r-----1oracleoinstall5251072Jan1008:22users01.dbf-rw-r-----1oracleoinstall1073750016Jan1008:22yft01.dbf

如果我在删除之后使用alter system checkpoint之后就有可能恢复不过来。

----在拷贝之前,数据库checkpoint了一下----SQL>altersystemcheckpoint;Systemaltered.----告警日志中的错误----ThuJan1008:35:08Errorsinfile/u01/app/oracle/diag/rdbms/yft/yft/trace/yft_ckpt_3915.trc:ORA-01171:datafile7goingofflineduetoerroradvancingcheckpointORA-01116:errorinopeningdatabasefile7ORA-01110:datafile7:'/u01/app/oracle/oradata/yft/jack01.dbf'ORA-27041:unabletoopenfileLinuxError:2:NosuchfileordirectoryAdditionalinformation:3----查询不到数据,并报错----SQL>select*fromecho.tab;select*fromecho.tab*ERRORatline1:ORA-00376:file7cannotbereadatthistimeORA-01110:datafile7:'/u01/app/oracle/oradata/yft/jack01.dbf'----句柄已经消失----[oracle@yft~]$ll/proc/3911/fdtotal0lr-x------1oracleoinstall64Jan1008:140->/dev/nulll-wx------1oracleoinstall64Jan1008:141->/dev/nulll-wx------1oracleoinstall64Jan1008:1410->/u01/app/oracle/diag/rdbms/yft/yft/trace/yft_ora_3855.trcl-wx------1oracleoinstall64Jan1008:1411->/u01/app/oracle/diag/rdbms/yft/yft/trace/yft_ora_3855.trmlr-x------1oracleoinstall64Jan1008:1412->/u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/oraus.msblr-x------1oracleoinstall64Jan1008:1413->/dev/zerolr-x------1oracleoinstall64Jan1008:1414->/proc/3911/fdlr-x------1oracleoinstall64Jan1008:1415->/dev/zerolrwx------1oracleoinstall64Jan1008:1416->/u01/app/oracle/product/11.2.0/db_1/dbs/hc_yft.datlrwx------1oracleoinstall64Jan1008:1417->/u01/app/oracle/product/11.2.0/db_1/dbs/lkYFTlrwx------1oracleoinstall64Jan1008:1418->/u01/app/oracle/oradata/yft/control01.ctllrwx------1oracleoinstall64Jan1008:1419->/u01/app/oracle/flash_recovery_area/yft/control02.ctll-wx------1oracleoinstall64Jan1008:142->/dev/nulllrwx------1oracleoinstall64Jan1008:1422->socket:[13943]lrwx------1oracleoinstall64Jan1008:1423->/u01/app/oracle/oradata/yft/system01.dbflrwx------1oracleoinstall64Jan1008:1424->/u01/app/oracle/oradata/yft/sysaux01.dbflrwx------1oracleoinstall64Jan1008:1425->/u01/app/oracle/oradata/yft/undotbs01.dbflrwx------1oracleoinstall64Jan1008:1426->/u01/app/oracle/oradata/yft/users01.dbflrwx------1oracleoinstall64Jan1008:1427->/u01/app/oracle/oradata/yft/example01.dbflrwx------1oracleoinstall64Jan1008:1428->/u01/app/oracle/oradata/yft/yft01.dbflrwx------1oracleoinstall64Jan1008:1429->/u01/app/oracle/oradata/yft/temp01.dbfl-wx------1oracleoinstall64Jan1008:143->/u01/app/oracle/product/11.2.0/db_1/rdbms/log/yft_ora_3855.trclr-x------1oracleoinstall64Jan1008:1430->/u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/oraus.msblr-x------1oracleoinstall64Jan1008:144->/dev/nulllr-x------1oracleoinstall64Jan1008:145->/dev/nulllr-x------1oracleoinstall64Jan1008:146->/dev/nulllrwx------1oracleoinstall64Jan1008:147->/u01/app/oracle/product/11.2.0/db_1/dbs/hc_yft.datlrwx------1oracleoinstall64Jan1008:148->/u01/app/oracle/product/11.2.0/db_1/dbs/lkinstyft(deleted)lr-x------1oracleoinstall64Jan1008:149->/proc/3911/fd

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。