resetlogs方式打开数据库,某数据文件需要recover,恢复失败的处理方式

简介:

1 数据文件头部和恢复相关的几个偏移量说明: 
         ub4 kcvfhcpc                             @140      0x00000308------检查点计数
         ub4 kcvfhccc                             @148      0x00000307------总是比检查点计算少1
         ub4 kcvcptim                             @492      0x2f9af923-----检查点时间
         ub4 kscnbas                              @484      0x8013ea80-------- scn的低位
         ub2 kscnwrp                              @488      0x0000--------- scn的高位 
   ub4 kcvfhrlc                             @112      0x2f9af2a9------resetlogs count
   struct kcvfhrls, 8 bytes                 @116     
         ub4 kscnbas                              @116      0x8013e6b3-------- resetlogs scn
         ub2 kscnwrp                              @120      0x0000
如果是resetlogs 方式打开数据库对于recover失败的数据文件其数据文件中偏移量 @140、@148、@492、@484、@112、@116应该和其它不需要恢复的数据文件保持一致
其它情况数据文件中偏移量 可能仅需要@140、@148、@492、@484和其它不需要恢复的数据文件保持一致
2重建控制文件的语句:
[oracle@oracle ~]$ cat /oracle/control.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "CRM" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '/oracle/app/db1/dbs/log1CRM.dbf',
    '/oracle/CRM2/CRM/redo01b.log'
  ) SIZE 200M,
  GROUP 2 (
    '/oracle/app/db1/dbs/log2CRM.dbf',
    '/oracle/CRM2/CRM/redo02b.log'
  ) SIZE 50M,
  GROUP 3 (
    '/oracle/CRM2/CRM/redo03.log',
    '/oracle/CRM2/CRM/redo03b.log'
  ) SIZE 200M,
  GROUP 4 (
    '/oracle/CRM2/CRM/redo04.log',
    '/oracle/CRM2/CRM/redo04b.log'
  ) SIZE 200M,
  GROUP 5 (
    '/oracle/CRM2/CRM/redo05.log',
    '/oracle/CRM2/CRM/redo05b.log'
  ) SIZE 200M,
  GROUP 6 (
    '/oracle/CRM2/CRM/redo06.log',
    '/oracle/CRM2/CRM/redo06b.log'
  ) SIZE 200M
DATAFILE
  '/oracle/CRM2/system1.dbf',
  '/oracle/CRM2/CRM/sysaux01.dbf',
  '/oracle/CRM2/CRM/users01.dbf',
  '/oracle/CRM2/zxa.dbf',
  '/oracle/CRM2/CRM/undotbs2.dbf',
  '/oracle/CRM2/zxc.dbf',
  '/oracle/CRM2/CRM/zxbig1.dbf'
CHARACTER SET ZHS16GBK
;
[oracle@oracle ~]$ exit
exit
3 开始重建控制文件产生missingsnnnn 文件
SQL> @/oracle/control.sql
ORACLE instance started.
Total System Global Area  322961408 bytes
Fixed Size                  2020480 bytes
Variable Size              92277632 bytes
Database Buffers          222298112 bytes
Redo Buffers                6365184 bytes
Control file created.
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile until cancel;
ORA-00279: change 2148806610 generated at 11/07/2012 12:15:58 needed for thread
1
ORA-00289: suggestion : /oracle/archive/1_3_798683817.dbf
ORA-00280: change 2148806610 for thread 1 is in sequence #3

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
SQL> select file#,name,status from v$datafile;
     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM2/system1.dbf                 SYSTEM
         2 /oracle/app/db1/dbs/MISSING00002         RECOVER
         3 /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4 /oracle/CRM2/CRM/users01.dbf             ONLINE
         5 /oracle/CRM2/zxa.dbf                     ONLINE
         6 /oracle/CRM2/CRM/undotbs2.dbf            ONLINE
         7 /oracle/CRM2/zxc.dbf                     ONLINE
         8 /oracle/CRM2/CRM/zxbig1.dbf              ONLINE
8 rows selected.
4 重命名missingnnnn数据文件
SQL> alter tablespace zx rename datafile '/oracle/app/db1/dbs/MISSING00002' to '/oracle/CRM2/zxb.dbf';
Tablespace altered.
SQL> select file#,name,status from v$datafile;
     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM2/system1.dbf                 SYSTEM
         2 /oracle/CRM2/zxb.dbf                     RECOVER
         3 /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4 /oracle/CRM2/CRM/users01.dbf             ONLINE
         5 /oracle/CRM2/zxa.dbf                     ONLINE
         6 /oracle/CRM2/CRM/undotbs2.dbf            ONLINE
         7 /oracle/CRM2/zxc.dbf                     ONLINE
         8 /oracle/CRM2/CRM/zxbig1.dbf              ONLINE
8 rows selected.
5 执行恢复报错如下:(前面几个步骤就是为了构造这个错误)
SQL> recover datafile 2;
ORA-00283: recovery session canceled due to errors
ORA-00600: internal error code, arguments: [krhpfh_03-1202], [fno =], [2],
[fhcrt =], [797369834], [cptim =], [0], []
ORA-01110: data file 2: '/oracle/CRM2/zxb.dbf'
6 bbed参数和文件列表如下:
[oracle@oracle ~]$ cat bbed.para
blocksize=8192
mode=edit
listfile=/oracle/filelist
[oracle@oracle ~]$ cat /oracle/filelist
1 /oracle/CRM2/system1.dbf 503316480
2 /oracle/CRM2/zxb.dbf 10485760
3 /oracle/CRM2/CRM/sysaux01.dbf 304087040
4 /oracle/CRM2/CRM/users01.dbf 5242880
5 /oracle/CRM2/zxa.dbf 104857600
6 /oracle/CRM2/CRM/undotbs2.dbf 209715200
7 /oracle/CRM2/zxc.dbf 10485760
8 /oracle/CRM2/CRM/zxbig1.dbf 2147483648
7 关闭数据库启动bbed对数据文件2进行调整
[oracle@oracle ~]$ bbed parfile=bbed.para
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Wed Nov 7 12:25:14 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> info
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------
     1  /oracle/CRM2/system1.dbf                                         61440
     2  /oracle/CRM2/zxb.dbf                                              1280
     3  /oracle/CRM2/CRM/sysaux01.dbf                                    37120
     4  /oracle/CRM2/CRM/users01.dbf                                       640
     5  /oracle/CRM2/zxa.dbf                                             12800
     6  /oracle/CRM2/CRM/undotbs2.dbf                                    25600
     7  /oracle/CRM2/zxc.dbf                                              1280
     8  /oracle/CRM2/CRM/zxbig1.dbf                                     262144
BBED> show 
        FILE#           1
        BLOCK#          1
        OFFSET          0
        DBA             0x00400001 (4194305 1,1)
        FILENAME        /oracle/CRM2/system1.dbf
        BIFILE          bifile.bbd
        LISTFILE        /oracle/filelist
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           80
        COUNT           512
        LOGFILE         log.bbd
        SPOOL           No
BBED> dump /v dba 1,1 offset 140 count 20
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  140 to  159  Dba:0x00400001
-------------------------------------------------------
 1d030000 e7969b2f 1c030000 00000000 l ....?./........
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 140 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  140 to  159  Dba:0x00800001
-------------------------------------------------------
 1d030000 36969b2f 1c030000 00000000 l ....6../........
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 1,1 offset 148 count 20;
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  148 to  167  Dba:0x00400001
-------------------------------------------------------
 1c030000 00000000 00000000 00000000 l ................
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 148 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  148 to  167  Dba:0x00800001
-------------------------------------------------------
 1c030000 00000000 00000000 00000000 l ................
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 1,1 offset 492 count 20 
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  492 to  511  Dba:0x00400001
-------------------------------------------------------
 f2979b2f 01000000 01000000 02000000 l ?./............
 10006960                            l ..i`
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 492 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  492 to  511  Dba:0x00800001
-------------------------------------------------------
 7e969b2f 01000000 03000000 41010000 l ~../........A...
 1000403d                            l ..@=
 <16 bytes per line>
BBED> modify /x f2979b2f
BBED-00209: invalid number (f2979b2f)

BBED> modify /x f297
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  492 to  511           Dba:0x00800001
------------------------------------------------------------------------
 f2979b2f 01000000 03000000 41010000 1000403d
 <32 bytes per line>
BBED> set offset +2
        OFFSET          494
BBED> modify /x 9b2f
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  494 to  513           Dba:0x00800001
------------------------------------------------------------------------
 9b2f0100 00000300 00004101 00001000 403d0200
 <32 bytes per line>
BBED> dump /v dba 2,1 offset 492 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  492 to  511  Dba:0x00800001
-------------------------------------------------------
 f2979b2f 01000000 03000000 41010000 l ?./........A...
 1000403d                            l ..@=
 <16 bytes per line>
BBED> dump /v dba 1,1 offset 484 count 20
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  484 to  503  Dba:0x00400001
-------------------------------------------------------
 d42f1480 00000000 f2979b2f 01000000 l ?......?./....
 01000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 484 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  484 to  503  Dba:0x00800001
-------------------------------------------------------
 d22f1480 00000000 f2979b2f 01000000 l ?......?./....
 03000000                            l ....
 <16 bytes per line>
BBED> modify /x d42f1480
BBED-00209: invalid number (d42f1480)

BBED> modify /x d42f
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  484 to  503           Dba:0x00800001
------------------------------------------------------------------------
 d42f1480 00000000 f2979b2f 01000000 03000000
 <32 bytes per line>
BBED> set offset +2
        OFFSET          486
BBED> modify /x 1480
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  486 to  505           Dba:0x00800001
------------------------------------------------------------------------
 14800000 0000f297 9b2f0100 00000300 00004101
 <32 bytes per line>
BBED> dump /v offset 484 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  484 to  503  Dba:0x00800001
-------------------------------------------------------
 d42f1480 00000000 f2979b2f 01000000 l ?......?./....
 03000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 1,1  offset 112 count 20
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  112 to  131  Dba:0x00400001
-------------------------------------------------------
 f8969b2f d32f1480 00000000 00000000 l ?./?..........
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 112 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  112 to  131  Dba:0x00800001
-------------------------------------------------------
 a9f29a2f b3e61380 00000000 00000000 l ?./虫..........
 00000000                            l ....
 <16 bytes per line>
BBED> modify /x f8969b2f
BBED-00209: invalid number (f8969b2f)

BBED> modify /x f896
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  112 to  131           Dba:0x00800001
------------------------------------------------------------------------
 f8969a2f b3e61380 00000000 00000000 00000000
 <32 bytes per line>
BBED> set offset +2
        OFFSET          114
BBED> modify /x 9b2f
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  114 to  133           Dba:0x00800001
------------------------------------------------------------------------
 9b2fb3e6 13800000 00000000 00000000 00000000
 <32 bytes per line>
BBED> dump /v offset 112
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  112 to  131  Dba:0x00800001
-------------------------------------------------------
 f8969b2f b3e61380 00000000 00000000 l ?./虫..........
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 1,1 offset 116 count 20
 File: /oracle/CRM2/system1.dbf (1)
 Block: 1       Offsets:  116 to  135  Dba:0x00400001
-------------------------------------------------------
 d32f1480 00000000 00000000 00000000 l ?..............
 00000000                            l ....
 <16 bytes per line>
BBED> dump /v dba 2,1 offset 116 count 20
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  116 to  135  Dba:0x00800001
-------------------------------------------------------
 b3e61380 00000000 00000000 00000000 l 虫..............
 00000000                            l ....
 <16 bytes per line>
BBED> modify /x d32f1480
BBED-00209: invalid number (d32f1480)

BBED> modify /x d32f
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  116 to  135           Dba:0x00800001
------------------------------------------------------------------------
 d32f1380 00000000 00000000 00000000 00000000
 <32 bytes per line>
BBED> set offset +2
        OFFSET          118
BBED> modify /x 1480
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1                Offsets:  118 to  137           Dba:0x00800001
------------------------------------------------------------------------
 14800000 00000000 00000000 00000000 00000000
 <32 bytes per line>
BBED> dump /v offset 116
 File: /oracle/CRM2/zxb.dbf (2)
 Block: 1       Offsets:  116 to  135  Dba:0x00800001
-------------------------------------------------------
 d32f1480 00000000 00000000 00000000 l ?..............
 00000000                            l ....
 <16 bytes per line>
BBED> sum apply
Check value for File 2, Block 1:
current = 0x6d37, required = 0x6d37
BBED> exit
[oracle@oracle ~]$ exit
exit

SQL> select file#,name,status from v$datafile;
     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM2/system1.dbf                 SYSTEM
         2 /oracle/CRM2/zxb.dbf                     RECOVER
         3 /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4 /oracle/CRM2/CRM/users01.dbf             ONLINE
         5 /oracle/CRM2/zxa.dbf                     ONLINE
         6 /oracle/CRM2/CRM/undotbs2.dbf            ONLINE
         7 /oracle/CRM2/zxc.dbf                     ONLINE
         8 /oracle/CRM2/CRM/zxbig1.dbf              ONLINE
8 rows selected.
SQL> recover datafile 2
Media recovery complete.
SQL> select file#,name,status from v$datafile;
     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM2/system1.dbf                 SYSTEM
         2 /oracle/CRM2/zxb.dbf                     OFFLINE
         3 /oracle/CRM2/CRM/sysaux01.dbf            ONLINE
         4 /oracle/CRM2/CRM/users01.dbf             ONLINE
         5 /oracle/CRM2/zxa.dbf                     ONLINE
         6 /oracle/CRM2/CRM/undotbs2.dbf            ONLINE
         7 /oracle/CRM2/zxc.dbf                     ONLINE
         8 /oracle/CRM2/CRM/zxbig1.dbf              ONLINE
8 rows selected.
SQL> alter database datafile 2 online;
Database altered.









本文转自 zhangxuwl 51CTO博客,原文链接:http://blog.51cto.com/jiujian/1052934,如需转载请自行联系原作者

目录
相关文章
|
3天前
|
存储 SQL 监控
Visual Basic与数据库交互:实现数据访问和管理
【4月更文挑战第27天】本文探讨了使用Visual Basic进行数据库编程的基础,包括数据库基础、连接、数据访问技术如ADO.NET,数据绑定,事务处理,存储过程与视图。还强调了性能优化、安全性、测试与调试,以及持续维护的重要性。通过掌握这些概念和技巧,开发者能构建高效、可靠的数据驱动应用。
|
2月前
|
Kubernetes 关系型数据库 MySQL
ChaosBlade常见问题之数据库进行故障注入报错ibdata1文件异常如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
25 1
|
2月前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之文件存在但是数据库提示文件不存在如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
存储 Oracle 关系型数据库
Dataphin常见问题之想要周期执行任务如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
8天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
23天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
28天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
2月前
|
SQL Java 数据库连接
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
19 0
|
20天前
|
缓存 NoSQL 算法
17- 数据库有1000万数据 ,Redis只能缓存20w数据, 如何保证Redis中的数据都是热点数据 ?
保证Redis中的20w数据为热点数据,可以通过设置Redis的LFU(Least Frequently Used)淘汰策略。这样,当数据库有1000万数据而Redis仅能缓存20w时,LFU会自动移除使用频率最低的项,确保缓存中的数据是最常使用的。
55 8
|
1天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
7 0