6 bytes
Database Buffers 197132288 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf'
数据库无法启动因为此时datafile 6丢失,使用rman的备份恢复数据文件,尝试打开数据库
RMAN> restore datafile 6;?
Starting restore at 19-JUN-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK?
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00006 to /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2014_06_19/o1_mf_nnndf_TAG20140619T213426_9t73x2s8_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2014_06_19/o1_mf_nnndf_TAG20140619T213426_9t73x2s8_.bkp tag=TAG20140619T213426
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 19-JUN-14?
SYS@ORCL>alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf'
此时报datafile 6需要进行recover。
这时我们删除归档,然后尝试recover datafile 6
[oracle@jp archivelog]$ cd 2014_06_19/
[oracle@jp 2014_06_19]$ ls
o1_mf_1_3_9t73hdco_.arc o1_mf_1_5_9t740dxd_.arc
o1_mf_1_4_9t74035o_.arc o1_mf_1_6_9t740sv7_.arc
[oracle@jp 2014_06_19]$ rm -f *
[oracle@jp 2014_06_19]$ ls?
SYS@ORCL>recover datafile 6;
ORA-00279: change 507768 generated at 06/19/2014 21:34:26 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2014_06_19/o1_mf_1_4_%u_.arc
ORA-00280: change 507768 for thread 1 is in sequence #4?
Specify log: {=suggested | filename | AUTO | CANCEL}?
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2014_06_19/o1_mf_1_4_9t7403
5o_.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
无法恢复,提示需要的归档文件不存在
Dump出文件头:
SYS@ORCL>alter session set events 'immediate trace name file_hdrs level 10';?
Session altered.?
SYS@ORCL>SYS@ORCL>oradebug setmypid;
Statement processed.
SYS@ORCL>oradebug tracefile_name
/u01/app/oracle/admin/ORCL/udump/orcl_ora_9065.trc
查看dump文件:
DATA FILE #1:
(name #7) /u01/app/oracle/oradata/ORCL/system01.dbf
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:56 scn: 0x0000.0007c39c 06/19/2014 21:37:19
Stop scn: 0x0000.0007c39c 06/19/2014 21:37:19
Creation Checkpointed at scn: 0x0000.00000009 06/30/2005 19:10:11
thread:0 rba:(0x0.0.0)
这时system数据文件的,然后我们使用bbed将datafile 6的scn和system数据文件的scn改为一致。
BBED> set dba 6,1
DBA 0x01800001 (25165825 6,1)?
BBED> map
File: /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf (6)
Block: 1 Dba:0x01800001
------------------------------------------------------------
Data File Header?
struct kcvfh, 676 bytes @0?
ub4 tailchk @8188?
BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484
struct kcvcpscn, 8 bytes @484
ub4 kscnbas @484 0x