暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 非归档模式下数据文件offline 后通过bbed 修改文件头scn 直接online 数据文件

原创 四九年入国军 2025-04-23
88

--- 非归档模式下 offline 恢复
SQL> select file#,status,CHECKPOINT_CHANGE#  from  v$datafile;

    FILE# STATUS  CHECKPOINT_CHANGE#
---------- ------- ------------------
        1 SYSTEM            2094895
        3 ONLINE            2094895
        4 ONLINE            2094895
        5 ONLINE            2095969
        7 ONLINE            2094895

SQL> select  file#,status,CHECKPOINT_CHANGE#  from v$datafile_header;

    FILE# STATUS  CHECKPOINT_CHANGE#
---------- ------- ------------------
        1 ONLINE            2094895
        3 ONLINE            2094895
        4 ONLINE            2094895
        5 ONLINE            2095969
        7 ONLINE            2094895


alter database datafile  7 offline drop;

 alter system switch logfile;
 alter system switch logfile;
 alter system switch logfile;
 alter system switch logfile;


select file#,status,CHECKPOINT_CHANGE#  from v$datafile;

     FILE# STATUS  CHECKPOINT_CHANGE#
---------- ------- ------------------
         1 SYSTEM             2097362
         3 ONLINE             2097362
         4 ONLINE             2097362
         5 ONLINE             2097362
         7 RECOVER            2094895

select  file#,status,CHECKPOINT_CHANGE#  from v$datafile_header;

     FILE# STATUS  CHECKPOINT_CHANGE#
---------- ------- ------------------
         1 ONLINE             2097362
         3 ONLINE             2097362
         4 ONLINE             2097362
         5 ONLINE             2097362
         7 OFFLINE            2094895

SQL> recover datafile 7;
ORA-00279: change 2094895 generated at 04/22/2025 15:10:07 needed for thread 1
ORA-00289: suggestion : /oradata/archivelog/1_1_1195382645.dbf

  由于redo 被覆盖,现在去recover 会报错
  
  
  


--正常的数据文件头scn
BBED> set dba  5,1      
        DBA             0x01400001 (20971521 5,1)

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x00237681
--offline 的数据文件头scn

BBED> set dba 7,1
        DBA             0x01c00001 (29360129 7,1)

BBED> p kcvfhckp
struct kcvfhckp, 36 bytes                   @484     
   struct kcvcpscn, 8 bytes                 @484     
      ub4 kscnbas                           @484      0x001ff72f
      ub2 kscnwrp                           @488      0x8000
      ub2 kscnwrp2                          @490      0x0000
   ub4 kcvcptim                             @492      0x4779064f
   ub2 kcvcpthr                             @496      0x0001

--下面把  2ff71f00 修改成 81762300

BBED>  d /v  dba  7,1  offset  484
 File: /oradata/ORCL/users01.dbf (7)
 Block: 1       Offsets:  484 to  995  Dba:0x01c00001
-------------------------------------------------------
 2ff71f00 00800000 4f067947 01000000 l /.......O.yG....
 
BBED>  d /v  dba  1,1 offset  484
 File: /oradata/ORCL/system01.dbf (1)
 Block: 1       Offsets:  484 to  995  Dba:0x00400001
-------------------------------------------------------
 81762300 00800000 b9657a47 01000000 l .v#......ezG....
 08000000 0c070000 10003f92 02000000 l ..........?.....
 00000000 00000000 00000000 00000000 l ................

--后面的00不能写,写了报错
 modify /x  817623 dba 7,1 offset  484
sum apply 









SQL> recover datafile 7;
Media recovery complete.
SQL> alter database datafile 7 online;




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论