归档文件丢失,数据库无法启动

归档文件丢失,数据库无法启动第一种修复方式 alter database create datafile 7 as u01 app oradata QXY tt dbf 创建 datafile 后 其 scn 是非常老的 需要进行 recover 需要该 scn 应用后面所有的归档 但是数据文件被损坏的时候

大家好,我是讯享网,很高兴认识大家。


--//第一种修复方式
alter database create datafile 7 as '/u01/app/oradata/QXY/tt.dbf'
创建datafile后,其scn是非常老的,需要进行recover,需要该scn应用后面所有的归档,但是数据文件被损坏的时候,数据基本上也是最新的,
并不需要从create_scn开始应用归档,这个时候可以通过bbed直接修改数据文件头,告诉recover datafile的时候从哪里开始应用归档


--//破坏数据文件头
BBED> copy file 6 block 5 to file 7 block 1
 File: /u01/app/oradata/QXY/tt.dbf (7)
 Block: 1                Offsets:    0 to   11           Dba:0x01c00001
------------------------------------------------------------------------
 1ea20000 0 e4851b00 

 <32 bytes per line>

BBED> sum apply
Check value for File 7, Block 1:
current = 0xc109, required = 0xc109

BBED> verify 
DBVERIFY - Verification starting
FILE = /u01/app/oradata/QXY/tt.dbf
BLOCK = 1

Block 1 is corrupt
Corrupt block relative dba: 0x0 (file 0, block 1)
Bad header found during verification
Data in bad block:
 type: 30 format: 2 rdba: 0x0
 last change scn: 0x0000.001b85e4 seq: 0x1 ***: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x85e41e01
 check value in block header: 0xc109
 computed block checksum: 0x0

Total Blocks Examined         : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 1
Total Blocks Influx           : 0
Message 531 not found;  product=RDBMS; facility=BBED

--//启动数据库
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup 
ORACLE instance started.

Total System Global Area   bytes
Fixed Size                   bytes
Variable Size             bytes
Database Buffers           bytes
Redo Buffers                 bytes
Database mounted.
ORA-01122: database file 7 failed verification check
ORA-01110: data file 7: '/u01/app/oradata/QXY/tt.dbf'
ORA-01210: data file header is media corrupt


--//创建数据文件头
SQL> alter database create datafile 7 as '/u01/app/oradata/QXY/tt.dbf'
  2  ;

Database altered.

SQL> 

--//recover数据文件
SQL> recover datafile 7;
ORA-00279: change generated at 09/21/2020 16:48:18 needed for thread 1  <=======需要的时间,其实就是数据文件刚创建的时间
ORA-00289: suggestion : /u01/app/fast_recovery_area/QXY/archivelog/2020_12_02/o1_mf_1_181_%u_.arc
ORA-00280: change for thread 1 is in sequence #181


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log '/u01/app/fast_recovery_area/QXY/archivelog/2020_12_02/o1_mf_1_181_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


ORA-00308: cannot open archived log '/u01/app/fast_recovery_area/QXY/archivelog/2020_12_02/o1_mf_1_181_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

TO_CHAR(CREATION_TI      FILE#
------------------- ----------
2013-08-24 11:37:33          1
2013-08-24 11:37:37          2
2013-08-24 12:07:19          3
2013-08-24 11:37:49          4
2020-07-15 17:11:46          5
2020-09-16 09:42:54          6
2020-09-21 16:48:18          7

7 rows selected.

SQL> 

--bbed修改恢复的起始时间和需要应用的归档号(归档号可以根据实际情况指定)
BBED> set dba 7,1
        DBA             0x01c00001 ( 7,1)

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x00242e04   <====change#
      ub2 kscnwrp                           @488      0x0000
   ub4 kcvcptim                             @492      0x3eaffe52
   ub2 kcvcpthr                             @496      0x0001
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x000000b5   <====归档号
         ub4 kcrbabno                       @504      0x00008ec3
         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      0x00


讯享网

BBED> 


--//查看归档
SQL> select SEQUENCE#,FIRST_TIME,NEXT_TIME,FIRST_CHANGE# ,NEXT_CHANGE#  from v$archived_log;

 SEQUENCE# FIRST_TIME         NEXT_TIME          FIRST_CHANGE# NEXT_CHANGE#
---------- ------------------ ------------------ ------------- ------------
       325 30-NOV-20          02-DEC-20                      
       326 02-DEC-20          02-DEC-20                      
       
--//修改归档号为326 ,change# 为
SQL> 
SQL> select to_char(326,'xxxx') from dual;

TO_CH
-----
  146
SQL> 
SQL> select to_char(,'xxxxxxxx') from dual;

TO_CHAR(4
---------
   42484e

SQL> 

--//bbed修改
BBED> set dba 7,1
        DBA             0x01c00001 ( 7,1)

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x00242e04
      ub2 kscnwrp                           @488      0x0000
   ub4 kcvcptim                             @492      0x3eaffe52
   ub2 kcvcpthr                             @496      0x0001
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x000000b5
         ub4 kcrbabno                       @504      0x00008ec3
         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      0x00
BBED> set offset 500 
        OFFSET          500

BBED> d /v count 12
 File: /u01/app/oradata/QXY/tt.dbf (7)
 Block: 1       Offsets:  500 to  511  Dba:0x01c00001
-------------------------------------------------------
 b c38e0000          l ............

 <16 bytes per line>

BBED> m /x 4601
 File: /u01/app/oradata/QXY/tt.dbf (7)
 Block: 1                Offsets:  500 to  511           Dba:0x01c00001
------------------------------------------------------------------------
  c38e0000  

 <32 bytes per line>

BBED> d /v count 12
 File: /u01/app/oradata/QXY/tt.dbf (7)
 Block: 1       Offsets:  484 to  495  Dba:0x01c00001
-------------------------------------------------------
 042e2400 00000000 52feaf3e          l ..$.....R..>

 <16 bytes per line>

BBED> m /x 4e4842
 File: /u01/app/oradata/QXY/tt.dbf (7)
 Block: 1                Offsets:  484 to  495           Dba:0x01c00001
------------------------------------------------------------------------
 4e 00000000 52feaf3e 

 <32 bytes per line>

BBED> sum apply
Check value for File 7, Block 1:
current = 0xc80e, required = 0xc80e

BBED> verify 
DBVERIFY - Verification starting
FILE = /u01/app/oradata/QXY/tt.dbf
BLOCK = 1

Total Blocks Examined         : 1
Total Blocks Processed (Data) : 0
Total Blocks Failing   (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing   (Index): 0
Total Blocks Empty            : 0
Total Blocks Marked Corrupt   : 0
Total Blocks Influx           : 0
Message 531 not found;  product=RDBMS; facility=BBED

--//恢复数据文件并启动数据库
SQL> recover datafile 7;
Media recovery complete.
SQL> alter database open;

Database altered.

SQL> 

小讯
上一篇 2025-02-20 21:07
下一篇 2025-03-12 21:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/62358.html