激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統(tǒng)進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統(tǒng) - Linux - Linux(Unix)中誤刪除的文件恢復方法

Linux(Unix)中誤刪除的文件恢復方法

2019-12-11 16:14Linux教程網(wǎng) Linux

今天有客戶的數(shù)據(jù)庫意外被刪除了整個目錄中的數(shù)據(jù)文件,操作系統(tǒng)級別的刪除,然而幸運的是這個數(shù)據(jù)庫沒有崩潰,仍然處于open狀態(tài)的時候,客戶就發(fā)現(xiàn)了問題,求助到我們,最終完整地恢復了所有數(shù)據(jù)文件

Linux下大致重新演示一下恢復的過程,恢復的步驟與數(shù)據(jù)庫版本沒有太大關系,與操作系統(tǒng)的不同會有所不同。 

1. 在數(shù)據(jù)庫open的時候,直接刪除users表空間中的數(shù)據(jù)文件。 

復制代碼

代碼如下:


SQL> select name from v$datafile; 
NAME 
-------------------------------------------------------------------------------- 
/app/oracle/oradata/ORCL/datafile/o1_mf_system_555wqbnk_.dbf 
/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_555wqxgl_.dbf 
/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_555wr5p6_.dbf 
/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf 
SQL> host rm /app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf 


2. 嘗試在users表空間中創(chuàng)建表,開始報錯。 

復制代碼

代碼如下:


SQL> create table t tablespace users as select * from dual; 
create table t tablespace users as select * from dual 

ERROR at line 1: 
ORA-01116: error in opening database file 4 
ORA-01110: data file 4: 
'/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf' 
ORA-27041: unable to open file 
Linux Error: 2: No such file or directory 
Additional information: 3 


在告警日志中,同樣也可以看到類似信息。 

復制代碼

代碼如下:


Mon Dec 19 21:48:17 CST 2011 
Errors in file /app/oracle/admin/orcl/bdump/orcl_m000_3897.trc: 
ORA-01116: error in opening database file 4 
ORA-01110: data file 4: '/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf' 
ORA-27041: unable to open file 
Linux Error: 2: No such file or directory 
Additional information: 3 


3. 檢查dbwr的進程PID 

復制代碼

代碼如下:


$ ps -ef|grep dbw0|grep -v grep 
oracle 2879 1 0 21:38 ? 00:00:00 ora_dbw0_orcl 


4. dbwr會打開所有數(shù)據(jù)文件的句柄。在proc目錄中可以查到,目錄名是進程PID,fd表示文件描述符。 

復制代碼

代碼如下:


$ cd /proc/2879/fd 
$ ls -l 
total 0 
lr-x------ 1 oracle dba 64 Dec 19 21:50 0 -> /dev/null 
lr-x------ 1 oracle dba 64 Dec 19 21:50 1 -> /dev/null 
lr-x------ 1 oracle dba 64 Dec 19 21:50 10 -> /dev/zero 
lr-x------ 1 oracle dba 64 Dec 19 21:50 11 -> /dev/zero 
lr-x------ 1 oracle dba 64 Dec 19 21:50 12 -> /app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb 
lrwx------ 1 oracle dba 64 Dec 19 21:50 13 -> /app/oracle/product/10.2.0/db_1/dbs/hc_orcl.dat 
lrwx------ 1 oracle dba 64 Dec 19 21:50 14 -> /app/oracle/product/10.2.0/db_1/dbs/lkORCL 
lrwx------ 1 oracle dba 64 Dec 19 21:50 15 -> /app/oracle/oradata/ORCL/controlfile/o1_mf_555wq3ng_.ctl 
lrwx------ 1 oracle dba 64 Dec 19 21:50 16 -> /app/oracle/oradata/ORCL/datafile/o1_mf_system_555wqbnk_.dbf 
lrwx------ 1 oracle dba 64 Dec 19 21:50 17 -> /app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_555wqxgl_.dbf 
lrwx------ 1 oracle dba 64 Dec 19 21:50 18 -> /app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_555wr5p6_.dbf 
lrwx------ 1 oracle dba 64 Dec 19 21:50 19 -> /app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf (deleted) 
lr-x------ 1 oracle dba 64 Dec 19 21:50 2 -> /dev/null 
lrwx------ 1 oracle dba 64 Dec 19 21:50 20 -> /app/oracle/oradata/ORCL/datafile/o1_mf_temp_555wrbnz_.tmp 
lr-x------ 1 oracle dba 64 Dec 19 21:50 21 -> /app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb 
lr-x------ 1 oracle dba 64 Dec 19 21:50 3 -> /dev/null 
lr-x------ 1 oracle dba 64 Dec 19 21:50 4 -> /dev/null 
l-wx------ 1 oracle dba 64 Dec 19 21:50 5 -> /app/oracle/admin/orcl/udump/orcl_ora_2871.trc 
l-wx------ 1 oracle dba 64 Dec 19 21:50 6 -> /app/oracle/admin/orcl/bdump/alert_orcl.log 
lrwx------ 1 oracle dba 64 Dec 19 21:50 7 -> /app/oracle/product/10.2.0/db_1/dbs/lkinstorcl (deleted) 
l-wx------ 1 oracle dba 64 Dec 19 21:50 8 -> /app/oracle/admin/orcl/bdump/alert_orcl.log 
lrwx------ 1 oracle dba 64 Dec 19 21:50 9 -> /app/oracle/product/10.2.0/db_1/dbs/hc_orcl.dat 


注意其中"/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf (deleted)"字樣,表示該文件已經(jīng)被刪除,如果是Solaris操作系統(tǒng),ls命令不會有如此清晰的顯示,為了在Solaris系統(tǒng)中確認哪個句柄對應哪個文件,則需要使用lsof程序。 

5. 直接cp該句柄文件名回原位置。 

復制代碼

代碼如下:


cp 19 /app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf 


6. 進行數(shù)據(jù)文件recover 

復制代碼

代碼如下:


SQL> alter database datafile 4 offline; 
Database altered. 
SQL> recover datafile 4; 
Media recovery complete. 
SQL> alter database datafile 4 online; 
Database altered. 


完成數(shù)據(jù)文件恢復。 

恢復的原理是,在Linux操作系統(tǒng)中,如果文件從操作系統(tǒng)級別被rm掉,之前打開該文件的進程仍然持有相應的文件句柄,所指向的文件仍然可以讀寫,并且該文件的文件描述符可以從/proc目錄中獲得。但是要注意的是,此時如果關閉數(shù)據(jù)庫,則此句柄會消失,那么除了掃描磁盤進行文件恢復之外就沒有其它方法了,因此在數(shù)據(jù)庫出現(xiàn)問題的時候,如果不確認情況的復雜程度,千萬不要隨便關閉數(shù)據(jù)庫。重啟數(shù)據(jù)庫往往是沒有意義的,甚至是致命的。 

當然,客戶的操作系統(tǒng)是Solaris,并且客戶刪除的文件還包括current online redo log,因此還有其它更復雜的操作,不在這里描述。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲卡通动漫在线观看 | 免费久久久久久 | 欧美成人做爰高潮片免费视频 | 最新av网址在线观看 | 日韩欧美精品电影 | 女人a级毛片| 午夜视频导航 | 石原莉奈日韩一区二区三区 | av视在线 | 黄片毛片一级 | 国产成人自拍小视频 | a视频在线播放 | 99精品视频一区二区三区 | 色淫视频| 久久精品中文字幕一区 | 三人弄娇妻高潮3p视频 | avlululu| 法国极品成人h版 | 又黄又爽免费无遮挡在线观看 | 久久精品一二三区 | 亚洲国产精品久久久久久久久 | 欧美一区二区三区成人 | www.7777在线 | 欧美一区2区三区4区公司二百 | 久久爽久久爽久久av东京爽 | 黄色片在线免费播放 | 久久区二区 | 久久久久久久久久久久久久久伊免 | 国产日韩在线观看视频 | 久久精品久久精品国产大片 | 欧美福利视频一区二区 | 午夜影视一区二区 | 国产精品免费看 | 成人性生活视频 | 欧美在线观看视频网站 | 久草在线新时代视觉 | 羞羞的视频免费在线观看 | 黄色一级片免费观看 | 刘亦菲一区二区三区免费看 | 毛片免费在线观看视频 | 欧美日韩一区,二区,三区,久久精品 |