Oracle数据文件scn不一致,控制文件与数据文件头SCN不一致导致数据库无法启动故障处理...

本文详细记录了一起Oracle数据库因SCN不一致导致无法启动的问题,包括尝试的NORESETLOGS和RESETLOGS方式重建控制文件,以及在处理中遇到的挑战,如UNDO段错误。最终通过设置隐藏参数跳过损坏UNDO段并创建新的UNDO表空间成功解决故障。
摘要由CSDN通过智能技术生成

环境说明

OS操作系统:WINDOWS 2012 64位

数据库版 本:ORACLE 11.2.0.1

故障问题描述

客户反映数据库无法启动,报ORA-01589:要打开数据库必须使用RESETLOGS或NORESETLOGS选项。使用alter database open

resetlogs启动数据库报ORA-01194:文件1需要更多恢复来保持一致性,ORA-01110:数据文件1:‘E:\APP\YING_LUN\ORADATA\ORCL\SYSTEM01.DBF’。

故障分析

1、在网上搜索相关文档,对于这样的问题需要进行控制文件恢复:

SQL> recover database using backup controlfile;

由于数据库在出故障之前没有开启归档日志,因为找不到需要的归档日志控制文件恢复失败。

2.使用NORESETLOGS方式重建控制文件

目前数据库可以启动到MOUNT状态,可以备份控制文件创建脚本到TRACE文件中,获取控制文件创建脚本

SQL>alter database backup controlfile to trace;

==>在11G中可以通过v$diag_info视图查看备份的TRACE文件的位置

SQL> select value from v$diag_info where name='Default Trace

File';

==>把TRACE文件中的NORESETLOGS方式创建控制文件的SQL语句复制到create.sql脚本

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGSARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 584

LOGFILE

GROUP 1

'E:\APP\YING_LIU\ORADATA\ORCL\REDO01.LOG'SIZE 500M BLOCKSIZE 512,

GROUP 2

'E:\APP\YING_LIU\ORADATA\ORCL\REDO02.LOG'SIZE 500M BLOCKSIZE 512,

GROUP 3

'E:\APP\YING_LIU\ORADATA\ORCL\REDO03.LOG'SIZE 500M BLOCKSIZE 512,

GROUP 4 'E:\APP\YING_LIU\ORADATA\ORCL\REDO04.LOG'SIZE 500M BLOCKSIZE 512,

GROUP 5

'E:\APP\YING_LIU\ORADATA\ORCL\REDO05.LOG'SIZE 500M BLOCKSIZE 512,

GROUP 6

'E:\APP\YING_LIU\ORADATA\ORCL\REDO06.LOG'SIZE 500M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'E:\APP\YING_LIU\ORADATA\ORCL\SYSTEM01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\SYSAUX01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\UNDOTBS01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\USERS01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\EXAMPLE01.DBF',

'E:\APP\TABLESPACE\MALASONG.DBF',

'E:\APP\TABLESPACE\WX_REDPACKET.DBF',

'D:\ORACLE\ORCL\SIGNIN_USER_TEST.DBF',

'E:\APP\TABLESPACE\EXAM_SYSTEM.DBF',

'E:\APP\TABLESPACE\EXAM_SYSTEM_TEST.DBF',

'E:\APP\TABLESPACE\ICLUB.DBF',

'E:\APP\TABLESPACE\PINBAO.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\SYSTEM3.DBF'

CHARACTER SET ZHS16GBK

;

==>执行create.sql脚本重建控制文件

SQL> shutdown immediate;

SQL>@create.sql

==>执行create.sql脚本时报错日志组5与日志文件redo5.log不匹配。在网上搜索到的资料建议删除日志组相关内容或使用RESETLOGS方式创建控制文件,于是删除日志文件相关内容。

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGSARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 584

LOGFILE

-- STANDBY LOGFILE

DATAFILE

'E:\APP\YING_LIU\ORADATA\ORCL\SYSTEM01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\SYSAUX01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\UNDOTBS01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\USERS01.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\EXAMPLE01.DBF',

'E:\APP\TABLESPACE\MALASONG.DBF',

'E:\APP\TABLESPACE\WX_REDPACKET.DBF',

'D:\ORACLE\ORCL\SIGNIN_USER_TEST.DBF',

'E:\APP\TABLESPACE\EXAM_SYSTEM.DBF',

'E:\APP\TABLESPACE\EXAM_SYSTEM_TEST.DBF',

'E:\APP\TABLESPACE\ICLUB.DBF',

'E:\APP\TABLESPACE\PINBAO.DBF',

'E:\APP\YING_LIU\ORADATA\ORCL\SYSTEM3.DBF'

CHARACTER SET ZHS16GBK

;

==>执行修改后的 create.sql报数据库名与SPFILE中的DB_NAME不一致,经检查数据库名称与SPFILE

==>在的DB_NAME是一致。于是决定使用 RESETLOGS方式重建控制文件。

;

3、使用RESETLOGS方式重建控制文件:

==>把 RESETLOGS方式创建控制文件的脚本复制到create_2.sql文件中

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGSARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 584

LOGFILE

GROUP 1

'E:\APP\YING_LIU\ORADATA\ORCL\REDO01.LOG&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值