

rm -rf误操作删除了数据文件后如何快速恢复?
如果执行了rm -rf操作删除了所有的基于FS的数据文件,但是数据库还处于OPEN状态,那么,在这种情况下如何快速地恢复数据库呢?这里的前提条件是没有任何可用的RMAN备份、数据库冷备份等,也就是说,没有任何备份。在这种情况下可以通过系统的文件句柄号来恢复数据文件。整个恢复过程可以简单分为如下几步:
(1)找到被删除文件的文件句柄所在的目录
首先通过命令“ps -ef|grep ora_lgwr”找到LGWR的进程号。假设这里的进程号为31863,则被删除的文件句柄在/proc/31863/fd目录下。
(2)采用操作系统cp命令拷贝文件句柄到原数据库文件路径
假设这里看到的是如下的情况,被删除的文件末尾一般都有deleted标识。
[root@orclalhr fd]# ll | grep deleted
lrwx------ 1 oracle oinstall 64 May 5 14:48 256 -> u02/app/oracle/oradata/oratest/control01.ctl (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 257 -> u02/app/oracle/flash_recovery_area/oratest/control02.ctl (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 258 -> u02/app/oracle/oradata/oratest/redo01.log (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 259 -> /u02/app/oracle/oradata/oratest/redo02.log (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 260 -> /u02/app/oracle/oradata/oratest/redo03.log (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 261 -> /u02/app/oracle/oradata/oratest/system01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 262 -> /u02/app/oracle/oradata/oratest/sysaux01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 263 -> /u02/app/oracle/oradata/oratest/undotbs01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 264 -> /u02/app/oracle/oradata/oratest/users01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 265 -> /u02/app/oracle/oradata/oratest/example01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 May 5 14:48 266 -> /u02/app/oracle/oradata/oratest/temp01.dbf (deleted)
执行cp命令,拷贝数据文件到原路径:
cp 256 /u02/app/oracle/oradata/oratest/control01.ctl
cp 257 /u02/app/oracle/flash_recovery_area/oratest/control02.ctl
cp 258 /u02/app/oracle/oradata/oratest/redo01.log
cp 259 /u02/app/oracle/oradata/oratest/redo02.log
cp 260 /u02/app/oracle/oradata/oratest/redo03.log
cp 261 /u02/app/oracle/oradata/oratest/system01.dbf
cp 262 /u02/app/oracle/oradata/oratest/sysaux01.dbf
cp 263 /u02/app/oracle/oradata/oratest/undotbs01.dbf
cp 264 /u02/app/oracle/oradata/oratest/users01.dbf
cp 265 /u02/app/oracle/oradata/oratest/example01.dbf
cp 266 /u02/app/oracle/oradata/oratest/temp01.dbf
需要注意的是,最好使用Oracle用户去执行cp命令。如果使用root用户执行cp命令的话,那么Oracle进程是没有权限操作的。当然也可以在使用root用户拷贝完数据文件后,再执行赋权操作,命令如下所示:
[root@ora10g fd]# chown oracle.oinstall /u02/app/oracle -R
但是一定要注意,必须要等全部数据文件恢复后才可以执行chown操作。因为一旦执行了该操作,原来的ora_进程就会停止,那么就不能恢复所有的数据文件了。
(3)其它检查工作,例如数据检查、备份等
最后需要特别注意的是,当执行操作系统命令rm的时候,切记不可随意加-rf参数,就算一定要用,也要确定再三后才能执行,否则对于数据库而言,可以说是灾难性的。由于rm操作是在数据库OPEN状态下直接进行了破坏性操作,对于Redo Buffer还来不及写入Online Redo Logfile的那部分操作,肯定是会丢失的。因为通过文件句柄号恢复出来的日志文件中,并不一定包含数据库的最新变更。即便如此,本小节对于rm -rf误操作的恢复,还是有一定意义的,至少可以在没有任何备份的情况下,多了一根救命稻草来拯救数据库。最后再次强调一下,执行rm -rf后,千万不要着急地关闭数据库重启,否则在没有任何备份的情况下基本上是很难恢复数据文件的。


● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

1 现有课程
课程名称 | 课时 | 上课时间 | 简介 | 价格 |
OCP认证 | 35课时/期 | 20:00-22:00 | 从入门到专家,OCP报名后可以免费学习11g OCP、12c OCP、18c OCP、19c OCP等内容,即涉及所有版本OCP内容均可免费学习。 | 1588 |
OCM认证 | 9课时/期 | 20:00-22:00 | OCM实时答疑,提供和考试一样的练习模拟环境,只要按照老师讲的方式来练习,可以保证100%通过。 | 23000 |
高可用课程(rac+dg+ogg) | 25课时/期 | 20:00-22:00 | 包括RAC、DG和OGG最实用的数据库操作实战内容。 | 1888 |
Oracle健康检查脚本 | 可微信或微店购买。 | 88 | ||
OCP+高可用(rac+dg+ogg) | 报名OCP+高可用课程,可以优惠300元,优惠后的价格为3188 | 3188 |
注意:
1、每次上课前30分钟答疑。
2、授课方式:腾讯课堂网络直播讲课(非视频) + QQ互动答疑 + 视频复习。
3、OCP内容有包过班,这个可以找麦老师私聊。
4、以上所有课程均可循环听课。
5、以上价格已包含直播、讲课视频和讲课文档,即报名后,讲课视频和文档都会共享给大家。
2 网络连接说明
培训项目 | 连接地址 |
DB笔试面试历史连接 | http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w |
OCP培训说明连接 | https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA |
OCM培训说明连接 | https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA |
高可用(RAC+DG+OGG)培训说明连接 | https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw |
OCP最新题库解析历史连接(052) | http://mp.weixin.qq.com/s/bUgn4-uciSndji_pUbLZfA |
微店地址 | https://weidian.com/s/793741433?wfr=c&ifr=shopdetail |
我的信息 | QQ:646634621 微信号:lhrbestxh |
小麦苗课堂试听内容 | https://share.weiyun.com/5HnQEuL |
小麦苗课堂腾讯视频内容 | http://v.qq.com/vplus/71f69a319a24c6808cd6e6189ae90664 |
1 小麦苗课堂优势及优惠
1.1 小麦苗课堂有如下优势
1、OCP、高可用课堂可以循环永久听课。
2、课程实用,偏向实战,只讲实用的,不讲没用的。
3、网络班不占用周末时间。课后可以随时反复学习。
4、报名多多,优惠多多。老学员优惠更多。
5、升级式学习。例如,11g OCP在后边会加入12C、18c的新特性讲解。即OCP报名一次,涉及所有版本OCP内容均可免费学习。
1.2 小麦苗课堂现有的优惠
为了感谢广大朋友一直以来对小麦苗课堂的支持,现给出以下优惠:
优惠一、【高可用课程可以免费听课啦】
① 凡是给麦老师成功推荐2名OCP、OCM或高可用学员的朋友,均可获赠高可用听课名额一个。终身有效!并且,麦老师所有课程支持八折优惠。
② 凡是咨询过麦老师并且从麦老师这里报了OCM课程的学员,均可获赠高可用听课名额一个。终身有效!并且,麦老师所有课程支持八折优惠。
优惠二、【OCP课程可以免费听课啦】凡是报了麦老师的OCM课程,均可获赠OCP听课名额一个。终身有效!并且,麦老师所有课程支持八折优惠。
优惠三、【健康检查脚本赠送】凡是报名麦老师OCP、OCM或高可用课程之中的任意2门课的学员,均可获赠Oracle数据库健康检查脚本一套。
优惠四、凡是每月的第一天报名麦老师的OCP高可用课程均可优惠200元。仅限前3名学员。
优惠五、凡是购买了麦老师的OCP和高可用的课程,则均可获赠由麦老师出版的《Oracle数据库面试笔试宝典》、《数据库程序员面试笔试宝典》、《数据库程序员面试笔试真题库》和《数据库面试笔试真题与解析》中的任意一本书。若只报名一门课程,则可以报销书籍的50%费用。
另外,每逢法定节假日,麦老师的课程都会优惠多多的。详情请加麦老师QQ(646634621)或微信(lhrbestxh)私聊。

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。






