麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Unix > 正文

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

2020-07-10 11:53:08
字體:
來源:轉載
供稿:網友
在Linux下大致重新演示一下恢復的過程,恢復的步驟與數據庫版本沒有太大關系,與操作系統的不同會有所不同。

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

復制代碼
代碼如下:

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表空間中創建表,開始報錯。

復制代碼
代碼如下:

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會打開所有數據文件的句柄。在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)"字樣,表示該文件已經被刪除,如果是Solaris操作系統,ls命令不會有如此清晰的顯示,為了在Solaris系統中確認哪個句柄對應哪個文件,則需要使用lsof程序。

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

復制代碼
代碼如下:

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

6. 進行數據文件recover

復制代碼
代碼如下:

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

完成數據文件恢復。

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

當然,客戶的操作系統是Solaris,并且客戶刪除的文件還包括current online redo log,因此還有其它更復雜的操作,不在這里描述。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久综合久久美利坚合众国 | 永久在线观看电影 | 国产影院在线观看 | 久久精品亚洲精品国产欧美kt∨ | 在线中文字幕网站 | 羞羞的视频在线观看 | 亚洲午夜免费电影 | 欧美电影在线观看 | 91午夜视频 | 午夜看毛片 | 性看小视频 | 日韩av在线播放一区 | 亚洲人片在线观看 | 日韩中文字幕三区 | 精品国产一区二区三区四区阿崩 | 91色综合综合热五月激情 | 国产成人综合在线视频 | 天天操天天看 | 久久精品日产第一区二区三区 | 国产成人精品免高潮在线观看 | 日本在线观看高清完整版 | 日日狠狠久久偷偷四色综合免费 | 亚洲网在线观看 | 一道本不卡一区 | a视频网站 | 无码专区aaaaaa免费视频 | 久久精品一区二区三区不卡牛牛 | 五月激情久久 | 国产一区二区三区在线观看视频 | 免费在线观看毛片视频 | 国产一级一片免费播放 | 97久久精品一区二区三区观看 | 黄污污网站 | 欧美不卡 | 亚洲免费视 | 亚洲一二区视频 | 久久一区二区三区av | 国产人成精品一区二区三 | 一本色道久久99精品综合蜜臀 | 亚洲影视在线 | 日本中文字幕网址 |