测试环境
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




