国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Unix > 正文

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

2020-06-13 12:14:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
在Linux下大致重新演示一下恢復(fù)的過(guò)程,恢復(fù)的步驟與數(shù)據(jù)庫(kù)版本沒(méi)有太大關(guān)系,與操作系統(tǒng)的不同會(huì)有所不同。

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

復(fù)制代碼
代碼如下:

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)建表,開(kāi)始報(bào)錯(cuò)。

復(fù)制代碼
代碼如下:

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

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

復(fù)制代碼
代碼如下:

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的進(jìn)程PID

復(fù)制代碼
代碼如下:

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

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

復(fù)制代碼
代碼如下:

$ 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命令不會(huì)有如此清晰的顯示,為了在Solaris系統(tǒng)中確認(rèn)哪個(gè)句柄對(duì)應(yīng)哪個(gè)文件,則需要使用lsof程序。

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

復(fù)制代碼
代碼如下:

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

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

復(fù)制代碼
代碼如下:

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ù)文件恢復(fù)。

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

當(dāng)然,客戶的操作系統(tǒng)是Solaris,并且客戶刪除的文件還包括current online redo log,因此還有其它更復(fù)雜的操作,不在這里描述。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桂阳县| 舞钢市| 东台市| 晋城| 独山县| 日土县| 页游| 伊春市| 洱源县| 钟山县| 井陉县| 光山县| 九龙县| 和田县| 星座| 图木舒克市| 贵港市| 吉隆县| 惠东县| 霍林郭勒市| 西林县| 遂昌县| 沈丘县| 财经| 阜南县| 汝城县| 黄冈市| 广平县| 津市市| 浠水县| 从江县| 奉节县| 广宁县| 海宁市| 萍乡市| 洪洞县| 常德市| 攀枝花市| 化隆| 仁怀市| 来凤县|