\NOARCHIVED LOG , 没备份 , Redo Log 被覆盖 , 某个datafile不能online
设计知识点:
BBED> set block 1BBED> p kcvfhckpstruct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x00afc425 -----检查点SCN(checkpoint scn) ub2 kscnwrp @488 0x0000 ub4 kcvcptim @492 0x30eb96a7 -----checkpoint time ub2 kcvcpthr @496 0x0001 ------checkpoint thread union u, 12 bytes @500 struct kcvcprba, 12 bytes @500 ub4 kcrbaseq @500 0x00000089 -----checkpoint rba sequence ub4 kcrbabno @504 0x00000002 -----checkpoint rba number ub2 kcrbabof @508 0x0010 -----offset 位置 ub1 kcvcpetb[0] @512 0x02 -----Enabled Threads Bitvec ub1 kcvcpetb[1] @513 0x00 ub1 kcvcpetb[2] @514 0x00 ub1 kcvcpetb[3] @515 0x00 ub1 kcvcpetb[4] @516 0x00 ub1 kcvcpetb[5] @517 0x00 ub1 kcvcpetb[6] @518 0x00 ub1 kcvcpetb[7] @519 0x00SQL> alter database datafile 4 online;
alter database datafile 4 online*ERROR at line 1:ORA-01113: file 4 needs media recovery if it was restored from backup, or END BACKUP if it was notORA-01110: data file 4: '/u01/app/oracle/oradata/test/users01.dbf' SQL> recover datafile 4;ORA-00279: change 404562 generated at 09/27/2014 10:37:34 needed for thread 1ORA-00289: suggestion : /u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_859291095.dbfORA-00280: change 404562 for thread 1 is in sequence #5 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}autoORA-00308: cannot open archived log '/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_859291095.dbf'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3 ORA-00308: cannot open archived log '/u01/app/oracle/product/10.2.0/db_1/dbs/arch1_5_859291095.dbf'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3SQL> col file_name for a50
SQL> select HXFIL File_num,substr(HXFNM,1,40) File_name, FHSCN SCN, FHSTA status,FHRBA_SEQ Sequence from X$KCVFH;FILE_NUM FILE_NAME SCN STATUS SEQUENCE
---------- -------------------------------------------------- ---------------- ---------- ---------- 1 /u01/app/oracle/oradata/test/system01.dbf 404786 8196 8 2 /u01/app/oracle/oradata/test/undotbs01.dbf 404786 4 8 3 /u01/app/oracle/oradata/test/sysaux01.dbf 404786 4 8 4 /u01/app/oracle/oradata/test/users01.dbf 405673 4 8SQL> select file#,ONLINE_STATUS,ERROR,CHANGE# from V$RECOVER_FILE order by 1;
SQL> select name, checkpoint_change# from v$datafile;BBED> info
File# Name Size(blks) ----- ---- ---------- 1 /u01/app/oracle/oradata/test/system01.dbf 0 2 /u01/app/oracle/oradata/test/undotbs01.dbf 0 3 /u01/app/oracle/oradata/test/sysaux01.dbf 0 4 /u01/app/oracle/oradata/test/users01.dbf 0BBED> set file 1
FILE# 1BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x00062d32 <---------- ub2 kscnwrp @488 0x0000 ub4 kcvcptim @492 0x3338fe1f ub2 kcvcpthr @496 0x0001 union u, 12 bytes @500 struct kcvcprba, 12 bytes @500 ub4 kcrbaseq @500 0x00000008 <----------- ub4 kcrbabno @504 0x00000002 ub2 kcrbabof @508 0x0010 ub1 kcvcpetb[0] @512 0x02 ub1 kcvcpetb[1] @513 0x00 ub1 kcvcpetb[2] @514 0x00 ub1 kcvcpetb[3] @515 0x00 ub1 kcvcpetb[4] @516 0x00 ub1 kcvcpetb[5] @517 0x00 ub1 kcvcpetb[6] @518 0x00 ub1 kcvcpetb[7] @519 0x00BBED> set file 4
FILE# 4BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x00062c52 ub2 kscnwrp @488 0x0000 ub4 kcvcptim @492 0x3338fc6e ub2 kcvcpthr @496 0x0001 union u, 12 bytes @500 struct kcvcprba, 12 bytes @500 ub4 kcrbaseq @500 0x00000005 ub4 kcrbabno @504 0x00000002 ub2 kcrbabof @508 0x0010 ub1 kcvcpetb[0] @512 0x02 ub1 kcvcpetb[1] @513 0x00 ub1 kcvcpetb[2] @514 0x00 ub1 kcvcpetb[3] @515 0x00 ub1 kcvcpetb[4] @516 0x00 ub1 kcvcpetb[5] @517 0x00 ub1 kcvcpetb[6] @518 0x00 ub1 kcvcpetb[7] @519 0x00SQL> select to_number('&kscnbas','xxxxxxx') from dual;
TO_NUMBER('062D32','XXXXXXX')----------------------------- 404786SQL> select to_number('&kcrbaseq','xxxxx') from dual;
TO_NUMBER('062C52','XXXXXXX')----------------------------- 404562 SQL> alter database datafile 4 online;alter database datafile 4 online*ERROR at line 1:ORA-01113: file 4 needs media recovery if it was restored from backup, or ENDBACKUP if it was notORA-01110: data file 4: '/u01/app/oracle/oradata/test/users01.dbf' SQL> recover datafile 4;Media recovery complete.SQL> alter database datafile 4 online;
Database altered.SQL> select file#,name,status,ENABLED from v$datafile;
FILE# NAME STATUS ENABLED---------- -------------------------------------------------- ------- ---------- 1 /u01/app/oracle/oradata/test/system01.dbf SYSTEM READ WRITE 2 /u01/app/oracle/oradata/test/undotbs01.dbf ONLINE READ WRITE 3 /u01/app/oracle/oradata/test/sysaux01.dbf ONLINE READ WRITE 4 /u01/app/oracle/oradata/test/users01.dbf ONLINE READ WRITESQL> select HXFIL File_num,substr(HXFNM,1,40) File_name, FHSCN SCN, FHSTA status,FHRBA_SEQ Sequence from X$KCVFH;
FILE_NUM FILE_NAME SCN STATUS SEQUENCE---------- -------------------------------------------------- ---------------- ---------- ---------- 1 /u01/app/oracle/oradata/test/system01.db 404786 8196 8 2 /u01/app/oracle/oradata/test/undotbs01.dbf 404786 4 8 3 /u01/app/oracle/oradata/test/sysaux01.dbf 404786 4 8 4 /u01/app/oracle/oradata/test/users01.dbf 405673 4 8SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> select HXFIL File_num,substr(HXFNM,1,40) File_name, FHSCN SCN, FHSTA status,FHRBA_SEQ Sequence from X$KCVFH;
FILE_NUM FILE_NAME SCN STATUS SEQUENCE---------- ------------------------------------------------------------ ---------------- ---------- ---------- 1 /u01/app/oracle/oradata/test/system01.dbf 405724 8196 10 2 /u01/app/oracle/oradata/test/undotbs01.dbf 405724 4 10 3 /u01/app/oracle/oradata/test/sysaux01.dbf 405724 4 10 4 /u01/app/oracle/oradata/test/users01.dbf 405724 4 10