前期:
数据库在open状态下误从后台删除数据文件
比如误删除了/oracle/app/oradata/orcl/test01.dbf文件且数据库还在运行:
[oracle@ora-test ~]$ ps -ef | grep dbw
oracle 3779 1 0 11:25 ? 00:00:00 ora_dbw0_orcl
oracle 3880 3503 0 11:30 pts/1 00:00:00 grep dbw
[oracle@ora-test ~]$
[oracle@ora-test ~]$
[oracle@ora-test ~]$
[oracle@ora-test ~]$
[oracle@ora-test ~]$ cd /proc/3779/fd
[oracle@ora-test fd]$ ls -ltr
total 0
lrwx------. 1 oracle oinstall 64 May 19 15:19 9 -> /oracle/app/11.2.0.1/db_1/dbs/hc_orcl.dat
lr-x------. 1 oracle oinstall 64 May 19 15:19 8 -> /dev/zero
lr-x------. 1 oracle oinstall 64 May 19 15:19 7 -> /proc/4070/fd
lr-x------. 1 oracle oinstall 64 May 19 15:19 6 -> /oracle/app/11.2.0.1/db_1/rdbms/mesg/oraus.msb
lr-x------. 1 oracle oinstall 64 May 19 15:19 5 -> /dev/null
lr-x------. 1 oracle oinstall 64 May 19 15:19 4 -> /dev/null
lr-x------. 1 oracle oinstall 64 May 19 15:19 3 -> /dev/null
lrwx------. 1 oracle oinstall 64 May 19 15:19 264 -> /oracle/app/oradata/orcl/temp02.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 263 -> /oracle/app/oradata/orcl/temp01.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 262 -> /oracle/app/oradata/orcl/test01.dbf (deleted)
lrwx------. 1 oracle oinstall 64 May 19 15:19 261 -> /oracle/app/oradata/orcl/users01.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 260 -> /oracle/app/oradata/orcl/undotbs01.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 259 -> /oracle/app/oradata/orcl/sysaux01.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 258 -> /oracle/app/oradata/orcl/system01.dbf
lrwx------. 1 oracle oinstall 64 May 19 15:19 257 -> /oracle/app/oradata/orcl/control02.ctl
lrwx------. 1 oracle oinstall 64 May 19 15:19 256 -> /oracle/app/oradata/orcl/control01.ctl
l-wx------. 1 oracle oinstall 64 May 19 15:19 2 -> /dev/null
lr-x------. 1 oracle oinstall 64 May 19 15:19 11 -> /oracle/app/11.2.0.1/db_1/rdbms/mesg/oraus.msb
lrwx------. 1 oracle oinstall 64 May 19 15:19 10 -> /oracle/app/11.2.0.1/db_1/dbs/lkORCL
l-wx------. 1 oracle oinstall 64 May 19 15:19 1 -> /dev/null
lr-x------. 1 oracle oinstall 64 May 19 15:19 0 -> /dev/null
262就是内存中加载的数据文件
通过cp 备份出来,一般数据库就正常,如果提示数据文件过旧就执行恢复:
通过查看v$datafile_header和v$datafile 查看scn是否一样就能确定。
alter tablespace test offline immediate;//强制表空间离线
recover datafile 5;
alter tablespace test online;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




