`

非归档模式下,ORA-01190错误解决案例

阅读更多

1.非归档模式下,断电重新启动导致无法锁定数据文件

SYS@huiches>startup
ORACLE 例程已经启动。
Total System Global Area  159383552 bytes
Fixed Size                  1295608 bytes
Variable Size              96471816 bytes
Database Buffers           54525952 bytes
Redo Buffers                7090176 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF'

2.先用控制文件把数据库启来再说
SYS@huiches>alter database backup controlfile to trace;

数据库已更改。

已用时间:  00: 00: 00.40s
SYS@huiches>shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SYS@huiches>STARTUP NOMOUNT
ORACLE 例程已经启动。
Total System Global Area  159383552 bytes
Fixed Size                  1295608 bytes
Variable Size              96471816 bytes
Database Buffers           54525952 bytes
Redo Buffers                7090176 bytes
SYS@huiches>CREATE CONTROLFILE REUSE DATABASE "HUICHES" RESETLOGS FORCE LOGGING NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 2337
  7  LOGFILE
  8    GROUP 4 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\REDO04.LOG'  SIZE 10M,
  9    GROUP 5 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\REDO05.LOG'  SIZE 10M,
 10    GROUP 6 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\REDO06.LOG'  SIZE 10M
 11  -- STANDBY LOGFILE
 12  DATAFILE
 13    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSTEM01.DBF',
 14    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\UNDODATA01.DBF',
 15    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSAUX01.DBF',
 16    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS02.DBF',
 17    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\INDX01.DBF',
 18    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\CATALOG.DBF'
 19  CHARACTER SET AL32UTF8
 20  ;

控制文件已创建。

已用时间:  00: 00: 01.11
SYS@huiches>alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: ??????????? RESETLOGS ? NORESETLOGS ??


已用时间:  00: 00: 00.20
SYS@huiches>alter database open resetlogs;

数据库已更改。

已用时间:  00: 00: 17.42

3.检查到有一个文件需要恢复
SYS@huiches>select * from v$recover_file;
     FILE# ONLINE         ONLINE_STATUS  ERROR                                                                CHANGE# TIME
---------- -------------- -------------- ----------------------------------------------------------------- ---------- --------------
         6 OFFLINE        OFFLINE        FILE MISSING                                                               0

已用时间:  00: 00: 00.06

4.检查到文件丢失信息
SYS@huiches>select * from dba_data_files;
FILE_NAME                                                       FILE_ID TABLESPACE_NAME           BYTES     BLOCKS STATUS                                                       RELATIVE_FNO AUTOEX   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ON
------------------------------------------------------------ ---------- -------------------- ---------- ---------- ------------------------------------------------------------ ------------ ------ ---------- ---------- ------------ ---------- ----------- --
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\CATALOG.DBF                  8 TOOLS                  20971520       2560 AVAILABLE                                                               8 NO              0          0            0   20905984        2552 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\INDX01.DBF                   5 INDX                   20971520       2560 AVAILABLE                                                               5 YES    3.4360E+10    4194302           13   20905984        2552 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS02.DBF                  4 USERS                 528220160      64480 AVAILABLE                                                               4 YES    3.4360E+10    4194302          160  528154624       64472 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSAUX01.DBF                 3 SYSAUX                325058560      39680 AVAILABLE                                                               3 YES    3.4360E+10    4194302         1280  324993024       39672 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\UNDODATA01.DBF               2 UNDO01                104857600      12800 AVAILABLE                                                               2 YES    3.4360E+10    4194302          128  104792064       12792 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSTEM01.DBF                 1 SYSTEM                912261120     111360 AVAILABLE                                                               1 YES    3.4360E+10    4194302         1280  912195584      111352 SY
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\MISSING00006                   6 USERS                                      AVAILABLE                                                               6                                                                  RE

已选择7行。

已用时间:  00: 00: 00.12

5.尝试重命名数据文件
SYS@huiches>alter database rename datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\MISSING00006' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF';
alter database rename datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\MISSING00006' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF'
                      *
第 1 行出现错误:
ORA-02231: ALTER DATABASE ?????????????????????


已用时间:  00: 00: 00.03
SYS@huiches>alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\MISSING00006' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF';

数据库已更改。

已用时间:  00: 00: 00.15
SYS@huiches> select * from v$recover_file;
     FILE# ONLINE         ONLINE_STATUS  ERROR                                                                CHANGE# TIME
---------- -------------- -------------- ----------------------------------------------------------------- ---------- --------------
         6 OFFLINE        OFFLINE        UNKNOWN ERROR                                                      166743763 08-4?  -10

已用时间:  00: 00: 00.07

6.尝试把文件6上线
SYS@huiches>alter database datafile 6 online;
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01190: ??????????????????????????? 6 ?????????????????? RESETLOGS ??????
ORA-01110: ???????????? 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF'


已用时间:  00: 00: 00.07
SYS@huiches>alter session set nls_language='american';

Session altered.

Elapsed: 00:00:00.01
SYS@huiches>alter database datafile 6 online;
alter database datafile 6 online
*
ERROR at line 1:
ORA-01190: control file or data file 6 is from before the last RESETLOGS
ORA-01110: data file 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF'


Elapsed: 00:00:00.09

7.控制文件或文件6不在同一个resetlogs版本,尝试手动调整SCN,手动调整SCN,以后必须用resetlogs模式打开数据库,所以需要设置_allow_resetlogs_corruption=true
SYS@huiches> ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME ADJUST_SCN LEVEL 1';

Session altered.

Elapsed: 00:00:00.45
SYS@huiches> select * from v$recover_file;
     FILE# ONLINE         ONLINE_STATUS  ERROR                                                                CHANGE# TIME
---------- -------------- -------------- ----------------------------------------------------------------- ---------- ------------
         6 OFFLINE        OFFLINE        UNKNOWN ERROR                                                      166743763 08-APR-10

Elapsed: 00:00:00.06
SYS@huiches>show parameter _allow_resetlogs_corruption
SYS@huiches>alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.

Elapsed: 00:00:00.06
SYS@huiches>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@huiches>startup mount;
ORACLE instance started.
Total System Global Area  159383552 bytes
Fixed Size                  1295608 bytes
Variable Size              96471816 bytes
Database Buffers           54525952 bytes
Redo Buffers                7090176 bytes
数据库装载完毕。
SYS@huiches>recover database until cancel;
完成介质恢复。

8.完成介质恢复. 上面这一步很重要, 虽然不做这个操作也能打开数据库,但是我们是要用RESETLOGS来打开数据库,然后将数据文件状态联机:
SYS@huiches>alter database datafile 6 online;

数据库已更改。

已用时间:  00: 00: 00.09
SYS@huiches>select * from v$recover_file;
     FILE# ONLINE         ONLINE_STATUS  ERROR                                                                CHANGE# TIME
---------- -------------- -------------- ----------------------------------------------------------------- ---------- --------------
         6 ONLINE         ONLINE         UNKNOWN ERROR                                                      166743763 08-4月 -10

已用时间:  00: 00: 00.14
SYS@huiches>alter database open resetlogs;

数据库已更改。

已用时间:  00: 00: 15.04

9.数据库成功启动,一切正常
SYS@huiches>select * from v$recover_file;

未选定行

已用时间:  00: 00: 00.06
SYS@huiches>select * from dba_data_files;
FILE_NAME                                                       FILE_ID TABLESPACE_NAME           BYTES     BLOCKS STATUS                                                       RELATIVE_FNO AUTOEX   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ON
------------------------------------------------------------ ---------- -------------------- ---------- ---------- ------------------------------------------------------------ ------------ ------ ---------- ---------- ------------ ---------- ----------- --
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\CATALOG.DBF                  8 TOOLS                  20971520       2560 AVAILABLE                                                               8 NO              0          0            0   20905984        2552 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\INDX01.DBF                   5 INDX                   20971520       2560 AVAILABLE                                                               5 YES    3.4360E+10    4194302           13   20905984        2552 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS02.DBF                  4 USERS                 528220160      64480 AVAILABLE                                                               4 YES    3.4360E+10    4194302          160  528154624       64472 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSAUX01.DBF                 3 SYSAUX                325058560      39680 AVAILABLE                                                               3 YES    3.4360E+10    4194302         1280  324993024       39672 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\UNDODATA01.DBF               2 UNDO01                104857600      12800 AVAILABLE                                                               2 YES    3.4360E+10    4194302          128  104792064       12792 ON
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\SYSTEM01.DBF                 1 SYSTEM                912261120     111360 AVAILABLE                                                               1 YES    3.4360E+10    4194302         1280  912195584      111352 SY
D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\USERS03.DBF                  6 USERS                 180879360      22080 AVAILABLE                                                               6 NO              0          0            0  180813824       22072 ON

已选择7行。

已用时间:  00: 00: 00.14
SYS@huiches>select * from dba_temp_files;

未选定行

已用时间:  00: 00: 00.09
SYS@huiches>ALTER TABLESPACE TEMP01 ADD TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HUICHES\TEMP02.DBF' REUSE;

表空间已更改。

已用时间:  00: 00: 00.34

已用时间:  00: 00: 00.04

10.reset  _allow_resetlogs_corruption
SYS@huiches>alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';

系统已更改。

已用时间:  00: 00: 00.04

分享到:
评论

相关推荐

    oracle10g服务器断电恢复

    【Oracle 10g 服务器断电恢复】 在IT领域,数据库系统的稳定性和可靠性至关重要,...此外,为防止类似事件发生,建议对关键系统配置 UPS,同时保持数据库在归档模式下运行,以便在断电或灾难发生时有更多的恢复选项。

    非归档模式system表空间损坏数据库恢复.docx

    本文将通过一个具体的案例来探讨如何处理非归档模式下System表空间损坏的问题,并尝试恢复数据库。 #### 二、故障现象 根据给定的部分内容来看,数据库管理员尝试启动一个处于非归档模式下的Oracle 11g数据库时...

    数据库ORA-01196故障-归档日志丢失恢复详解

    在Oracle数据库环境中,当遇到"ORA-01196: 文件 1 由于介质恢复会话失败而不一致"的错误时,这通常意味着数据库在尝试打开时发现数据文件的状态不正常,可能是因为数据文件损坏或者缺少必要的归档日志进行恢复。...

    oracle坏块处理

    下面详细介绍一种适用于非归档模式数据库的解决方案: 1. **确定损坏的段**:首先,需确认损坏的块属于哪个段,是表还是索引。这一步骤可以通过分析`alert<sid>.log`日志中的错误信息,以及执行如下SQL查询来实现:...

    SCO UNIX系统下Oracle数据库的自动备份.pdf

    在执行Export时,数据库需处于打开状态,且处于归档模式。备份方式有Full(整个数据库)、Table(指定表)和User(指定用户的所有对象)。本文提及的实践案例中,选择了User模式进行备份。 2. **创建备份目录**:在...

    深入解析Oracle--DBA入门、进阶与诊断案例

    3. 问题修复:处理常见的Oracle错误,如ORA-00001、ORA-01555等,学习如何解决数据不一致、数据丢失等问题。 4. 性能诊断:通过AWR(Automatic Workload Repository)和ASH(Active Session History)报告,进行性能...

    Killtest 免费提供 1Z0-052 资料下载

    根据给定文件的信息,我们可以提炼出与Oracle数据库相关的多个知识点,包括错误代码的理解、自动负载信息库(AWR)的功能、索引优化策略以及不同运行模式下的备份操作。以下是详细的知识点解析: ### 1. ORA-01555:...

    一次简单的Oracle恢复Case实战记录

    这需要在数据库处于归档模式下,并且有足够的备份和联机重做日志来执行完整恢复。 在数据库打开后,新的错误开始出现,比如"ORA-00600: internal error code, arguments: [17147]",这表明还有其他数据块或系统组件...

    数据库文件误删

    Oracle数据库使用归档日志模式(Archived Log Mode)和联机重做日志(Online Redo Log Files)来确保数据的安全性。联机重做日志由一组日志文件组成,每个组包含多个成员,确保在日志切换时提供冗余和连续性。当...

    ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册.zip

    Oracle提供RMAN(恢复管理器)进行备份和恢复操作,同时,了解如何配置归档日志模式以及使用Flashback技术对数据进行恢复也是关键。 3. **故障排查**:当数据库出现错误或异常时,DBA需要能快速识别错误代码并找到...

    ORACLE数据库恢复实例

    - 恢复操作可能会遇到ORA错误代码,如ORA-00279、ORA-00289等,这些通常提示需要特定的归档日志进行恢复。 ### 结论 Oracle数据库的数据文件恢复是一个复杂但至关重要的过程,特别是在面对数据丢失或损坏时。通过...

    Oracle重建控制文件的实例教程

    如果数据库处于归档模式,可能还需要额外的步骤来恢复归档日志。 总之,Oracle控制文件的重建是一个关键的故障恢复过程,需要仔细操作,避免进一步的数据损失。通过理解控制文件的作用,识别错误代码,以及熟练掌握...

    新版ORACLE_8故障解决手册

    了解冷备份、热备份、逻辑备份以及归档日志模式的概念,确保数据安全。 10. **性能监控**:利用Oracle的性能监控工具如V$视图、SQL*Plus的性能报告(如ASH、AWR、STATSPACK)来定期检查数据库状态,及时发现和解决...

    Oralce物理文件恢复.docx

    本文将详细介绍一种特殊情况下的Oracle数据库物理文件恢复流程——当数据库未开启归档模式且没有备份时,如何通过一系列操作尝试恢复数据。 #### 二、故障情景 本次案例中,一台服务器由于意外停电导致数据库服务...

    oracle 命令集

    恢复数据库(`recover database`),切换归档模式(`alter database archivelog`),限制会话(`restricted session`),创建新数据库(`create database`),以及将数据库恢复到特定时间点(`recover database until`)等。...

    Oracle表空间数据库文件收缩案例解析

    本案例主要讨论的是如何解决由于数据文件初始化过大而导致的磁盘空间不足问题。 一、错误信息分析 错误信息“ORA-00257: archiver error. Connect internal only, until freed.”表明数据库的归档日志功能遇到了...

Global site tag (gtag.js) - Google Analytics