暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

Oracle 19c BBED跳过归档恢复

原创 木底木叉 云和恩墨 2022-04-28
1632

测试环境

create tablespace test datafile '/u01/app/oracle/oradata/ORCL/datafile/test01.dbf' size 1024m;

create user test identified by tiger default tablespace test;

grant dba to test;

conn test/tiger

create table t1(id int,name varchar2(100));
insert into t1 values(1,'tiger');
commit;
SQL> startup mount
ORACLE instance started.

Total System Global Area 1593831936 bytes
Fixed Size                  8897024 bytes
Variable Size             939524096 bytes
Database Buffers          637534208 bytes
Redo Buffers                7876608 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Next log sequence to archive   7
Current log sequence           7

一、备份

[oracle@19c03:/home/oracle]$rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Thu Apr 28 23:02:26 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1630835510)

RMAN> backup datafile 5;

Starting backup at 2022-04-28 23:02:34
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/ORCL/datafile/test01.dbf
channel ORA_DISK_1: starting piece 1 at 2022-04-28 23:02:36
channel ORA_DISK_1: finished piece 1 at 2022-04-28 23:02:37
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2022_04_28/o1_mf_nnndf_TAG20220428T230235_k6oc4d93_.bkp tag=TAG20220428T230235 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2022-04-28 23:02:37

Starting Control File and SPFILE Autobackup at 2022-04-28 23:02:37
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2022_04_28/o1_mf_s_1103238157_k6oc4fhy_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2022-04-28 23:02:38

二、删除部分归档

[oracle@19c03:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28]$ll
total 2464
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_10_k6oc6lrw_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_11_k6oc6ojv_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_12_k6oc6oox_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_13_k6oc6pgn_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_14_k6oc6qcb_.arc
-rw-r----- 1 oracle oinstall 2490880 Apr 28 23:03 o1_mf_1_7_k6oc6h0m_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_8_k6oc6ho0_.arc
-rw-r----- 1 oracle oinstall    4096 Apr 28 23:03 o1_mf_1_9_k6oc6l5j_.arc
[oracle@19c03:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28]$rm -rf o1_mf_1_10_k6oc6lrw_.arc 
[oracle@19c03:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28]$rm -rf o1_mf_1_11_k6oc6ojv_.arc 
[oracle@19c03:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28]$rm -rf o1_mf_1_12_k6oc6oox_.arc 
[oracle@19c03:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28]$ll
total 2452
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_13_k6oc6pgn_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_14_k6oc6qcb_.arc
-rw-r----- 1 oracle oinstall 2490880 Apr 28 23:03 o1_mf_1_7_k6oc6h0m_.arc
-rw-r----- 1 oracle oinstall    1024 Apr 28 23:03 o1_mf_1_8_k6oc6ho0_.arc
-rw-r----- 1 oracle oinstall    4096 Apr 28 23:03 o1_mf_1_9_k6oc6l5j_.arc

三、恢复数据文件

SQL> alter database datafile 5 offline;

Database altered.

RMAN> restore datafile 5;

Starting restore at 2022-04-28 23:09:51
using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/ORCL/datafile/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2022_04_28/o1_mf_nnndf_TAG20220428T230235_k6oc4d93_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2022_04_28/o1_mf_nnndf_TAG20220428T230235_k6oc4d93_.bkp tag=TAG20220428T230235
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 2022-04-28 23:09:55


SQL> alter database datafile 5 online;
alter database datafile 5 online
*
ERROR at line 1:
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/u01/app/oracle/oradata/ORCL/datafile/test01.dbf'


SQL> recover datafile 5;
ORA-00279: change 2324146 generated at 04/28/2022 23:02:36 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_7_k6oc6h0m
_.arc
ORA-00280: change 2324146 for thread 1 is in sequence #7


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel

SQL> set linesize 1000
SQL> recover datafile 5;
ORA-00279: change 2324146 generated at 04/28/2022 23:02:36 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_7_k6oc6h0m_.arc
ORA-00280: change 2324146 for thread 1 is in sequence #7


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00279: change 2324198 generated at 04/28/2022 23:03:42 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_8_k6oc6ho0_.arc
ORA-00280: change 2324198 for thread 1 is in sequence #8


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00279: change 2324201 generated at 04/28/2022 23:03:43 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_9_k6oc6l5j_.arc
ORA-00280: change 2324201 for thread 1 is in sequence #9


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00279: change 2324204 generated at 04/28/2022 23:03:46 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_10_k6oc6lrw_.arc
ORA-00280: change 2324204 for thread 1 is in sequence #10


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log '/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2022_04_28/o1_mf_1_10_k6oc6lrw_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7
SQL> select sequence#,to_char(sequence#,'xxxxxxxxxxxx') sequence,first_change#,to_char(first_change#,'xxxxxxxxxxx') scn from v$archived_log;

 SEQUENCE# SEQUENCE                   FIRST_CHANGE# SCN
---------- -------------------------- ------------- ------------------------
         7             7                    2322357       236fb5
         8             8                    2324198       2376e6
         9             9                    2324201       2376e9
        10             a                    2324204       2376ec -->  002376ec
        11             b                    2324207       2376ef
        12             c                    2324210       2376f2
        13             d                    2324213       2376f5 -->002376f5-->f5762300
        14             e                    2324216       2376f8

8 rows selected.

四、修改SCN

BBED> info
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------
     1  /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_k6hqxwt           0
     3  /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_k6hqzb4           0
     4  /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_k6hr0           0
     5  /u01/app/oracle/oradata/ORCL/datafile/test01.dbf                     0
     7  /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_k6hr04h7           0

BBED> set file 5 block 1
        FILE#           5
        BLOCK#          1

BBED> map /v
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1                                     Dba:0x01400001
------------------------------------------------------------
 Data File Header

 struct kcvfh, 1272 bytes                   @0       
    struct kcvfhbfh, 20 bytes               @0       
    struct kcvfhhdr, 76 bytes               @20      
    ub4 kcvfhrdb                            @96      
    struct kcvfhcrs, 8 bytes                @100     
    ub4 kcvfhcrt                            @108     
    ub4 kcvfhrlc                            @112     
    struct kcvfhrls, 8 bytes                @116     
    ub4 kcvfhbti                            @124     
    struct kcvfhbsc, 8 bytes                @128     
    ub2 kcvfhbth                            @136     
    ub2 kcvfhsta                            @138     
    struct kcvfhckp, 36 bytes               @484     
    ub4 kcvfhcpc                            @140     
    ub4 kcvfhrts                            @144     
    ub4 kcvfhccc                            @148     
    struct kcvfhbcp, 36 bytes               @152     
    ub4 kcvfhbhz                            @312     
    struct kcvfhxcd, 16 bytes               @316     
    sword kcvfhtsn                          @332     
    ub2 kcvfhtln                            @336     
    text kcvfhtnm[30]                       @338     
    ub4 kcvfhrfn                            @368     
    struct kcvfhrfs, 8 bytes                @372     
    ub4 kcvfhrft                            @380     
    struct kcvfhafs, 8 bytes                @384     
    ub4 kcvfhbbc                            @392     
    ub4 kcvfhncb                            @396     
    ub4 kcvfhmcb                            @400     
    ub4 kcvfhlcb                            @404     
    ub4 kcvfhbcs                            @408     
    ub2 kcvfhofb                            @412     
    ub2 kcvfhnfb                            @414     
    ub4 kcvfhprc                            @416     
    struct kcvfhprs, 8 bytes                @420     
    struct kcvfhprfs, 8 bytes               @428     
    ub4 kcvfhtrt                            @444     

 ub4 tailchk                                @8188    
 
 BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x002376ec
      ub2 kscnwrp                           @488      0x0000
      ub2 kscnwrp2                          @490      0x0000
   ub4 kcvcptim                             @492      0x41c21452
   ub2 kcvcpthr                             @496      0x0001
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x0000000a
         ub4 kcrbabno                       @504      0x00000002
         ub2 kcrbabof                       @508      0x0000
   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> dump /v offset 484
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1       Offsets:  484 to  995  Dba:0x01400001
-------------------------------------------------------
 ec762300 00000000 5214c241 01000000 l .v#.....R..A....
 0a000000 02000000 00000000 02000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 0d000d00 0d000100 00000000 00000000 l ................
 00000000 02004001 d34f1d00 00000000 l ......@..O......
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................
 00000000 00000000 00000000 00000000 l ................

 <16 bytes per line>
 
BBED> dump /v offset 484 count 32
File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1       Offsets:  484 to  515  Dba:0x01400001
-------------------------------------------------------
 ec762300 00000000 5214c241 01000000 l .v#.....R..A....
 0a000000 02000000 00000000 02000000 l ................

 <16 bytes per line>
 
BBED> modify /x f57623 offset 484
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1                Offsets:  484 to  515           Dba:0x01400001
------------------------------------------------------------------------
 f5762300 00000000 5214c241 01000000 0a000000 02000000 00000000 02000000 

 <32 bytes per line>

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

五、修改sequence

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x002376f5
      ub2 kscnwrp                           @488      0x0000
      ub2 kscnwrp2                          @490      0x0000
   ub4 kcvcptim                             @492      0x41c21452
   ub2 kcvcpthr                             @496      0x0001
   union u, 12 bytes                        @500     
      struct kcvcprba, 12 bytes             @500     
         ub4 kcrbaseq                       @500      0x0000000a
         ub4 kcrbabno                       @504      0x00000002
         ub2 kcrbabof                       @508      0x0000
   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> dump /v offset 500
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1       Offsets:  500 to  531  Dba:0x01400001
-------------------------------------------------------
 0a000000 02000000 00000000 02000000 l ................
 00000000 00000000 00000000 00000000 l ................

 <16 bytes per line>

BBED> modify /x    0d offset 500
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1                Offsets:  500 to  531           Dba:0x01400001
------------------------------------------------------------------------
 0d000000 02000000 00000000 02000000 00000000 00000000 00000000 00000000 

 <32 bytes per line>

BBED> sum apply;
Check value for File 5, Block 1:
current = 0x398f, required = 0x398f

BBED> dump /v offset 500
 File: /u01/app/oracle/oradata/ORCL/datafile/test01.dbf (5)
 Block: 1       Offsets:  500 to  531  Dba:0x01400001
-------------------------------------------------------
 0d000000 02000000 00000000 02000000 l ................
 00000000 00000000 00000000 00000000 l ................

 <16 bytes per line>

六、恢复、启动

SQL> recover datafile 5;
Media recovery complete.
SQL> alter database datafile 5 online;

Database altered.
最后修改时间:2022-04-29 11:07:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论