• 【理上网来喜迎十九大】外媒记者:全面依法治国为中国经济增长保驾护航 2019-07-05
  • “重庆造”国际一类新药 获批同时进入中美临床试验 2019-07-05
  • 企业服务行业跨越式发展 2018年神州顺利办聚焦企业人、财、物 2019-07-03
  • 土地不是劳动成果,而是一种自然资源,就像空气、阳光不是劳动成果而是自然资源一样,所以土地不具有价值,买房只应支付房屋费,不应该支付土地费。 2019-07-03
  • 阳泉市旅发委对全市挂牌督办建设项目进行督导 2019-07-03
  • “忻州工匠”“忻州技能标兵”评选活动启动 2019-07-02
  • 世界杯赞助商集体亮相球迷广场 海信站C位夺眼球 2019-07-01
  • 吃鸡蛋常犯8个错,这些技巧9成人不知道 2019-07-01
  • 父亲为监视孩子盗监控探头 不料IP未改反被“监控” 2019-06-29
  • 最高降7.02万 阿尔法·罗密欧全系调价 2019-06-28
  • 讲法治说情操 江北党员干部听“老马”宣讲“两会”精神 2019-06-23
  • 招聘启事丨西部网诚聘新媒体编辑记者、实习编辑等人员 2019-06-23
  • 南方日报:治理软件不止于“黑名单” 2019-06-21
  • 端午节遇上父亲节长沙楼市上演“宫心计” ——凤凰网房产长沙 2019-06-14
  • 美说唱歌手在迈阿密购买摩托遭遇中枪 疑似身亡说唱中枪-国际博览 2019-06-14
  • 数据库

    广东快乐十分app:Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复

    测试环境 
    OS:redhat6.6 
    oracle:12.1.0.2 
     BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。该工具不受Oracle支持,所以默认是没有生成可执行文件的,在使用前需要重新连接。 
    1.安装BBED 
    [[email protected] software]$ cp bbedus.msb $ORACLE_HOME/rdbms/mesg 
    [[email protected] software]$ cp sbbdpt.o $ORACLE_HOME/rdbms/lib 
    [[email protected] software]$ cp ssbbded.o $ORACLE_HOME/rdbms/lib 
    [[email protected] software]$ cd $ORACLE_HOME/rdbms/lib/ 
    [[email protected] lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed 

    Linking BBED utility (bbed) 
    rm -f /u01/app/oracle/product/12.1.0.2/db_1/rdbms/lib/bbed 
    /u01/app/oracle/product/12.1.0.2/db_1/bin/orald -o /u01/app/oracle/product/12.1.0.2/db_1/rdbms/lib/bbed -m64 -z noexecstack -Wl, 
    –disable-new-dtags -L/u01/app/oracle/product/12.1.0.2/db_1/rdbms/lib/ -L/u01/app/oracle/product/12.1.0.2/db_1/lib/ -L/u01/app/oracle/product/12.1.0.2/db_1/lib/stubs/   
    /u01/app/oracle/product/12.1.0.2/db_1/lib/s0main.o /u01/app/oracle/product/12.1.0.2/db_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/12.1.0.2/db_1/rdbms/lib/sbbdpt.o  
    `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -ldbtools12 -lclntsh -lclntshcore   
    `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12  
    `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12  
    `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/ldflags`   -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12  
    `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   
     `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/12.1.0.2/db_1/lib -lm    
     `cat /u01/app/oracle/product/12.1.0.2/db_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/12.1.0.2/db_1/lib 
    [[email protected] lib]$ cp bbed /u01/app/oracle/product/12.1.0.2/db_1/bin/ 
    BBED是Oracle 内部使用的命令,所以Oracle 不提供技术支持。 为了安全BBED设置了口令?;?,默认密码为blockedit。 
    [[email protected] lib]$ bbed 
    Password:  

    BBED: Release 2.0.0.0.0 – Limited Production on Wed Feb 22 09:47:07 2017 

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

    ************* !!! For Oracle Internal Use only !!! *************** 

    BBED> show  
    FILE#          0 
    BLOCK#         1 
    OFFSET         0 
    DBA            0x00000000 (0 0,1) 
    FILENAME       
    BIFILE         bifile.bbd 
    LISTFILE       
    BLOCKSIZE      8192 
    MODE           Browse 
    EDIT           Unrecoverable 
    IBASE          Dec 
    OBASE          Dec 
    WIDTH          80 
    COUNT          512 
    LOGFILE        log.bbd 
    SPOOL          No 

    将现有数据文件在bbed中指定,没有的话先在sqlplus中创建 
    BBED> set filename ‘/u01/app/oracle/oradata/ORCL/datafile/test.dbf’ 
    FILENAME       /u01/app/oracle/oradata/ORCL/datafile/test.dbf 

    BBED> show all; 
    FILE#          0 
    BLOCK#         1 
    OFFSET         0 
    DBA            0x00000000 (0 0,1) 
    FILENAME       /u01/app/oracle/oradata/ORCL/datafile/test.dbf 
    BIFILE         bifile.bbd 
    LISTFILE       
    BLOCKSIZE      8192 
    MODE           Browse 
    EDIT           Unrecoverable 
    IBASE          Dec 
    OBASE          Dec 
    WIDTH          80 
    COUNT          512 
    LOGFILE        log.bbd 
    SPOOL          No 

    2.使用参数文件连接BBED 
    a)查询出当前的数据文件并保存在文本文件中 
    SQL>spool psdb_file.txt 
    SQL> select file#||’ ‘||name||’ ‘||bytes from v$datafile ; 

    FILE#||”||NAME||”||BYTES 
    ——————————————————————————– 
    1 /data/oradata/ocrl/datafile/system01.dbf 912261120 
    2 /data/oradata/ocrl/datafile/sysaux01.dbf 1247805440 
    3 /data/oradata/ocrl/datafile/undotbs01.dbf 765460480 
    4 /data/oradata/ocrl/datafile/users01.dbf 28835840 
    5 /data/oradata/ocrl/datafile/test.dbf 10485760 
    6 /data/oradata/ocrl/datafile/tstest.dbf 10485760 

    6 rows selected. 

    SQL> spool off 
    注意:保存在文件里的文件号要与我们数据库查询出来的FILE#相同 
    ocrl:/home/[email protected]>cat psdb_file.txt  
    1 /data/oradata/ocrl/datafile/system01.dbf 912261120 
    2 /data/oradata/ocrl/datafile/sysaux01.dbf 1247805440 
    3 /data/oradata/ocrl/datafile/undotbs01.dbf 765460480 
    4 /data/oradata/ocrl/datafile/users01.dbf 28835840 
    5 /data/oradata/ocrl/datafile/test.dbf 10485760 
    6 /data/oradata/ocrl/datafile/tstest.dbf 10485760 

    b)BBED使用参数文件登陆 
    [[email protected] ~]$cat psdb_file.txt  
    1 /data/oradata/ocrl/datafile/system01.dbf 912261120 
    2 /data/oradata/ocrl/datafile/sysaux01.dbf 1247805440 
    3 /data/oradata/ocrl/datafile/undotbs01.dbf 765460480 
    4 /data/oradata/ocrl/datafile/users01.dbf 28835840 
    5 /data/oradata/ocrl/datafile/test.dbf 10485760 
    6 /data/oradata/ocrl/datafile/tstest.dbf 10485760 

    [[email protected] ~]$cat bbed_parameter.txt  
    blocksize=8192 
    listfile=/home/oracle/psdb_file.txt 
    mode=edit 
    ocrl:/home/[email protected]>bbed parfile=/home/oracle/bbed_parameter.txt  
    Password:  

    BBED: Release 2.0.0.0.0 – Limited Production on Tue Feb 21 15:17:57 2017 

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

    ************* !!! For Oracle Internal Use only !!! *************** 

    BBED> info 
     File#  Name                                                        Size(blks) 
     —–  —-                                                        ———- 
         1  /data/oradata/ocrl/datafile/system01.dbf                        111360 
         2  /data/oradata/ocrl/datafile/sysaux01.dbf                        152320 
         3  /data/oradata/ocrl/datafile/undotbs01.dbf                        93440 
         4  /data/oradata/ocrl/datafile/users01.dbf                           3520 
         5  /data/oradata/ocrl/datafile/test.dbf                              1280 
         6  /data/oradata/ocrl/datafile/tstest.dbf                            1280 

    BBED>  

    3.破坏system表空间文件 
    注意:这里最好先做好备份 
    ocrl:/data/oradata/ocrl/[email protected]>cp system01.dbf system01.dbf.bak 
    切换日志模拟生产交易,更新SCN 
    SQL> alter system switch logfile;//多切几次 

    System altered. 

    SQL> / 

    System altered. 

    SQL> / 

    System altered. 

    SQL> / 

    System altered. 

    SQL> / 

    System altered. 

    SQL> / 

    System altered. 

    SQL>  
    把旧的system文件直接复制替换掉新的 
    ocrl:/data/oradata/ocrl/[email protected]>cp system01.dbf.bak system01.dbf 
    再次切换日志模拟生产交易 
    SQL> alter system switch logfile; 

    System altered. 

    SQL> / 

    System altered. 

    SQL> / 

    alter system switch logfile 

    ERROR at line 1: 
    ORA-03113: end-of-file on communication channel 
    Process ID: 9115 
    Session ID: 20 Serial number: 33669 
    出现问题,数据库直接宕掉 

    ocrl:/home/[email protected]>sqlplus /  as sysdba 

    SQL*Plus: Release 12.1.0.2.0 Production on Tue Feb 21 14:53:47 2017 

    Copyright (c) 1982, 2014, Oracle.  All rights reserved. 

    Connected to an idle instance. 

    SQL> startup 
    ORACLE instance started. 

    Total System Global Area  754974720 bytes 
    Fixed Size    2928968 bytes 
    Variable Size  524291768 bytes 
    Database Buffers  222298112 bytes 
    Redo Buffers    5455872 bytes 
    Database mounted. 
    ORA-01113: file 1 needs media recovery 
    ORA-01110: data file 1: ‘/data/oradata/ocrl/datafile/system01.dbf’ 

    SQL> col name for a50 
    SQL> select name,checkpoint_change# from v$datafile; 

    NAME   CHECKPOINT_CHANGE# 
    ————————————————– —————— 
    /data/oradata/ocrl/datafile/system01.dbf     12717804 
    /data/oradata/ocrl/datafile/sysaux01.dbf     12717804 
    /data/oradata/ocrl/datafile/undotbs01.dbf     12717804 
    /data/oradata/ocrl/datafile/users01.dbf     12717804 
    /data/oradata/ocrl/datafile/test.dbf     12717804 
    /data/oradata/ocrl/datafile/tstest.dbf     12717804 

    6 rows selected. 
    scn 转换成16进制 
    SQL> select to_char(12717804,’xxxxxxxx’) from dual; 

    TO_CHAR(1 
    ——— 
       c20eec 

    SQL> select name,checkpoint_change# from v$datafile_header; 

    NAME   CHECKPOINT_CHANGE# 
    ————————————————– —————— 
    /data/oradata/ocrl/datafile/system01.dbf     12717402 
    /data/oradata/ocrl/datafile/sysaux01.dbf     12717804 
    /data/oradata/ocrl/datafile/undotbs01.dbf     12717804 
    /data/oradata/ocrl/datafile/users01.dbf     12717804 
    /data/oradata/ocrl/datafile/test.dbf     12717804 
    /data/oradata/ocrl/datafile/tstest.dbf     12717804 

    6 rows selected. 
    可以看到数据库system01.dbf的scn点为12717402明显是用的备份的数据文件。oracle在open数据库时要对控制文件,数据文件头的scn进行检查,一致才能打开,所以这里我们通过ddeb来修改数据文件头让它和其他的数据文件的scn相同,达到起库的目的。 
    登陆bbed 
    ocrl:/home/[email protected]>bbed parfile=bbed_parameter.txt  
    Password:  

    BBED: Release 2.0.0.0.0 – Limited Production on Tue Feb 21 14:58:25 2017 

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

    ************* !!! For Oracle Internal Use only !!! *************** 
    用bbed查询bbed01数据文件结构信息 
    BBED> set dba 1,1 
    DBA            0x00400001 (4194305 1,1) 
    Bbed查看kcvfh信息 
    BBED> p kcvfhckp 
    struct kcvfhckp, 36 bytes                   @484      
       struct kcvcpscn, 8 bytes                 @484      
          ub4 kscnbas                           @484      0x00c20d5a 
          ub2 kscnwrp                           @488      0x0000 
       ub4 kcvcptim                             @492      0x37d28348 
       ub2 kcvcpthr                             @496      0x0001 
       union u, 12 bytes                        @500      
          struct kcvcprba, 12 bytes             @500      
             ub4 kcrbaseq                       @500      0x000000bb 
             ub4 kcrbabno                       @504      0x00000002 
             ub2 kcrbabof                       @508      0x0010 
       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> set filename ‘/data/oradata/ocrl/datafile/system01.dbf’ 
    FILENAME       /data/oradata/ocrl/datafile/system01.dbf 

    BBED> p kcvfhckp 
    struct kcvfhckp, 36 bytes                   @484      
       struct kcvcpscn, 8 bytes                 @484      
          ub4 kscnbas                           @484      0x00c20d5a 
          ub2 kscnwrp                           @488      0x0000 
       ub4 kcvcptim                             @492      0x37d28348 
       ub2 kcvcpthr                             @496      0x0001 
       union u, 12 bytes                        @500      
          struct kcvcprba, 12 bytes             @500      
             ub4 kcrbaseq                       @500      0x000000bb 
             ub4 kcrbabno                       @504      0x00000002 
             ub2 kcrbabof                       @508      0x0010 
       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> set count 26 
    COUNT          26 
    BBED> d offset 484 dba 3,1 
     File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_d0xj0lhx_.dbf (3) 
     Block: 1                Offsets:  484 to  509           Dba:0x00c00001 
    ———————————————————————— 
     6dcf1d00 00000000 41a5d337 0100a792 2a000000 02000000 1000  

     <32 bytes per line> 

    BBED> d offset 484 dba 4,1 
     File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_d0xj4qc1_.dbf (4) 
     Block: 1                Offsets:  484 to  509           Dba:0x01000001 
    ———————————————————————— 
     6dcf1d00 00000000 41a5d337 0100a792 2a000000 02000000 1000  

     查看system文件的数据文件头 

    BBED> d offset 484 dba 1,1 
     File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_d0xj2b4p_.dbf (1) 
     Block: 1                Offsets:  484 to  509           Dba:0x00400001 
    ———————————————————————— 
     e8c81d00 00000000 f5a2d337 01000000 15000000 02000000 1000  

     <32 bytes per line> 

    修改system文件头 
    BBED> modify /x 6dcf dba 1,1 offset 484 
    Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y 
     File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_d0xj2b4p_.dbf (1) 
     Block: 1                Offsets:  484 to  509           Dba:0x00400001 
    ———————————————————————— 
     6dcf1d00 00000000 f5a2d337 01000000 15000000 02000000 1000  

     <32 bytes per line> 

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

    BBED> d offset dba 1,1 
    BBED-00207: invalid offset specifier (dba) 

    BBED> d offset 484 dba 1,1 
     File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_d0xj2b4p_.dbf (1) 
     Block: 1                Offsets:  484 to  509           Dba:0x00400001 
    ———————————————————————— 
     6dcf1d00 00000000 f5a2d337 01000000 15000000 02000000 1000  

     <32 bytes per line> 

    打开数据库 
    SQL> alter database open; 
    alter database open 

    ERROR at line 1: 
    ORA-01113: file 1 needs media recovery 
    ORA-01110: data file 1: ‘/data/oradata/ocrl/datafile/system01.dbf’ 

    SQL> recover database; 
    Media recovery complete. 
    SQL> alter database open; 

    Database altered. 

    SQL> alter system switch logfile; 

    System altered. 

    SQL> / 

    System altered.

    我还没有学会写个人说明!

    全球经济视野下的智能博弈:百度AI,冲向天穹

    上一篇

    陆天炜: GoldenDB事务一致性处理机制优化历程

    下一篇

    你也可能喜欢

    Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复

    长按储存图像,分享给朋友

    ITPUB 每周精要将以邮件的形式发放至您的邮箱


    微信扫一扫

    微信扫一扫
  • 【理上网来喜迎十九大】外媒记者:全面依法治国为中国经济增长保驾护航 2019-07-05
  • “重庆造”国际一类新药 获批同时进入中美临床试验 2019-07-05
  • 企业服务行业跨越式发展 2018年神州顺利办聚焦企业人、财、物 2019-07-03
  • 土地不是劳动成果,而是一种自然资源,就像空气、阳光不是劳动成果而是自然资源一样,所以土地不具有价值,买房只应支付房屋费,不应该支付土地费。 2019-07-03
  • 阳泉市旅发委对全市挂牌督办建设项目进行督导 2019-07-03
  • “忻州工匠”“忻州技能标兵”评选活动启动 2019-07-02
  • 世界杯赞助商集体亮相球迷广场 海信站C位夺眼球 2019-07-01
  • 吃鸡蛋常犯8个错,这些技巧9成人不知道 2019-07-01
  • 父亲为监视孩子盗监控探头 不料IP未改反被“监控” 2019-06-29
  • 最高降7.02万 阿尔法·罗密欧全系调价 2019-06-28
  • 讲法治说情操 江北党员干部听“老马”宣讲“两会”精神 2019-06-23
  • 招聘启事丨西部网诚聘新媒体编辑记者、实习编辑等人员 2019-06-23
  • 南方日报:治理软件不止于“黑名单” 2019-06-21
  • 端午节遇上父亲节长沙楼市上演“宫心计” ——凤凰网房产长沙 2019-06-14
  • 美说唱歌手在迈阿密购买摩托遭遇中枪 疑似身亡说唱中枪-国际博览 2019-06-14
  • 内部透码 云南快乐10分开奖号 欢乐升级逃跑 河南快赢481软件下载安卓版 pt电子游戏哪个 四川大乐透大奖排行榜 重庆五分彩 白光扑克批发 新疆十一选五综合走势图 合肥市彩票中心 qq四川麻将作弊器 福建快三今日开奖结果 北京赛车pk10内幕 金牌一码三中三资料 江西多乐彩老走势图