linux(UNIX)中的文件恢复方法

linux(UNIX)中的文件恢复方法
点评:客户数据库今天无意中删除了目录数据文件,删除了操作系统级别,幸好数据库没有崩溃,仍然处于打开状态,客户发现了问题,我们转到最后,完全恢复了所有的数据文件。

恢复过程大致在Linux下重新演示。恢复步骤与数据库版本不太相关,与操作系统不同。

1。在数据库打开时,用户表空间中的数据文件直接删除。

复制代码代码如下所示:
已选择的名字从V$DATAFILE;
名称
--------------------------------------------------------------------------------
/ / / Oracle应用程序oradata / / / o1_mf_system_555wqbnk_ Oracle数据文件,数据库
/ / / Oracle应用程序oradata / / / o1_mf_undotbs1_555wqxgl_ Oracle数据文件,数据库
/ / / Oracle应用程序oradata / / / o1_mf_sysaux_555wr5p6_ Oracle数据文件,数据库
/ / / Oracle应用程序oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件,数据库
SQL >主机RM /应用/甲骨文/ oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件,数据库

2。尝试在用户表空间中创建一个表,并开始犯错误。

复制代码代码如下所示:
从两个选项中创建表t表空间用户;
创建表T表空间用户作为选择*从双
*
第1行错误:
ora-01116:打开数据库文件4错误
ora-01110:数据文件4:
/应用程序/甲骨文/ oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件DBF。
ora-27041:无法打开文件
Linux错误:2:没有这样的文件或目录
补充资料:3

在告警日志中,也可以看到类似的信息。

复制代码代码如下所示:
12月19日星期21:48:17 CST 2011
错误的文件 / / /管理Oracle应用程序 / / / orcl_m000_3897.trc BDUMP orcl:
ora-01116:打开数据库文件4错误
ora-01110:数据文件4: / / / Oracle应用程序oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件DBF。
ora-27041:无法打开文件
Linux错误:2:没有这样的文件或目录
补充资料:3

三.检查DBWR进程的PID

复制代码代码如下所示:
PS - EF |美元| grep -v grep grep data files
Oracle 287910 ora_dbw0_orcl 21:38 00:00:00

4。DBWR将开放所有数据文件的处理,可以在程序目录中,目录名是过程PID和FD表示文件描述符。

复制代码代码如下所示:
2879
美元- L
总0
lr-x ------ 1 Oracle DBA 64 12月19日21:50 0 / dev /空
lr-x ------ 1 Oracle DBA 64 12月19日21:50 1 / dev /空
lr-x ------ 1 Oracle DBA 64 12月19日/ dev /零10 21:50
lr-x ------ 1 Oracle DBA 64 12月19日21:50 11 / dev /零
lr-x ------ 1 Oracle DBA 64 12月19日21:50 12 / / /甲骨文应用产品 / / / 10.2.0 db_1 RDBMS / / oraus.msb MESG
lrwx ------ 1 Oracle DBA 64 12月19日21:50 13 / / /甲骨文应用产品 / / / 10.2.0 db_1 DBS / hc_orcl.dat
lrwx ------ 1 Oracle DBA 64 12月19日21:50 14 / / /甲骨文应用产品 / / / 10.2.0 db_1 DBS / lkorcl
lrwx ------ 1 Oracle DBA 64 12月19日21:50 15 / / / Oracle应用程序oradata / / / o1_mf_555wq3ng_ Oracle控制文件。CTL
lrwx ------ 1 Oracle DBA 64 12月19日21:50 16 / / / Oracle应用程序oradata / / / o1_mf_system_555wqbnk_ Oracle数据文件,数据库
lrwx ------ 1 Oracle DBA 64 12月19日21:50 17 / / / Oracle应用程序oradata / / / o1_mf_undotbs1_555wqxgl_ Oracle数据文件,数据库
lrwx ------ 1 Oracle DBA 64 12月19日/应用/甲骨文/ oradata / / / o1_mf_sysaux_555wr5p6_ Oracle数据文件。DBF 18 21:50
lrwx ------ 1 Oracle DBA 64 12月19日21:50 19 / / / Oracle应用程序oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件DBF(删除)。
lr-x ------ 1 Oracle DBA 64 12月19日21:50 2 / dev /空
lrwx ------ 1 Oracle DBA 64 12月19日/应用/甲骨文/ oradata / / / o1_mf_temp_555wrbnz_ Oracle数据文件。TMP 20 21:50
lr-x ------ 1 Oracle DBA 64 12月19日/应用/甲骨文/产品 / / / 10.2.0 db_1 RDBMS / / oraus.msb MESG 21 21:50
lr-x ------ 1 Oracle DBA 64 12月19日21:50 3 / dev /空
lr-x ------ 1 Oracle DBA 64 12月19日21:50 4 / dev /空
l-wx ------ 1 Oracle DBA 12月19日64 / / /管理Oracle应用程序 / / / orcl_ora_2871.trc公司非格式化转储5 21:50
l-wx ------ 1 Oracle DBA 12月19日64 / / /管理Oracle应用程序 / / / alert_orcl.log BDUMP Oracle 6 21:50
lrwx ------ 1 Oracle DBA 64 12月19日21:50 7 / / /甲骨文应用产品 / / / 10.2.0 db_1 DBS / lkinstorcl(删除)
l-wx ------ 1 Oracle DBA 12月19日64 / / /管理Oracle应用程序 / / / alert_orcl.log BDUMP Oracle 8 21:50
lrwx ------ 1 Oracle DBA 64 12月19日21:50 9 / / /甲骨文应用产品 / / / 10.2.0 db_1 DBS / hc_orcl.dat

注意 / / / Oracle应用程序oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件。DBF(删除)

5。直接将句柄文件名返回到原来的位置。

复制代码代码如下所示:
CP 19 /应用/甲骨文/ oradata / / / o1_mf_users_555wrj4o_ Oracle数据文件,数据库

6。实现数据文件恢复

复制代码代码如下所示:
SQL数据库的数据文件脱机> 4;
数据库已更改。
SQL >恢复数据文件4;
媒体恢复完成。
SQL数据库数据文件4在线>;
数据库已更改。

完成数据文件的恢复。

其原理是恢复,在Linux操作系统中,如果从操作系统级的文件是RM,在过程中仍然持有相应的文件处理,打开文件,文件仍然可以读写,和文件描述符可以从 /proc目录获得。但要注意,如果数据库关闭,手柄会消失,那么除了扫描磁盘文件恢复是没有其他的方法,所以在数据库出现问题时,如果没有复杂的确认,不关闭数据库,重新启动数据库往往是毫无意义的,甚至是致命的。

当然,客户机的操作系统是Solaris,客户删除的文件包括当前联机重做日志,所以还有其他更复杂的操作,这里没有描述。

tag:方法文件恢复电脑软件LinuxUNIX

相关内容