iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux如何恢复rm -rf命令所删除的数据文件
  • 402
分享到

Linux如何恢复rm -rf命令所删除的数据文件

2024-04-02 19:04:59 402人浏览 独家记忆
摘要

这篇文章主要介绍了linux如何恢复rm -rf命令所删除的数据文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。LINUX系统中被删除的文

这篇文章主要介绍了linux如何恢复rm -rf命令所删除的数据文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

LINUX系统中被删除的文件,只要其句柄没有被关闭,可以在/proc//fd中找到其对应的文件副本。其中指打开该文件的进程id。利用该方法,结合OS命令,DM7提供失效文件的恢复方案,下面用示例来演示:


1.创建一个表空间cs,给其创建两个数据文件

sql> create tablespace cs datafile ‘/dm_home/dmdba/dmdbms/data/jydm/cs1.dbf’ size 128,’/dm_home/dmdba/dmdbms/data/jydm/cs.dbf’ size 128;
executed successfully
used time: 00:00:21.941. Execute id is 90.


2.找出达梦服务器进程ID

[root@cs1 jydm]# ps -ef | grep dmserver
dmdba 2467 1 0 10月15 ? 00:05:53 /dm_home/dmdba/dmdbms/bin/dmserver /dm_home/dmdba/dmdbms/data/jydm/dm.ini -noconsole
root 18893 18058 0 21:45 pts/1 00:00:00 grep --color=auto dmserver


3.显示达梦服务器进程所打开的文件列表

[root@cs1 jydm]# ls /proc/2467/fd -l
总用量 0
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 0 -> /dev/null
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 1 -> /dm_home/dmdba/dmdbms/log/DmServicejydm.log
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 10 -> /dm_home/dmdba/dmdbms/data/jydm/ROLL.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 11 -> /dm_home/dmdba/dmdbms/data/jydm/MaiN.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 12 -> /dm_home/dmdba/dmdbms/data/jydm/BOOKSHOP.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 13 -> /dm_home/dmdba/dmdbms/data/jydm/DMHR.DBF
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 14 -> pipe:[21853]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 15 -> pipe:[21853]
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 16 -> pipe:[21854]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 17 -> pipe:[21854]
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 18 -> pipe:[21855]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 19 -> pipe:[21855]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 2 -> /dm_home/dmdba/dmdbms/log/DmServicejydm.log
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 20 -> pipe:[21856]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 21 -> pipe:[21856]
lrwx------ 1 dmdba dinstall 64 10月 25 21:12 22 -> Socket:[297043807]
lrwx------ 1 dmdba dinstall 64 10月 25 21:12 23 -> /dm_home/dmdba/dmdbms/data/jydm/cs1.dbf
lrwx------ 1 dmdba dinstall 64 10月 25 21:42 24 -> /dm_home/dmdba/dmdbms/data/jydm/cs.dbf
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 3 -> socket:[20041]
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 4 -> socket:[20042]
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 5 -> /dm_home/dmdba/dmdbms/data/jydm/SYSTEM.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 6 -> /dm_home/dmdba/dmdbms/data/jydm/dminst.sys
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 7 -> /dm_home/dmdba/dmdbms/data/jydm/TEMP.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 8 -> /dm_home/dmdba/dmdbms/data/jydm/jydm01.log
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 9 -> /dm_home/dmdba/dmdbms/data/jydm/jydm02.log


4.删除表空间cs中的一个数据文件

[root@cs1 jydm]# rm -rf cs.dbf


5.通过调用系统过程SP_FILE_SYS_CHECK()来手动的对表空间失效文件进行检查。

SQL> call SP_FILE_SYS_CHECK();
DMSQL executed successfully
used time: 0.690(ms). Execute id is 93.


6.在表空间cs中创建一个测试表cs,命令执行出错,显示表空间cs中的cs.dbf文件已经被删除了。

SQL> create table cs(cs_id number) tablespace cs;
create table cs(cs_id number) tablespace cs;
[-3430]:tablespace[CS] file[/dm_home/dmdba/dmdbms/data/jydm/cs.dbf] has been deleted.
used time: 31.462(ms). Execute id is 0.


7.调用系统过程SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复

SQL> call SP_TABLESPACE_PREPARE_RECOVER(‘CS’);
DMSQL executed successfully
used time: 16.121(ms). Execute id is 95.


8.显示达梦服务器进程所打开的文件列表,可以看到cs.dbf文件被标示为deleted了。

[root@cs1 jydm]# ls /proc/2467/fd -l
总用量 0
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 0 -> /dev/null
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 1 -> /dm_home/dmdba/dmdbms/log/DmServicejydm.log
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 10 -> /dm_home/dmdba/dmdbms/data/jydm/ROLL.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 11 -> /dm_home/dmdba/dmdbms/data/jydm/MAIN.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 12 -> /dm_home/dmdba/dmdbms/data/jydm/BOOKSHOP.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 13 -> /dm_home/dmdba/dmdbms/data/jydm/DMHR.DBF
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 14 -> pipe:[21853]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 15 -> pipe:[21853]
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 16 -> pipe:[21854]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 17 -> pipe:[21854]
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 18 -> pipe:[21855]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 19 -> pipe:[21855]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 2 -> /dm_home/dmdba/dmdbms/log/DmServicejydm.log
lr-x------ 1 dmdba dinstall 64 10月 15 12:23 20 -> pipe:[21856]
l-wx------ 1 dmdba dinstall 64 10月 15 12:23 21 -> pipe:[21856]
lrwx------ 1 dmdba dinstall 64 10月 25 21:12 22 -> socket:[297043807]
lrwx------ 1 dmdba dinstall 64 10月 25 21:12 23 -> /dm_home/dmdba/dmdbms/data/jydm/cs1.dbf
lrwx------ 1 dmdba dinstall 64 10月 25 21:42 24 -> /dm_home/dmdba/dmdbms/data/jydm/cs.dbf (deleted)
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 3 -> socket:[20041]
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 4 -> socket:[20042]
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 5 -> /dm_home/dmdba/dmdbms/data/jydm/SYSTEM.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 6 -> /dm_home/dmdba/dmdbms/data/jydm/dminst.sys
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 7 -> /dm_home/dmdba/dmdbms/data/jydm/TEMP.DBF
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 8 -> /dm_home/dmdba/dmdbms/data/jydm/jydm01.log
lrwx------ 1 dmdba dinstall 64 10月 15 12:23 9 -> /dm_home/dmdba/dmdbms/data/jydm/jydm02.log


9.使用操作系统的cp命令将文件(cs.dbf)复制到原位置

[root@cs1 jydm]# cp /proc/2467/fd/24 /dm_home/dmdba/dmdbms/data/jydm/cs.dbf
[root@cs1 jydm]# ls -lrt
总用量 1365112
drwxr-xr-x 2 dmdba dinstall 6 7月 23 22:12 bak
-rw-r–r-- 1 dmdba dinstall 479 7月 23 22:12 sqllog.ini
-rw-r–r-- 1 dmdba dinstall 633 7月 23 22:13 dm_service.prikey
drwxr-xr-x 2 dmdba dinstall 6 7月 23 22:14 HMAIN
-rw-r–r-- 1 dmdba dinstall 908 7月 23 22:14 dminit20180723221249.log
-rw-r–r-- 1 dmdba dinstall 890 7月 23 22:14 dmarch_example.ini
-rw-r–r-- 1 dmdba dinstall 1966 7月 23 22:14 dmdcr_cfg_example.ini
-rw-r–r-- 1 dmdba dinstall 631 7月 23 22:14 dmdcr_example.ini
-rw-r–r-- 1 dmdba dinstall 2070 7月 23 22:14 dmmal_example.ini
-rw-r–r-- 1 dmdba dinstall 1537 7月 23 22:14 dminit_example.ini
-rw-r–r-- 1 dmdba dinstall 1277 7月 23 22:14 dmmonitor_example.ini
-rw-r–r-- 1 dmdba dinstall 1679 7月 23 22:14 dmtimer_example.ini
-rw-r–r-- 1 dmdba dinstall 288 7月 23 22:14 dmmpp_example.ini
-rw-r–r-- 1 dmdba dinstall 1241 7月 23 22:14 dmwatch_example.ini
-rw-r–r-- 1 dmdba dinstall 2146 7月 23 22:14 dmwatcher_example.ini
-rw-r–r-- 1 dmdba dinstall 522 7月 23 22:14 dmwmon_example.ini
-rw-r–r-- 1 dmdba dinstall 636 7月 23 22:14 sqllog_example.ini
drwxr-xr-x 2 dmdba dinstall 6 7月 23 22:14 trace
-rw-r–r-- 1 dmdba dinstall 12 7月 23 22:14 rep_conflict.log
-rw-r–r-- 1 dmdba dinstall 157286400 7月 23 22:16 BOOKSHOP.DBF
-rw-r–r-- 1 dmdba dinstall 134217728 7月 23 22:16 DMHR.DBF
-rw-r–r-- 1 dmdba dinstall 40859 8月 20 15:20 dm.ini
-rw-r–r-- 1 dmdba dinstall 10485760 10月 15 12:21 TEMP.DBF
-rw-r–r-- 1 dmdba dinstall 268435456 10月 15 12:21 jydm02.log
-rw-r–r-- 1 dmdba dinstall 134217728 10月 25 21:24 MAIN.DBF
-rw-r–r-- 1 dmdba dinstall 134217728 10月 25 21:43 cs1.dbf
-rw-r–r-- 1 dmdba dinstall 7168 10月 25 21:43 dm.ctl
drwxr-xr-x 2 dmdba dinstall 4096 10月 25 21:43 ctl_bak
-rw-r–r-- 1 dmdba dinstall 134217728 10月 25 21:43 ROLL.DBF
-rw-r–r-- 1 dmdba dinstall 22020096 10月 25 21:59 SYSTEM.DBF
-rw-r–r-- 1 dmdba dinstall 268435456 10月 25 21:59 jydm01.log
-rw-r–r-- 1 root root 134217728 10月 25 21:59 cs.dbf
-rw-r–r-- 1 dmdba dinstall 220 10月 25 21:59 dminst.sys


10.复制成功后,调用系统过程SP_TABLESPACE_RECOVER(ts_name)完成表空间失效文件的恢复。注意,要保证数据文件正确修复,需要保证在SP_TABLESPACE_PREPARE_RECOVER后进行数据文件的复制。

SQL> call SP_TABLESPACE_RECOVER(‘CS’);
DMSQL executed successfully
used time: 46.532(ms). Execute id is 96.


11.再次在表空间cs中创建测试表cs命令成功执行

SQL> create table cs(cs_id number) tablespace cs;
executed successfully
used time: 36.913(ms). Execute id is 97.

感谢你能够认真阅读完这篇文章,希望小编分享的“Linux如何恢复rm -rf命令所删除的数据文件”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: Linux如何恢复rm -rf命令所删除的数据文件

本文链接: https://www.lsjlt.com/news/64963.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux如何恢复rm -rf命令所删除的数据文件
    这篇文章主要介绍了Linux如何恢复rm -rf命令所删除的数据文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。LINUX系统中被删除的文...
    99+
    2022-10-19
  • linux中rm -rf 命令删除文件的恢复方法是什么
    这期内容当中小编将会给大家带来有关linux中rm -rf 命令删除文件的恢复方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Linux命令中rm -rf 是一个很可拍的命令只要执行这个命令文件...
    99+
    2023-06-28
  • 使用 Linux 文件恢复工具恢复rm -rf删除的文件
    Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来的后果“,不过 Linux 下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的 inode 节点中的扇区指针清除,同...
    99+
    2022-06-03
    extundelete foremost Linux photorec scalpel testdisk Ubuntu 分区 命令行 工具 文件删除 文件恢复 文件系统
  • linux怎么恢复rm误删除的数据库文件
    这篇文章主要介绍“linux怎么恢复rm误删除的数据库文件”,在日常操作中,相信很多人在linux怎么恢复rm误删除的数据库文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux怎么恢复rm误删除的数据...
    99+
    2023-06-13
  • 怎么在Linux中恢复rm命令误删的文件
    本篇文章为大家展示了怎么在Linux中恢复rm命令误删的文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。假设被删除的文件位于 /media/backup 里,挂载的设备是 /dev/sda3。 首...
    99+
    2023-06-13
  • 恢复被rm意外删除的数据文件
    一.模拟数据文件删除 [oracle@node1 ~]$ sqlplus /as sysdba ...
    99+
    2022-10-18
  • 如何在Linux中使用rm命令删除文件
    如何在Linux中使用rm命令删除文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。-f 即:rm -f 文件路径   -f 就是直接强行删除,不作任何提示的意思   删除文件...
    99+
    2023-06-13
  • Linux如何利用lsof命令恢复删除的文件
    这篇文章主要介绍Linux如何利用lsof命令恢复删除的文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!lsof命令lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复...
    99+
    2023-06-16
  • linux如何恢复rm误删的数据
    在Linux中,当使用rm命令误删数据时,可以尝试使用以下方法恢复:1. 停止写入新的数据:立即停止对文件系统的写入操作,以防止被删...
    99+
    2023-08-29
    linux
  • linux如何恢复删除的文件
    要恢复被删除的文件,您可以尝试以下方法:1. 使用恢复工具:有一些专门用于恢复被删除文件的工具,例如TestDisk、PhotoRe...
    99+
    2023-08-20
    linux
  • linux下怎么恢复误删除oracle的数据文件
    本篇内容介绍了“linux下怎么恢复误删除oracle的数据文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-10-18
  • Linux下如何利用ext3grep恢复被删除的文件
    这篇文章将为大家详细讲解有关Linux下如何利用ext3grep恢复被删除的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。10个G的数据被误删除了,差点崩溃,试遍了所有常规恢复软件,无用,就要放弃的时...
    99+
    2023-06-16
  • Linux平台达梦数据库V7之误删除数据文件的恢复
    一 前言 LINUX操作系统中,被进程打开的文件仍可以在 OS系统中被删除,因此存在 DM7数据文件可能被误删的风险。如果数据文件被删除,DM7系统能够及时检测出来,并立刻停止对其继续使用并通知用户。 二 数据文件失效说明 2.1...
    99+
    2016-07-05
    Linux平台达梦数据库V7之误删除数据文件的恢复
  • 如何恢复linux下被删除的syslog—/var/log/messages文件
    这篇文章主要介绍了如何恢复linux下被删除的syslog—/var/log/messages文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux新手容易犯的一个错误...
    99+
    2023-06-13
  • 如何利用bat批处理程序通过DOS命令行删除所有的空文件夹
    这篇文章主要为大家展示了“如何利用bat批处理程序通过DOS命令行删除所有的空文件夹”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用bat批处理程序通过DOS命令行删除所有的空文件夹”这篇...
    99+
    2023-06-08
  • Linux安装MySQL后找不到my.cnf的原因以及如何从sql语句文件恢复数据库
    今天就跟大家聊聊有关Linux安装MySQL后找不到my.cnf的原因以及如何从sql语句文件恢复数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作