linux怎么恢复rm误删的数据

具体如下:1.使用恢复工具在Linux上,有许多恢复工具可用于恢复rm意外删除的文件。
您还可以使用LVM(逻辑卷管理)恢复数据。
2、使用TestDisk工具TestDisk是一个功能强大的数据恢复工具,可以用来恢复被rm误删除的文件。
它可以检测您的硬盘分区表、恢复丢失的分区、修复损坏的硬盘以及恢复被rm意外删除的文件。
TestDisk工具的使用也比较简单,按照提示一步步操作即可。
3.使用Photorec工具Photorec是一个可以恢复被RM意外删除的文件的工具,它可以扫描您的硬盘并恢复照片、文档、音乐和其他文件。
这个工具的使用也非常简单,按照提示一步步操作即可。
4、使用LVM工具LVM(逻辑卷管理)是Linux系统中的一个磁盘管理工具,可以用来恢复被rm误删除的文件。
使用LVM工具也相对容易。
您可以使用lvmcreate命令创建逻辑卷,并使用lvmremove命令恢复rm意外删除的文件。

LinuxUnix中误删除的文件恢复方法

我将简要描述Linux中的恢复过程。
恢复步骤与数据库版本关系不大,取决于操作系统。
1、数据库打开时,直接删除用户表空间中的数据文件。
复制代码如下:SQL>selectnamefromv$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_.dbfSQL>hostrm/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf2在用户表空间中创建表并启动错误报告。
复制代码如下:SQL>createtablettablespaceusersasselect*fromdual;createtablettablespaceusersasselect*fromdual*ERRORatline1:ORA-01116:打开数据库文件时出错4ORA-01110:datafile4:'/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf'ORA-27041:unabletoopenfileLinuxError:2:NosuchfileordirectoryAdditionalinformation:3在报警日志中也可以看到类似的信息。
复制代码如下:MonDec1921:48:17CST2011Errorsinfile/app/oracle/admin/orcl/bdump/orcl_m000_3897.trc:ORA-01116:ErroropeningdatabasefileORA-01110:Data文件4:'/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf'ORA-27041:无法打开文件LinuxError:2:没有这样的文件或目录附加信息:33。
r中复制进程PID的代码如下:$ps-ef|grepdbw0|grep-vgreporacle28791021:38?00:00:00ora_dbw0_orcl4.dbwr打开所有数据文件的句柄。
您可以在proc目录中找到它。
目录名是进程PID,fd代表文件描述符。
复制代码如下:$cd/proc/2879/fd$ls-ltotal0lr-x-----1oracledba64Dec1921:500->/dev/nullllr-x------1oracledba64Dec1921:501->/dev/nullr-x------1oracledba64Dec1921:5010->/dev/zerolr-x------1oracledba64Dec1921:5011->/dev/zerolr-x--------1oracledba64Dec1921:5012->/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msblrwx------1oracledba64Dec1921:5013->/app/oracle/product/10.2.0/db_1/dbs/hc_orcl.datlrwx-----1oracledba64Dec1921:5014->/app/oracle/product/10.2.0/db_1/dbs/lkORCLlrwx------1oracledba64Dec1921:5015->/app/oracle/oradata/ORCL/controlfile/o1_mf_555wq3ng_.ctllrwx-----1oracledba64Dec1921:5016->/app/oracle/oradata/ORCL/datafile/o1_mf_system_555wqbnk_.dbflrwx------1oracledba64Dec1921:5017->/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_555wqxgl_.dbflrwx------1oracledba64Dec1921:5018->/app/oracle/或adata/ORCL/datafile/o1_mf_sysaux_555wr5p6_.dbflrwx------1oracledba64Dec1921:5019->/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf(已删除)lr-x------1oracledba64Dec1921:502->/dev/nullrwx------1oracledba64Dec1921:5020->/app/oracle/oradata/ORCL/datafile/o1_mf_temp_555wrbnz_.tmplr-x------1oracledba64Dec1921:5021->/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msblr-x-----1oracledba64Dec1921:503->/dev/nullr-x------1oracledba64Dec1921:504->/dev/null-wx------1oracledba64Dec1921:505->/app/oracle/admin/orcl/udump/orcl_ora_2871.trcl-wx------1oracledba64Dec1921:506->/app/oracle/admin/orcl/bdump/alert_orcl.loglrwx------1oracledba64Dec1921:507->/app/oracle/product/10.2.0/db_1/dbs/lkinstorcl(已删除)l-wx-----1oracledba64Dec1921:508->/app/oracle/admin/orcl/bdump/alert_orcl.loglrwx-------1oracledba64Dec1921:509->/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.将句柄文件名直接复制到其原始位置。
复制代码:cp19/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf6。
数据文件恢复如下:SQL>alterdatabasedatafile4offline;Databasealtered.SQL>recoverdatafile4;Mediarecoverycomplete.SQL>alterdatabaseddatafile4online;Databasealtered.Complete数据文件恢复。
Restore的原理是,在Linux操作系统中,当一个文件在操作系统层面被删除时,之前打开该文件的进程仍然持有该文件句柄,并且可以继续读写指定的文件。
该文件的描述符可以从/proc目录中获取。
不过需要注意的是,如果此时关闭数据库,这个句柄就会消失,除了扫描磁盘之外没有其他办法来恢复文件。
在未确认情况的情况下,不要贸然关闭拥有数千条记录的数据库。
重新启动数据库可能毫无意义,甚至致命。
当然,客户的操作系统是Solaris,他们删除的文件还包含currentonlineredolog,所以还有其他更复杂的任务,我在这里不再描述。