一,场景模拟
01,场景复现
大概就是先备份一个文件,然后进行归档切换操作,完成后再把旧的system01文件拷贝回去,这样的话system 就是一个旧的时间段了,启动肯定是会报错的.
查询数据库的scn号看看
似乎看起来没什么变化
查看表头试试?
发现有些不一样, 数据库open 的时候是会检测这个表头信息的,不一致的话肯定开启不了 。
二,问题处理
01,文件头说明
因为我们要修改数据文件头,因此我们需要关注四个偏移量offset点,分别为484、492、140和148
1、datafile 的file header 存储在第一个block里
2、Oracle considers four attributes of this data structure when determining if a datafile is sync with the other data files of the database:(不同oracle版本offset可能不同)
(1)kscnbas (at offset 484) – SCN of last change to the datafile.
(2)kcvcptim (at offset 492) -Time of the last change to the datafile.
(3)kcvfhcpc (at offset 140) – Checkpoint count.
(4)kcvfhccc (at offset 148) – Unknown, but is always 1 less than thecheckpoint point count.
Oracle有4个属性来判断datafile 是否和其他的datafile 一致,如果都一致,可以正常操作,如果不一致,那么会报ORA-01113错误
02, 文件头对比查看
正常文件头信息:
1 BBED> set filename '/u01/app/oracle/oradata/oracle01/users01.dbf' 2 FILENAME /u01/app/oracle/oradata/oracle01/users01.dbf 3 4 BBED> set offset 494 5 OFFSET 494 6 7 BBED> dump 8 File: /u01/app/oracle/oradata/oracle01/users01.dbf (4) 9 Block: 1 Offsets: 494 to 1005 Dba:0x01000001 10 ------------------------------------------------------------------------ 11 ab3e0100 bdc8c301 00000200 00001000 00000200 00000000 00000000 00000000 12 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 13 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 14 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 15 00000000 00000000 00000000 00000000 00000000 00000d00 0d000d00 01000000 16 00000000 00000000 00000200 000153b0 fe040000 00000000 00000000 00000000 17 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 18 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 19 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 20 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 21 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 22 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 23 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 24 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 25 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 26 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 27 28 <32 bytes per line> 29 30 BBED> set offset 492 31 OFFSET 492 32 33 BBED> dump 34 File: /u01/app/oracle/oradata/oracle01/users01.dbf (4) 35 Block: 1 Offsets: 492 to 1003 Dba:0x01000001 36 ------------------------------------------------------------------------ 37 0bb1ab3e 0100bdc8 c3010000 02000000 10000000 02000000 00000000 00000000 38 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 39 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 40 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 41 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 42 00000000 00000000 00000000 02000001 53b0fe04 00000000 00000000 00000000 43 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 44 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 45 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 46 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 47 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 48 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 49 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 50 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 51 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 52 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 53 54 <32 bytes per line> 55 56 BBED> set offset 140 57 OFFSET 140 58 59 BBED> dump 60 File: /u01/app/oracle/oradata/oracle01/users01.dbf (4) 61 Block: 1 Offsets: 140 to 651 Dba:0x01000001 62 ------------------------------------------------------------------------ 63 d5d39f3e 13d29f3e d4d39f3e 0dbe7900 00000000 f121fa3b 0100eb1f 34050000 64 02000000 10000000 02000000 00000000 00000000 00000000 00000000 00000000 65 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 66 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 67 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 68 00000000 00000000 00000000 80020000 00000000 00000000 00000000 00000000 69 04000000 05005553 45525300 00000000 00000000 00000000 00000000 00000000 70 00000000 04000000 00000000 00000000 00000000 00000000 00000000 00000000 71 00000000 00000000 00000000 00000000 00000000 3ef4503e 374f9504 00000000 72 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 73 00000000 00000000 00000000 00000000 00000000 00000000 c0f41a05 00006909 74 0bb1ab3e 0100bdc8 c3010000 02000000 10000000 02000000 00000000 00000000 75 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 76 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 77 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 78 00000000 00000000 00000000 00000000 00000000 00000000 0d000d00 0d000100 79 80 <32 bytes per line> 81 82 BBED> set offset 148 83 OFFSET 148 84 85 BBED> dump 86 File: /u01/app/oracle/oradata/oracle01/users01.dbf (4) 87 Block: 1 Offsets: 148 to 659 Dba:0x01000001 88 ------------------------------------------------------------------------ 89 d4d39f3e 0dbe7900 00000000 f121fa3b 0100eb1f 34050000 02000000 10000000 90 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 91 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 92 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 93 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 94 00000000 80020000 00000000 00000000 00000000 00000000 04000000 05005553 95 45525300 00000000 00000000 00000000 00000000 00000000 00000000 04000000 96 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 97 00000000 00000000 00000000 3ef4503e 374f9504 00000000 00000000 00000000 98 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 99 00000000 00000000 00000000 00000000 c0f41a05 00006909 0bb1ab3e 0100bdc8 100 c3010000 02000000 10000000 02000000 00000000 00000000 00000000 00000000 101 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 102 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 103 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 104 00000000 00000000 00000000 00000000 0d000d00 0d000100 00000000 00000000 105 106 <32 bytes per line>