sys @ORADB 2023 - 10 - 04 23 : 24 : 43 > startup mount ORACLE instance started. Total System Global Area 5016385624 bytes Fixed Size 8906840 bytes Variable Size 905969664 bytes Database Buffers 4093640704 bytes Redo Buffers 7868416 bytes Database mounted.
sys @ORADB 04 -OCT - 23 > alter session set events '10046 trace name context forever,level 8' ; Session altered.
sys @ORADB 04 -OCT - 23 > alter database open ; Database altered.
sys @ORADB 04 -OCT - 23 > alter session set events '10046 trace name context off' ; Session altered.
sys @ORADB 04 -OCT - 23 > select value from v$diag_info where name = 'Default Trace File' ; VALUE -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_ora_69514 .trc
WAIT #140100028296592: nam='db file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=62376426604
登录bbed:
[oracle@wy19c:~]$ bbed parfile=par.txt
info查看:
BBED> info File# Name Size(blks) ----- ---- ---------- 1 /oradata/ORADB/system01.dbf 116480 3 /oradata/ORADB/sysaux01.dbf 76800 4 /oradata/ORADB/undotbs01.dbf 44800 7 /oradata/ORADB/users01.dbf 640
破坏system文件头:
BBED > copy file 7 block 10 to file 1 block 1 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 0 to 511 Dba : 0x00400001 ------------------------------------------------------------------------ 1ea20000 0a00c001 6f800000 00000204 65010000 07000000 80403600 00000000 00000000 00f80000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
BBED > sum apply Check value for File 1 , Block 1 : current = 0x0165 , required = 0x0165
sys @ORADB 2023 - 10 - 04 23 : 59 : 12 > shu immediate ORA - 01122 : database file 1 failed verification check ORA - 01110 : data file 1 : '/oradata/ORADB/system01.dbf' ORA - 01210 : data file header is media corrupt
sys @ORADB 2023 - 10 - 04 23 : 59 : 36 > shutdown abort ORACLE instance shut down. sys @ORADB 2023 - 10 - 04 23 : 59 : 48 > startup ORACLE instance started. Total System Global Area 5016385624 bytes Fixed Size 8906840 bytes Variable Size 905969664 bytes Database Buffers 4093640704 bytes Redo Buffers 7868416 bytes Database mounted. ORA - 01122 : database file 1 failed verification check ORA - 01110 : data file 1 : '/oradata/ORADB/system01.dbf' ORA - 01210 : data file header is media corrupt
无效块类型:
BBED > set file 1 block 1 FILE # 1 BLOCK # 1 BBED > map /v File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Dba : 0x00400001 ------------------------------------------------------------ BBED - 00400 : invalid blocktype ( 30 )
构造文件头结构:
BBED > set file 3 block 1 FILE # 3 BLOCK # 1 BBED > map /v File : /oradata/ORADB/sysaux01 .dbf ( 3 ) Block : 1 Dba : 0x00c00001 ------------------------------------------------------------ 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 > copy file 3 block 1 to file 1 block 1 Warning : contents of previous BIFILE will be lost. Proceed ? (Y/N ) y File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 0 to 511 Dba : 0x00400001 ------------------------------------------------------------------------ 0ba20000 0100c000 00000000 00000104 8a9c0000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x9c8a , required = 0x9c8a
查看文件头结构:
BBED > set file 1 block 1 FILE # 1 BLOCK # 1 BBED > map /v File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Dba : 0x00400001 ------------------------------------------------------------ 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
修复文件头需要调整部分:
rdba_kcbh(offset 4) 文件头block的rdba地址 kccfhfsz (offset 44) 文件大小 kccfhfno (offset 52) datafile文件号 kcvfhrdb (offset 96) root dba kscnbas (offset 100) v$datafile.creation_change# kcvfhcrt (offset 108) v$datafile.creation_time kcvfhsta (offset 138) 文件状态 kcvfhtsn (offset 332) 表空间号v$datafile.ts# kcvfhtln (offset 336) 表空间名称字符长度 kcvfhtnm (offset 338) 表空间名称v$tablespace.name kcvfhrfn (offset 368) 相对文件号v$datafile.rfile# kscnbas (offset 484) checkpoint scn kcvcptim (offset 492) last checkpoint time kcvfhcpc (offset 144) Datafile checkpoint count
rdba文件转换:
BBED > p kcvfhbfh struct kcvfhbfh , 20 bytes @0 ub1 type_kcbh @0 0x0b ub1 frmt_kcbh @1 0xa2 ub2 wrp2_kcbh @2 0x0000 ub4 rdba_kcbh @4 0x00c00001 ub4 bas_kcbh @8 0x00000000 ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0x01 ub1 flg_kcbh @15 0x04 (KCBHFCKV ) ub2 chkval_kcbh @16 0x9c8a ub2 spare3_kcbh @18 0x0000
16进制转换成10进制:
select dbms_utility .data_block_address_file (to_number ( 'c00001' , 'XXXXXXXX' )) file_id ,dbms_utility .data_block_address_block (to_number ( 'c00001' , 'XXXXXXXX' )) block_id from dual ; 3号文件第1个块
修复文件头块的rdba:
BBED > set file 1 block 1 offset 4 FILE # 1 BLOCK # 1 OFFSET 4 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 4 to 515 Dba : 0x00400001 ------------------------------------------------------------------------ 0100c000 00000000 00000104 8a9c0000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 < 32 bytes per line > BBED > modify /x 0x00400001 offset 4 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 4 to 515 Dba : 0x00400001 ------------------------------------------------------------------------ 00400001 00000000 00000104 8a9c0000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0xdd4b , required = 0xdd4b
修复文件头文件大小:
BBED > p kcvfhhdr struct kcvfhhdr , 76 bytes @20 ub4 kccfhswv @20 0x00000000 ub4 kccfhcvn @24 0x13000000 ub4 kccfhdbi @28 0xacff25c8 text kccfhdbn [ 0 ] @32 O text kccfhdbn [ 1 ] @33 R text kccfhdbn [ 2 ] @34 A text kccfhdbn [ 3 ] @35 D text kccfhdbn [ 4 ] @36 B text kccfhdbn [ 5 ] @37 text kccfhdbn [ 6 ] @38 text kccfhdbn [ 7 ] @39 ub4 kccfhcsq @40 0x00000bca ub4 kccfhfsz @44 0x00013b00 s_blkz kccfhbsz @48 0x00 ub2 kccfhfno @52 0x0003 ub2 kccfhtyp @54 0x0003 ub4 kccfhacid @56 0x00000000 ub4 kccfhcks @60 0x00000000 text kccfhtag [ 0 ] @64 text kccfhtag [ 1 ] @65 text kccfhtag [ 2 ] @66 text kccfhtag [ 3 ] @67 text kccfhtag [ 4 ] @68 text kccfhtag [ 5 ] @69 text kccfhtag [ 6 ] @70 text kccfhtag [ 7 ] @71 text kccfhtag [ 8 ] @72 text kccfhtag [ 9 ] @73 text kccfhtag [ 10 ] @74 text kccfhtag [ 11 ] @75 text kccfhtag [ 12 ] @76 text kccfhtag [ 13 ] @77 text kccfhtag [ 14 ] @78 text kccfhtag [ 15 ] @79 text kccfhtag [ 16 ] @80 text kccfhtag [ 17 ] @81 text kccfhtag [ 18 ] @82 text kccfhtag [ 19 ] @83 text kccfhtag [ 20 ] @84 text kccfhtag [ 21 ] @85 text kccfhtag [ 22 ] @86 text kccfhtag [ 23 ] @87 text kccfhtag [ 24 ] @88 text kccfhtag [ 25 ] @89 text kccfhtag [ 26 ] @90 text kccfhtag [ 27 ] @91 text kccfhtag [ 28 ] @92 text kccfhtag [ 29 ] @93 text kccfhtag [ 30 ] @94 text kccfhtag [ 31 ] @95
查看文件大小:
-rw-r-----. 1 oracle oinstall 954212352 Oct 5 04:48 system01.dbf
16进制转换:
select ( 954212352 - 8192 )/8192 2 from dual ; ( 954212352 - 8192 )/8192 --------------------- 116480 select to_char ( '116480' , 'xxxxxxxxxxxxxxxx' ) from dual ; TO_CHAR ( '116480' , ----------------- 1c700
文件大小调整:
BBED > set file 1 block 1 offset 44 FILE # 1 BLOCK # 1 OFFSET 44 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 44 to 555 Dba : 0x00400001 ------------------------------------------------------------------------ 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x 00c70100 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 44 to 555 Dba : 0x00400001 ------------------------------------------------------------------------ 00c70100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x214b , required = 0x214b
修改文件头的文件号:
BBED > p kcvfhhdr struct kcvfhhdr , 76 bytes @20 ub4 kccfhswv @20 0x00000000 ub4 kccfhcvn @24 0x13000000 ub4 kccfhdbi @28 0xacff25c8 text kccfhdbn [ 0 ] @32 O text kccfhdbn [ 1 ] @33 R text kccfhdbn [ 2 ] @34 A text kccfhdbn [ 3 ] @35 D text kccfhdbn [ 4 ] @36 B text kccfhdbn [ 5 ] @37 text kccfhdbn [ 6 ] @38 text kccfhdbn [ 7 ] @39 ub4 kccfhcsq @40 0x00000bca ub4 kccfhfsz @44 0x0001c700 s_blkz kccfhbsz @48 0x00 ub2 kccfhfno @52 0x0003 ub2 kccfhtyp @54 0x0003 ub4 kccfhacid @56 0x00000000 ub4 kccfhcks @60 0x00000000 text kccfhtag [ 0 ] @64 text kccfhtag [ 1 ] @65 text kccfhtag [ 2 ] @66 text kccfhtag [ 3 ] @67 text kccfhtag [ 4 ] @68 text kccfhtag [ 5 ] @69 text kccfhtag [ 6 ] @70 text kccfhtag [ 7 ] @71 text kccfhtag [ 8 ] @72 text kccfhtag [ 9 ] @73 text kccfhtag [ 10 ] @74 text kccfhtag [ 11 ] @75 text kccfhtag [ 12 ] @76 text kccfhtag [ 13 ] @77 text kccfhtag [ 14 ] @78 text kccfhtag [ 15 ] @79 text kccfhtag [ 16 ] @80 text kccfhtag [ 17 ] @81 text kccfhtag [ 18 ] @82 text kccfhtag [ 19 ] @83 text kccfhtag [ 20 ] @84 text kccfhtag [ 21 ] @85 text kccfhtag [ 22 ] @86 text kccfhtag [ 23 ] @87 text kccfhtag [ 24 ] @88 text kccfhtag [ 25 ] @89 text kccfhtag [ 26 ] @90 text kccfhtag [ 27 ] @91 text kccfhtag [ 28 ] @92 text kccfhtag [ 29 ] @93 text kccfhtag [ 30 ] @94 text kccfhtag [ 31 ] @95 BBED > set file 1 block 1 FILE # 1 BLOCK # 1 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 0 to 511 Dba : 0x00400001 ------------------------------------------------------------------------ 0ba20000 00400001 00000000 00000104 4b210000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 00c70100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 < 32 bytes per line > BBED > modify /x 01 offset 52 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 52 to 563 Dba : 0x00400001 ------------------------------------------------------------------------ 01000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x2149 , required = 0x2149
修复文件头root数据块号:
BBED > p kcvfhrdb ub4 kcvfhrdb @96 0x00000000 BBED > set file 1 block 1 offset 96 FILE # 1 BLOCK # 1 OFFSET 96 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 96 to 607 Dba : 0x00400001 ------------------------------------------------------------------------ 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x 08024000 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 96 to 607 Dba : 0x00400001 ------------------------------------------------------------------------ 08024000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x2301 , required = 0x2301
修复文件头创建scn:
BBED> p kcvfhcrs struct kcvfhcrs, 8 bytes @100 ub4 kscnbas @100 0x00000007 ub2 kscnwrp @104 0x8000 ub2 kscnwrp2 @106 0x0000
查看scn,与文件对比
select file #,creation_change# from v$datafile; FILE # CREATION_CHANGE# ---------- ---------------- 1 9 3 5480 4 1920446 7 32876 idle 2023 - 10 - 05 05 : 17 : 45 > select to_char ( 5480 , 'xxxxxxxxxx' ) from dual ; TO_CHAR ( 5480 ) ----------- 1568 BBED > set file 1 block 1 offset 100 FILE # 1 BLOCK # 1 OFFSET 100 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 100 to 611 Dba : 0x00400001 ------------------------------------------------------------------------ 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
修改scn
BBED > set file 1 block 1 offset 100 FILE # 1 BLOCK # 1 OFFSET 100 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 100 to 611 Dba : 0x00400001 ------------------------------------------------------------------------ 07000000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x 09000000 offset 100 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 100 to 611 Dba : 0x00400001 ------------------------------------------------------------------------ 09000000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x3660 , required = 0x3660
修复文件头的文件创建时间:
BBED > set file 1 block 1 offset 108 FILE # 1 BLOCK # 1 OFFSET 108 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 108 to 619 Dba : 0x00400001 ------------------------------------------------------------------------ b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line >
select file #,to_char(creation_time,'yyyy-mm-dd hh24:mi:ss') creation_time_file, (to_char (creation_time , 'yyyy' ) - 1988 ) * 12 * 31 * 24 * 3600 + 2 3 (to_char (creation_time , 'mm' ) - 1 ) * 31 * 24 * 3600 4 + (to_char (creation_time , 'dd' ) - 1 ) * 24 * 3600 5 +to_char (creation_time , 'hh24' ) * 3600 6 +to_char (creation_time , 'mi' ) * 60 +to_char (creation_time , 'ss' ) creation_name_scn 7 8 from v$datafile order by 1 ; FILE # CREATION_TIME_FILE CREATION_NAME_SCN ---------- ------------------- ----------------- 1 2019 - 04 - 17 00 : 56 : 09 1005785769 3 2019 - 04 - 17 00 : 56 : 21 1005785781 4 2019 - 04 - 17 02 : 11 : 02 1005790262 7 2019 - 04 - 17 00 : 57 : 08 1005785828 select to_char ( 1005785769 , 'xxxxxxxxxxxxxxxx' ) from dual ; TO_CHAR ( 100578576 ----------------- 3bf312a9
BBED > modify /x a9 offset 108 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 108 to 619 Dba : 0x00400001 ------------------------------------------------------------------------ a912f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x 12 offset 109 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 109 to 620 Dba : 0x00400001 ------------------------------------------------------------------------ 12f33b4a 737e44d1 4f1d0000 80000000 00000000 00000000 00000000 0004003c 0000003f 2781443b 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000006 00535953 41555800 00000000 00000000 00000000 00000000 00000000 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000009f 12f33b01 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000004c 62240000 80000027 21824401 00000003 000000d4 cb030010 004c9502 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x f3 offset 110 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 110 to 621 Dba : 0x00400001 ------------------------------------------------------------------------ f33b4a73 7e44d14f 1d000080 00000000 00000000 00000000 00000000 04003c00 00003f27 81443b00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 00000600 53595341 55580000 00000000 00000000 00000000 00000000 00000000 00000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00009f12 f33b0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004c62 24000080 00002721 82440100 00000300 0000d4cb 03001000 4c950200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > modify /x 3b offset 111 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 111 to 622 Dba : 0x00400001 ------------------------------------------------------------------------ 3b4a737e 44d14f1d 00008000 00000000 00000000 00000000 00000004 003c0000 003f2781 443b0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010000 00060053 59534155 58000000 00000000 00000000 00000000 00000000 00000000 00030000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 009f12f3 3b010000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 004c6224 00008000 00272182 44010000 00030000 00d4cb03 0010004c 95020000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line >
修复文件头的文件状态:
BBED > p offset 138 kcvfh .kcvfhsta -------------- ub2 kcvfhsta @138 0x0004 (KCVFHOFZ ) BBED > set file 1 block 1 offset 138 FILE # 1 BLOCK # 1 OFFSET 138 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 138 to 649 Dba : 0x00400001 ------------------------------------------------------------------------ 04003c00 00003f27 81443b00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000100 00000600 53595341 55580000 00000000 00000000 00000000 00000000 00000000 00000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00009f12 f33b0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004c62 24000080 00002721 82440100 00000300 0000d4cb 03001000 4c950200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000d00 0d000d00 < 32 bytes per line >
修复文件头的表空间号:
BBED > p kcvfhtsn sword kcvfhtsn @332 1 BBED > set file 1 block 1 offset 332 FILE # 1 BLOCK # 1 OFFSET 332 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 332 to 843 Dba : 0x00400001 ------------------------------------------------------------------------ 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 00000000 0200c000 b24b1d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 02916811 3cac5680 b6937566 0fdd2c96 73000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002ca567 a3ff484f 36bf9b7a < 32 bytes per line >
查看1号文件表空间号:
select file #,ts# from v$datafile; FILE # TS# ---------- ---------- 1 0 3 1 4 2 7 4
调整表空间号:
BBED > modify /x 00 offset 332 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 332 to 843 Dba : 0x00400001 ------------------------------------------------------------------------ 00000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 00000000 0200c000 b24b1d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 02916811 3cac5680 b6937566 0fdd2c96 73000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002ca567 a3ff484f 36bf9b7a < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x367d , required = 0x367d
查看修复文件头表空间长度
BBED > p kcvfhtln ub2 kcvfhtln @336 0x0006 BBED > p kcvfhtnm text kcvfhtnm [ 0 ] @338 S text kcvfhtnm [ 1 ] @339 Y text kcvfhtnm [ 2 ] @340 S text kcvfhtnm [ 3 ] @341 A text kcvfhtnm [ 4 ] @342 U text kcvfhtnm [ 5 ] @343 X
修复文件头表空间名称:
BBED > p kcvfhtnm text kcvfhtnm [ 0 ] @338 S text kcvfhtnm [ 1 ] @339 Y text kcvfhtnm [ 2 ] @340 S text kcvfhtnm [ 3 ] @341 A text kcvfhtnm [ 4 ] @342 U text kcvfhtnm [ 5 ] @343 X BBED > set file 1 block 1 offset 338 FILE # 1 BLOCK # 1 OFFSET 338 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 338 to 849 Dba : 0x00400001 ------------------------------------------------------------------------ 53595341 55580000 00000000 00000000 00000000 00000000 00000000 00000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00009f12 f33b0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00004c62 24000080 00002721 82440100 00000300 0000d4cb 03001000 4c950200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000d00 0d000d00 01000000 00000000 00000000 00000200 c000b24b 1d000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000291 68113cac 5680b693 75660fdd 2c967300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000002c a567a3ff 484f36bf 9b7ad99d 4b58ec00 < 32 bytes per line >
select dump ( 'SYSTEM' , 16 ) from dual ; DUMP ( 'SYSTEM' , 16 ) ------------------------------- Typ = 96 Len = 6 : 53 , 59 , 53 , 54 , 45 , 4d
修改后3个字母,偏移量为341
BBED > set file 1 block 1 offset 341 FILE # 1 BLOCK # 1 OFFSET 341 BBED > modify /x 54454d File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 341 to 852 Dba : 0x00400001 ------------------------------------------------------------------------ 54454d00 00000000 00000000 00000000 00000000 00000000 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000009f 12f33b01 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000004c 62240000 80000027 21824401 00000003 000000d4 cb030010 004c9502 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 000d000d 00010000 00000000 00000000 00000002 00c000b2 4b1d0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000002 9168113c ac5680b6 9375660f dd2c9673 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 2ca567a3 ff484f36 bf9b7ad9 9d4b58ec 00060000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x366d , required = 0x366d
修复文件头的相对文件号:
BBED > p kcvfhrfn ub4 kcvfhrfn @368 0x00000003 BBED > set file 1 block 1 offset 368 FILE # 1 BLOCK # 1 OFFSET 368 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 368 to 879 Dba : 0x00400001 ------------------------------------------------------------------------ 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 00000000 0200c000 b24b1d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 02916811 3cac5680 b6937566 0fdd2c96 73000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002ca567 a3ff484f 36bf9b7a d99d4b58 ec000600 00000000 00000000 00000000 00000000 00000000 00000000 00000000 BBED > modify /x 01 File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 368 to 879 Dba : 0x00400001 ------------------------------------------------------------------------ 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 00000000 0200c000 b24b1d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 02916811 3cac5680 b6937566 0fdd2c96 73000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002ca567 a3ff484f 36bf9b7a d99d4b58 ec000600 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line > BBED > sum apply Check value for File 1 , Block 1 : current = 0x366f , required = 0x366f
查看文件头检查点的SCN:
BBED> p kcvfhckp struct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x0024624c
select file #,CREATION_CHANGE#,CHECKPOINT_CHANGE# ,UNRECOVERABLE_CHANGE#,LAST_CHANGE#,OFFLINE_CHANGE# from v$datafile order by 1; 2 FILE # CREATION_CHANGE# CHECKPOINT_CHANGE# UNRECOVERABLE_CHANGE# LAST_CHANGE# OFFLINE_CHANGE# ---------- ---------------- ------------------ --------------------- ------------ --------------- 1 9 2384460 0 1920976 3 5480 2384460 0 1920976 4 1920446 2384460 0 1920976 7 32876 2384460 0 1920976
select to_char ( 2384460 , 'xxxxxxxxxxxxxxxx' ) from dual ; TO_CHAR ( 2384460 , ' ----------------- 24624c
查看修复文件头的检查点时间:
BBED > set file 1 block 1 offset 492 FILE # 1 BLOCK # 1 OFFSET 492 BBED > dump File : /oradata/ORADB/system01 .dbf ( 1 ) Block : 1 Offsets : 492 to 1003 Dba : 0x00400001 ------------------------------------------------------------------------ 27218244 01000000 03000000 d4cb0300 10004c95 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 00000000 0200c000 b24b1d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 02916811 3cac5680 b6937566 0fdd2c96 73000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002ca567 a3ff484f 36bf9b7a d99d4b58 ec000600 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 < 32 bytes per line >
select file #,to_char(CHECKPOINT_TIME,'yyyy-mm-dd hh24:mi:ss') CHECKPOINT_TIME_file , 2 3 (to_char (CHECKPOINT_TIME , 'yyyy' ) - 1988 ) * 12 * 31 * 24 * 3600 4 + (to_char (CHECKPOINT_TIME , 'mm' ) - 1 ) * 31 * 24 * 3600 5 + (to_char (CHECKPOINT_TIME , 'dd' ) - 1 ) * 24 * 3600 6 +to_char (CHECKPOINT_TIME , 'hh24' ) * 3600 7 +to_char (CHECKPOINT_TIME , 'mi' ) * 60 +to_char (CHECKPOINT_TIME , 'ss' ) CHECKPOINT_TIME_scn 8 9 from v$datafile order by 1 ; FILE # CHECKPOINT_TIME_FIL CHECKPOINT_TIME_SCN ---------- ------------------- ------------------- 1 2023 - 10 - 04 23 : 54 : 15 1149378855 3 2023 - 10 - 04 23 : 54 : 15 1149378855 4 2023 - 10 - 04 23 : 54 : 15 1149378855 7 2023 - 10 - 04 23 : 54 : 15 1149378855 select to_char ( 1149378855 , 'xxxxxxxxxxxxxxxxxxxxxxx' ) from dual ; 2 TO_CHAR ( 1149378855 , 'XXXX ------------------------ 44822127
使用dbv检查文件头修改是否正确:
dbv file= /oradata/ORADB/system01.dbf start=1 end=2 DBVERIFY: Release 19.0.0.0.0 - Production on Thu Oct 5 06:15:11 2023 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /oradata/ORADB/system01.dbf Page 1 is marked corrupt Corrupt block relative dba: 0x00400001 (file 1, block 1) Bad header found during dbv: Data in bad block: type: 11 format: 2 rdba: 0x01004000 last change scn: 0x0000.0000.00000000 seq: 0x1 flg: 0x04 spare3: 0x0 consistency value in tail: 0x00000b01 check value in block header: 0x366f computed block checksum: 0x0 DBVERIFY - Verification complete Total Pages Examined : 2 Total Pages Processed (Data) : 0 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 1 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 0 Total Pages Marked Corrupt : 1 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 2364120 (0.2364120)
出现错误,重新修改rdba部分
BBED> set file 1 block 1 offset 4 FILE# 1 BLOCK# 1 OFFSET 4 BBED> dump File: /oradata/ORADB/system01.dbf (1) Block: 1 Offsets: 4 to 515 Dba:0x00400001 ------------------------------------------------------------------------ 0100c000 00000000 00000104 8a9c0000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 <32 bytes per line> --修改此部分 BBED> modify /x 01004000 offset 4 File: /oradata/ORADB/system01.dbf (1) Block: 1 Offsets: 4 to 515 Dba:0x00400001 ------------------------------------------------------------------------ 00400001 00000000 00000104 8a9c0000 00000000 00000013 c825ffac 4f524144 42000000 ca0b0000 003b0100 00200000 03000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68150000 00800000 b512f33b 4a737e44 d14f1d00 00800000 00000000 00000000 00000000 00000400 3c000000 3f278144 3b000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01000000 06005359 53415558 00000000 00000000 00000000 00000000 00000000 00000000 03000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9f12f33b 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4c622400 00800000 27218244 01000000 03000000 d4cb0300 10004c95 02000000 <32 bytes per line> BBED> sum apply Check value for File 1, Block 1: current = 0xdd4b, required = 0xdd4b
再次检查文件头:
[oracle @wy19c :/oradata/ORADB ]$ dbv file = /oradata/ORADB/system01 .dbf start = 1 end = 2 DBVERIFY : Release 19.0.0.0.0 - Production on Thu Oct 5 06 : 20 : 04 2023 Copyright (c ) 1982 , 2019 , Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /oradata/ORADB/system01 .dbf DBVERIFY - Verification complete Total Pages Examined : 2 Total Pages Processed ( Data ) : 0 Total Pages Failing ( Data ) : 0 Total Pages Processed ( Index ) : 0 Total Pages Failing ( Index ) : 0 Total Pages Processed (Other ) : 2 Total Pages Processed (Seg ) : 0 Total Pages Failing (Seg ) : 0 Total Pages Empty : 0 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 2364120 ( 0.2364120 )
重新打开数据库:
alter database open ; Database altered. select open_mode from v$database ; OPEN_MODE -------------------- READ WRITE
