• Oracle跳过归档的恢复,坏运气是跳过归档时遇到6002608,好运气是有个完整的备份


    周末朋友的线上数据库出问题,给我电话,由于他们的数据库管理很乱再加上DBA离职,生产已经停止6小时了。我上去看了下,基本上弄清了问题,下面就开始恢复,首先朋友告诉我没有完整的‘备份’(他所指的备份是冷备份......因为冷备份文件件内是空的)。虽然我知道在生产的复杂环境想跳过归档基本上是不可能的,但是还是尝试了一下,结果果不其然遇到ORA-00600: internal error code, arguments: [2608]。在一筹莫展的时候,我看了下Crontab,居然发现了RMAN定时备份,进入了RMAN后发现了完整备份.........

    随后就是漫长的恢复等待,没有技术含量。

    得到这个结果我算是运气坏的,在恢复方面我总是运气很坏,所以我需要很完善的RMAN备份,或者其他HA手段来保持我的数据安全性。

    回来后又模拟了一变居然还是那个错误,看来我不是一般的倒霉啊.....................

    下边记录了我的测试过程。

    SQL> create tablespace testrecover datafile '/u02/oradata/testrecover_01.dbf' size 10M extent management local uniform size 1M segment space management auto;

    Tablespace created.

    SQL> create table t1 tablespace testrecover as select * from dba_objects;

    Table created.

    SQL> create table t2 tablespace testrecover as select * from dba_users;

    Table created.

    SQL> create table t3 tablespace testrecover as select * from dba_users;

    Table created.

    SQL> select count(*) from t1;

      COUNT(*)
    ----------
         50681

    SQL> select count(*) from t2;

      COUNT(*)
    ----------
            28

    SQL> select count(*) from t3;

      COUNT(*)
    ----------
            28

    SQL> select file#||' '||name||' '||bytes from v$datafile;

    FILE#||''||NAME||''||BYTES
    --------------------------------------------------------------------------------
    ..................
    9 /u02/oradata/testrecover_01.dbf 10485760

    9 rows selected.

    SQL> delete from t2 where rownum<2;

    1 row deleted.

    SQL> delete from t3 where rownum<2;

    1 row deleted.

    SQL> commit;

    Commit complete.

    SQL> select count(*) from t2;

      COUNT(*)
    ----------
            27

    SQL> select count(*) from t3;

      COUNT(*)
    ----------
            27

    SQL> alter system switch logfile;

    System altered.

    SQL> delete from t1 where rownum<10001;

    10000 rows deleted.

    SQL> delete from t2 where rownum<2;

    1 row deleted.

    SQL> delete from t3 where rownum<2;

    1 row deleted.

    SQL> commit;

    Commit complete.

    SQL> select count(*) from t1;

      COUNT(*)
    ----------
         40681

    SQL> select count(*) from t2;

      COUNT(*)
    ----------
            26

    SQL> select count(*) from t3;

      COUNT(*)
    ----------
            26

    SQL> archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /u02/oradata/archivelog
    Oldest online log sequence     241
    Next log sequence to archive   243
    Current log sequence           243
    SQL> alter system switch logfile;

    System altered.

    SQL> archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /u02/oradata/archivelog
    Oldest online log sequence     242
    Next log sequence to archive   244
    Current log sequence           244
    SQL> alter system switch logfile;

    System altered.

    SQL> /
     
    System altered.

    SQL> /

    System altered.

    SQL> /

    System altered.

    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
     node1*orcl-/u02/oradata/archivelog >l
    ..........................
    -rw-r----- 1 oracle dba 51228672 Mar  1 03:00 1_239_722505196.dbf
    -rw-r----- 1 oracle dba 36395520 Mar  1 20:11 1_240_722505196.dbf
    -rw-r----- 1 oracle dba  6424064 Mar  1 20:23 1_241_722505196.dbf
    -rw-r----- 1 oracle dba   269312 Mar  1 20:33 1_242_722505196.dbf
    -rw-r----- 1 oracle dba  3728896 Mar  1 20:34 1_243_722505196.dbf
    -rw-r----- 1 oracle dba     7680 Mar  1 20:34 1_244_722505196.dbf
    -rw-r----- 1 oracle dba     3072 Mar  1 20:34 1_245_722505196.dbf
    -rw-r----- 1 oracle dba     1024 Mar  1 20:34 1_246_722505196.dbf
    -rw-r----- 1 oracle dba     1024 Mar  1 20:35 1_247_722505196.dbf

     node1*orcl-/u02/oradata/archivelog >mv 1_245_722505196.dbf 1_245_722505196_backup.dbf

     node1*orcl-/home/oracle >cd /u02/oradata/

     node1*orcl-/u02/oradata >l
    total 699168
    drwxr-xr-x 3 oracle dba      4096 Mar  1 20:22 .
    drwxr-xr-x 4 oracle dba      4096 Jul 29  2010 ..
    drwxr-xr-x 2 oracle dba      4096 Mar  1 20:35 archivelog
    -rw-r----- 1 oracle dba  52436992 Mar  1 20:35 demo01.dbf
    -rw-r--r-- 1 oracle dba      8192 Nov 22 14:56 ETMCDB02_7_21.dd
    -rw-r--r-- 1 oracle dba      8192 Nov 17 18:46 ETMCDB02_7_21.dd.bak
    -rw-r----- 1 oracle dba   5251072 Nov 17 19:51 ETMCDB02.dbf
    -rw-r----- 1 oracle dba   5251072 Nov 17 19:39 ETMCDB02.dbf.bak
    -rw-r--r-- 1 oracle dba      8192 Nov 17 18:41 ETMCDB_7_21.dd
    -rw-r----- 1 oracle dba 536879104 Mar  1 20:35 ETMCDB.dbf
    -rw-r----- 1 oracle dba 104865792 Mar  1 20:35 example01.dbf
    -rw-r----- 1 oracle dba  10493952 Mar  1 20:35 testrecover_01.dbf

     node1*orcl-/u02/oradata >rm testrecover_01.dbf

    node1*orcl-/home/oracle >sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 1 20:36:18 2011

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

    Connected to an idle instance.

    SQL> startup
    ORA-32004: obsolete and/or deprecated parameter(s) specified
    ORACLE instance started.

    Total System Global Area  566231040 bytes
    Fixed Size                  1220604 bytes
    Variable Size             134217732 bytes
    Database Buffers          427819008 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
    ORA-01110: data file 9: '/u02/oradata/testrecover_01.dbf'

    SQL> alter database create datafile '/u02/oradata/testrecover_01.dbf' as '/u02/oradata/testrecover_01.dbf';

    Database altered.

    SQL> recover datafile 9;
    ORA-00279: change 9105893 generated at 03/01/2011 20:22:28 needed for thread 1
    ORA-00289: suggestion : /u02/oradata/archivelog/1_241_722505196.dbf
    ORA-00280: change 9105893 for thread 1 is in sequence #241


    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: change 9106048 generated at 03/01/2011 20:23:20 needed for thread 1
    ORA-00289: suggestion : /u02/oradata/archivelog/1_242_722505196.dbf
    ORA-00280: change 9106048 for thread 1 is in sequence #242
    ORA-00278: log file '/u02/oradata/archivelog/1_241_722505196.dbf' no longer
    needed for this recovery


    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: change 9106453 generated at 03/01/2011 20:33:24 needed for thread 1
    ORA-00289: suggestion : /u02/oradata/archivelog/1_243_722505196.dbf
    ORA-00280: change 9106453 for thread 1 is in sequence #243
    ORA-00278: log file '/u02/oradata/archivelog/1_242_722505196.dbf' no longer
    needed for this recovery


    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: change 9106606 generated at 03/01/2011 20:34:19 needed for thread 1
    ORA-00289: suggestion : /u02/oradata/archivelog/1_244_722505196.dbf
    ORA-00280: change 9106606 for thread 1 is in sequence #244
    ORA-00278: log file '/u02/oradata/archivelog/1_243_722505196.dbf' no longer
    needed for this recovery


    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    auto
    ORA-00279: change 9106612 generated at 03/01/2011 20:34:34 needed for thread 1
    ORA-00289: suggestion : /u02/oradata/archivelog/1_245_722505196.dbf
    ORA-00280: change 9106612 for thread 1 is in sequence #245
    ORA-00278: log file '/u02/oradata/archivelog/1_244_722505196.dbf' no longer
    needed for this recovery


    ORA-00308: cannot open archived log
    '/u02/oradata/archivelog/1_245_722505196.dbf'
    ORA-27037: unable to obtain file status
    Linux Error: 2: No such file or directory
    Additional information: 3

    SQL> shutdown immediate
    ORA-01109: database not open

    Database dismounted.
    ORACLE instance shut down.
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options

     node1*orcl-/u01/app/oracle/product/10.2.0/db_1/bin >bbed parfile=bbed.par
    Password:

    BBED: Release 2.0.0.0.0 - Limited Production on Tue Mar 1 20:32:59 2011

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

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

    BBED> set file 9
            FILE#           9

    BBED> set block 1
            BLOCK#          1

    BBED> p kcvfhckp
    struct kcvfhckp, 36 bytes                   @484    
       struct kcvcpscn, 8 bytes                 @484    
          ub4 kscnbas                           @484      0x008af4b4
          ub2 kscnwrp                           @488      0x0000
       ub4 kcvcptim                             @492      0x2c62c05a
       ub2 kcvcpthr                             @496      0x0001
       union u, 12 bytes                        @500    
          struct kcvcprba, 12 bytes             @500    
             ub4 kcrbaseq                       @500      0x000000f5
             ub4 kcrbabno                       @504      0x00000002
             ub2 kcrbabof                       @508      0x0000
       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 offset 500
            OFFSET          500

    BBED> dump
     File: /u02/oradata/testrecover_01.dbf (9)
     Block: 1                Offsets:  500 to 1011           Dba:0x02400001
    ------------------------------------------------------------------------
     f5000000 02000000 00000000 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 0a000a00 0a000100 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     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 f6000000
    BBED-00209: invalid number (f6000000)


    BBED> modify /x f6
    Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) Y
     File: /u02/oradata/testrecover_01.dbf (9)
     Block: 1                Offsets:  500 to 1011           Dba:0x02400001
    ------------------------------------------------------------------------
     f6000000 02000000 00000000 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 0a000a00 0a000100 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     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> set offset 504
            OFFSET          504

    BBED> dump
     File: /u02/oradata/testrecover_01.dbf (9)
     Block: 1                Offsets:  504 to 1015           Dba:0x02400001
    ------------------------------------------------------------------------
     02000000 00000000 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 0a000a00 0a000100 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     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 01
     File: /u02/oradata/testrecover_01.dbf (9)
     Block: 1                Offsets:  504 to 1015           Dba:0x02400001
    ------------------------------------------------------------------------
     01000000 00000000 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 0a000a00 0a000100 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
     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 9, Block 1:
    current = 0x4378, required = 0x4378

    BBED> exit

     node1*orcl-/u01/app/oracle/product/10.2.0/db_1/bin >bbed parfile=bbed.par
    Password:

    BBED: Release 2.0.0.0.0 - Limited Production on Tue Mar 1 20:45:22 2011

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

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

    BBED> set file 9
            FILE#           9

    BBED> set block 1
            BLOCK#          1

    BBED> p kcvfhckp   
    struct kcvfhckp, 36 bytes                   @484    
       struct kcvcpscn, 8 bytes                 @484    
          ub4 kscnbas                           @484      0x008af4b4
          ub2 kscnwrp                           @488      0x0000
       ub4 kcvcptim                             @492      0x2c62c05a
       ub2 kcvcpthr                             @496      0x0001
       union u, 12 bytes                        @500    
          struct kcvcprba, 12 bytes             @500    
             ub4 kcrbaseq                       @500      0x000000f6
             ub4 kcrbabno                       @504      0x00000001
             ub2 kcrbabof                       @508      0x0000
       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>

    SQL> startup
    ORA-32004: obsolete and/or deprecated parameter(s) specified
    ORACLE instance started.

    Total System Global Area  566231040 bytes
    Fixed Size                  1220604 bytes
    Variable Size             134217732 bytes
    Database Buffers          427819008 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    ORA-01113: file 9 needs media recovery
    ORA-01110: data file 9: '/u02/oradata/testrecover_01.dbf'

    SQL> recover datafile 9;
    ORA-00283: recovery session canceled due to errors
    ORA-00600: internal error code, arguments: [2608], [1], [0], [9106612], [0],
    [9106614], [], []


    --EOF--

    作者:Buro#79xxd 出处:http://www.cnblogs.com/buro79xxd/ 文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    golang 带参数 发送、上传本地文件到其他机器、服务器
    【比赛游记】北大集训2020垫底记
    【比赛游记】NOIP2020又当工具人记
    AtCoder Regular Contest 107
    AtCoder Regular Contest 108
    【比赛游记】CSP2020游记
    注意事项
    2020北大集训摸鱼记
    NOIP2020游记
    ARC109F
  • 原文地址:https://www.cnblogs.com/buro79xxd/p/2012207.html
Copyright © 2020-2023  润新知