最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Linux下Oracle误删除数据文件恢复操作

来源:懂视网 责编:小采 时间:2020-11-09 11:40:42
文档

Linux下Oracle误删除数据文件恢复操作

Linux下Oracle误删除数据文件恢复操作:检查数据文件的位置如下: SQLgt; select name from v$datafile; NAME------------------------------------------------------ 检查数据文件的位置如下: SQL> select name from v$datafile; NAME--------
推荐度:
导读Linux下Oracle误删除数据文件恢复操作:检查数据文件的位置如下: SQLgt; select name from v$datafile; NAME------------------------------------------------------ 检查数据文件的位置如下: SQL> select name from v$datafile; NAME--------

检查数据文件的位置如下: SQLgt; select name from v$datafile; NAME------------------------------------------------------

检查数据文件的位置如下:

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/Oracle/oradata/marven/system01.dbf
/u01/app/oracle/oradata/marven/undotbs1.dbf
/u01/app/oracle/oradata/marven/sysaux01.dbf
/u01/app/oracle/oradata/marven/users01.dbf
/u01/app/oracle/oradata/marven/marven01.dbf

在操作系统上删除数据文件

SQL> !rm /u01/app/oracle/oradata/marven/*.dbf

创建表发生报错

SQL> create table test2 as select * from dba_tables;
create table test2 as select * from dba_tables
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01116: error in opening database file 1
ORA-01110: data file 1: '/u01/app/oracle/oradata/marven/system01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


SQL> !

这个时候千万不要关闭实例,,检查进程dbwr进程的PID:
[oracle@hpserver2 dbs]$ ps -ef|grep dbw
oracle 9451 1 0 17:08 ? 00:00:00 ora_dbw0_marven
[oracle@hpserver2 dbs]$ cd /proc/9451[oracle@hpserver2 ~]$ cd /proc/9451/fd
[oracle@hpserver2 fd]$ ls -lrt
total 0
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 9 -> /u01/app/oracle/product/10.2.0/db_1/dbs/hc_marven.dat
l-wx------ 1 oracle oinstall 64 Jan 30 17:18 8 -> /u01/app/oracle/admin/marven/bdump/alert_marven.log
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 7 -> /u01/app/oracle/product/10.2.0/db_1/dbs/lkinstmarven (deleted)
l-wx------ 1 oracle oinstall 64 Jan 30 17:18 6 -> /u01/app/oracle/admin/marven/bdump/alert_marven.log
l-wx------ 1 oracle oinstall 64 Jan 30 17:18 5 -> /u01/app/oracle/admin/marven/udump/marven_ora_9443.trc
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 4 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 3 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 24 -> /u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 23 -> /u01/app/oracle/oradata/marven/temp02.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 22 -> /u01/app/oracle/oradata/marven/marven01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 21 -> /u01/app/oracle/oradata/marven/users01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 20 -> /u01/app/oracle/oradata/marven/sysaux01.dbf (deleted)
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 2 -> /dev/null
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 19 -> /u01/app/oracle/oradata/marven/undotbs1.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 18 -> /u01/app/oracle/oradata/marven/system01.dbf (deleted)
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 17 -> /u01/app/oracle/oradata/marven/control03.ctl
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 16 -> /u01/app/oracle/oradata/marven/control02.ctl
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 15 -> /u01/app/oracle/oradata/marven/control01.ctl
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 14 -> /u01/app/oracle/product/10.2.0/db_1/dbs/lkMARVEN
lrwx------ 1 oracle oinstall 64 Jan 30 17:18 13 -> /u01/app/oracle/product/10.2.0/db_1/dbs/hc_marven.dat
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 12 -> /dev/zero
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 11 -> /u01/app/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 10 -> /dev/zero
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 1 -> /dev/null
lr-x------ 1 oracle oinstall 64 Jan 30 17:18 0 -> /dev/null

将数据文件复制回去
[oracle@hpserver2 fd]$ cp 23 /u01/app/oracle/oradata/marven/temp02.dbf
[oracle@hpserver2 fd]$ cp 22 /u01/app/oracle/oradata/marven/marven01.dbf
[oracle@hpserver2 fd]$ cp 21 /u01/app/oracle/oradata/marven/users01.dbf
[oracle@hpserver2 fd]$ cp 20 /u01/app/oracle/oradata/marven/sysaux01.dbf
[oracle@hpserver2 fd]$ cp 19 /u01/app/oracle/oradata/marven/undotbs1.dbf
[oracle@hpserver2 fd]$ cp 18 /u01/app/oracle/oradata/marven/system01.dbf

将实例关闭后做介质恢复:


SQL> shutdown immediate

ORA-03113: end-of-file on communication channel
SQL> SQL> conn /as sysdba
Connected to an idle instance.
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 2084296 bytes
Variable Size 385876536 bytes
Database Buffers 1207959552 bytes
Redo Buffers 14692352 bytes
Database mounted.
SQL> recover database;
Media recovery complete.

数据库可以正常打开额,当然由于我这测试库几乎无事务,所以不用太多的复制操作即可完成
SQL> alter database open;

Database altered.

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Linux下Oracle误删除数据文件恢复操作

Linux下Oracle误删除数据文件恢复操作:检查数据文件的位置如下: SQLgt; select name from v$datafile; NAME------------------------------------------------------ 检查数据文件的位置如下: SQL> select name from v$datafile; NAME--------
推荐度:
标签: 误删 恢复 文件
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top