设为首页 收藏本站
查看: 313|回复: 0

[经验分享] oracle data file header replace(测)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-28 11:22:52 | 显示全部楼层 |阅读模式
SQL> create tablespace rm_tbs datafile 'f1.dbf' size 10m;
Tablespace created.
SQL> select file#,name from v$datafile;
[oracle@VSZ-ORCLE-jftest ~]$ rm /home/oracle/product/10g/dbs/f1.dbf
[oracle@VSZ-ORCLE-jftest ~]$ exit
exit
SQL> select file#,name from v$datafile;
13  /home/oracle/product/10g/dbs/f1.dbf
13 rows selected.
SQL> alter tablespace rm_tbs add datafile 'f2.dbf' size 10m;
Tablespace altered.
SQL> select file#,name from v$datafile;
13 /home/oracle/product/10g/dbs/f1.dbf
14 /home/oracle/product/10g/dbs/f2.dbf

14 rows selected.
SQL> shutdown immediate
ORA-03113: end-of-file on communication channel
[oracle@VSZ-ORCLE-jftest ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Jul 25 09:37:29 2014
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size                  2097656 bytes
Variable Size             654315016 bytes
Database Buffers         1476395008 bytes
Redo Buffers               14675968 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
ORA-01110: data file 13: '/home/oracle/product/10g/dbs/f1.dbf'
SQL>        
SQL> select file#||' '||name||' '||bytes from v$datafile;
11 /home/oracle/product/10g/dbs/datafile2.dbf 10485760
12 /home/oracle/product/10g/dbs/system_audit_01.dbf 104857600
13 /home/oracle/product/10g/dbs/f1.dbf 10485760
14 /home/oracle/product/10g/dbs/f2.dbf 10485760
Database mounted.
ORA-01122: database file 13 failed verification check
ORA-01110: data file 13: '/home/oracle/product/10g/dbs/f1.dbf'
ORA-01204: file number is 14 rather than 13 - wrong file
############################## bbed --rdba_kcbh
BBED> map /v
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                                     Dba:0x03400001     --正确数据
------------------------------------------------------------
BBED> p kcvfhbfh
struct kcvfhbfh, 20 bytes                   @0      
   ub1 type_kcbh                            @0        0x0b
   ub1 frmt_kcbh                            @1        0xa2
   ub1 spare1_kcbh                          @2        0x00
   ub1 spare2_kcbh                          @3        0x00
   ub4 rdba_kcbh                            @4        0x03800001   --错误数据:
   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       0xd060
   ub2 spare3_kcbh                          @18       0x0000
BBED> sum apply
Check value for File 13, Block 1:
current = 0xd0a0, required = 0xd0a0
############################## bbed --kcvfhrfn
BBED> show
        FILE#           13
        BLOCK#          1
        OFFSET          368
        DBA             0x03400001 (54525953 13,1)
        FILENAME        /home/oracle/product/10g/dbs/f1.dbf
        BIFILE          bifile.bbd
        LISTFILE        /home/oracle/hjbbed/bbedlist
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           80
        COUNT           512
        LOGFILE         log.bbd
        SPOOL           No
BBED> dump
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  368 to  879           Dba:0x03400001
------------------------------------------------------------------------
0e000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 3892b92a 01000000 00000000 00000000
BBED> modify /x 0d
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  368 to  879           Dba:0x03400001
------------------------------------------------------------------------
0d000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 3892b92a 01000000 00000000 00000000
BBED> sum apply
Check value for File 13, Block 1:
current = 0xd0a3, required = 0xd0a3
############################## bbed --kccfhfno
BBED> p kcvfhhdr
struct kcvfhhdr, 76 bytes                   @20      
   ub4 kccfhswv                             @20       0x00000000
   ub4 kccfhcvn                             @24       0x0a200500
   ub4 kccfhdbi                             @28       0x07e116ae
   text kccfhdbn[0]                         @32      T
   text kccfhdbn[1]                         @33      E
   text kccfhdbn[2]                         @34      X
   text kccfhdbn[3]                         @35      T
   text kccfhdbn[4]                         @36      
   text kccfhdbn[5]                         @37      
   text kccfhdbn[6]                         @38      
   text kccfhdbn[7]                         @39      
   ub4 kccfhcsq                             @40       0x000091ad
   ub4 kccfhfsz                             @44       0x00000500
   s_blkz kccfhbsz                          @48       0x00
   ub2 kccfhfno                             @52       0x000e
############################## bbed --kscnbas   
BBED> modify /x 0d
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:   52 to  563           Dba:0x03400001
------------------------------------------------------------------------
0d000300 00000000 00000000 00000000 00000000 00000000 00000000 00000000  

BBED> p kcvfhcrs
struct kcvfhcrs, 8 bytes                    @100     
   ub4 kscnbas                              @100      0x01addf00
   ub2 kscnwrp                              @104      0x0000
BBED>   set offset 100
        OFFSET          100
BBED> dump
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  100 to  611           Dba:0x03400001
------------------------------------------------------------------------
00dfad01 00000000 378ee432 b01a642f a9ec0500 00000000 00000000 00000000
00000000 00000400 02000000 00000000 01000000 00000000 00000000 00000000
BBED> modify /x cc  
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  100 to  611           Dba:0x03400001
------------------------------------------------------------------------
ccdfad01 00000000 378ee432 b01a642f a9ec0500 00000000 00000000 00000000

BBED> sum apply
############################## bbed --kscnbas
  
SQL> alter database datafile 13 online;
alter database datafile 13 online
*
ERROR at line 1:
ORA-01122: database file 13 failed verification check
ORA-01110: data file 13: '/home/oracle/product/10g/dbs/f1.dbf'
ORA-01202: wrong incarnation of this file - wrong creation time
############################## bbed --kcvfhcrt
BBED> p kcvfhcrt
ub4 kcvfhcrt                                @108      0x32e48e37
BBED> set offset 108
        OFFSET          108
BBED> dump
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  108 to  619           Dba:0x03400001
------------------------------------------------------------------------
378ee432 b01a642f a9ec0500 00000000 00000000 00000000 00000000 00000400
02000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000
BBED> modify /x 8d
File: /home/oracle/product/10g/dbs/f1.dbf (13)
Block: 1                Offsets:  109 to  620           Dba:0x03400001
------------------------------------------------------------------------
8de432b0 1a642fa9 ec050000 00000000 00000000 00000000 00000000 00040002
00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000000
BBED> sum apply
Check value for File 13, Block 1:
current = 0xd2b3, required = 0xd2b3
SQL> select file#,to_char(creation_time,'yyyymmdd hh24miss') from v$datafile;

        12 20140709 153030
        13 20140725 093536
        14 20140725 093655
SQL>  alter database datafile 13 online;
    alter database datafile 13 online
ERROR at line 1:
ORA-01113: file 13 needs media recovery if it was restored from backup, or END 【不重启服务器可能没这个问题】
BACKUP if it was not
ORA-01110: data file 13: '/home/oracle/product/10g/dbs/f1.dbf'
SQL> recover datafile 13;
Media recovery complete.
SQL> alter database datafile 13 online;
Database altered.
--时间信息换算如下:
SELECT TO_NUMBER('32e48e37','XXXXXXXX')  from dual
853839415  --十进制
26 06 24 09 36 55--差异天数
时间原来这样算
select 26*12*31*24*60*60 --年
       +6*31*24*60*60+   --月
       24*24*60*60+      --天
       9*60*60+          --小时
       36*60             --分钟
       +55 from dual    --s
20140725 093536
26 06 24 09 35 36--差异天数
select 26*12*31*24*60*60 --年
       +6*31*24*60*60+   --月
       24*24*60*60+      --天
       9*60*60+          --小时
       35*60             --分钟
       +36 from dual    --s

853839336
select to_char(853839336,'XXXXXXXX') from dual          -- 32E48DE8  文件13创建时间
select to_char(853839415,'XXXXXXXX') from dual          -- 32E48E37
SELECT TO_NUMBER('32E48DE8','XXXXXXXX')  from dual
853839336

---
01addf00
SELECT TO_NUMBER('01addf00','XXXXXXXX')  from dual
--28172032
select to_char(28172032,'XXXXXXXX') from dual
--1ADDF00
select to_char(28171980,'XXXXXXXX') from dual
-- 1ADDECC
--这个实验告诉我们,实验要自己做,做了才知道哪一步很重要..
其他

需要调整的是:

ub4 rdba_kcbh                         @4      ---data block address

ub2 kccfhfno                          @52     ---file number

ub4 kscnbas                           @100    ---scn bas

ub4 kcvfhcrt                           @108    ---file create time

ub4 kcvfhrfn                           @368    ---reference file number



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-22763-1-1.html 上篇帖子: Oracle OS认证和口令文件认证方法 下篇帖子: 如何彻底删除Oracle数据库,以创建相同实例名称的库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表