li
  当前位置:主页 > 性能优化 > 文章内容
li
案例解决:一次oracle掉电的处理过程
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-01-20   阅读:74  
本文章共13520字,分3页,当前第1页,快速翻页:
 


 

   年关事情多,最近设备运行极度不正常,好像是过年了,也想罢工休息一样!昨日一台oracle db主板坏掉,数据库也随之崩溃,oracle服务器重启后,无法open,以下是恢复过程!

 

/home/oracle$sqlplus "/as sysdba"

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1 18 15:50:26 2008

 

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

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  616562688 bytes

Fixed Size                  1220868 bytes

www.ixdba.net


Variable Size             167775996 bytes

Database Buffers          440401920 bytes

Redo Buffers                7163904 bytes

Database mounted.

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

SQL>  

检查alter日志,发现如下错误:

 

Fri Jan 18 09:57:19 2008

ALTER DATABASE RECOVER    LOGFILE '/opt/oracle/oradata/oradb/redo03.log'

Fri Jan 18 09:57:19 2008

Media Recovery Log /opt/oracle/oradata/oradb/redo03.log

Fri Jan 18 09:57:19 2008

Errors in file /opt/oracle/admin/oradb/bdump/oradb_p002_6556.trc:

ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [4099], [6101], [], [], [], []

Fri Jan 18 09:57:19 2008

Errors in file /opt/oracle/admin/oradb/bdump/oradb_p000_6552.trc:

ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [3770], [6255], [], [], [], []

Fri Jan 18 09:57:19 2008

Errors in file /opt/oracle/admin/oradb/bdump/oradb_p002_6556.trc:

ORA-10562: Error occurred while applying redo to data block (file# 1, block# 4099)

ORA-10564: tablespace SYSTEM

ORA-01110: data file 1: '/opt/oracle/oradata/oradb/bak/system01.dbf'

ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 517

ORA-00607: Internal error occurred while making a change to a data block

ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [4099], [6101], [], [], [], []

Fri Jan 18 09:57:20 2008

Errors in file /opt/oracle/admin/oradb/bdump/oradb_p000_6552.trc:

ORA-10562: Error occurred while applying redo to data block (file# 1, block# 3770)

ORA-10564: tablespace SYSTEM

ORA-01110: data file 1: '/opt/oracle/oradata/oradb/bak/system01.dbf'

ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 482

ORA-00607: Internal error occurred while making a change to a data block

ORA-00600: internal error code, arguments: [kddummy_blkchk], [1], [3770], [6255], [], [], [], []

Recovery interrupted!

Recovered data files to a consistent state at change 2433115

Fri Jan 18 09:57:24 2008

Media Recovery failed with error 12801

ORA-283 signalled during: ALTER DATABASE RECOVER    LOGFILE '/opt/oracle/oradata/oradb/redo03.log'  ...

Fri Jan 18 09:57:24 2008

ALTER DATABASE RECOVER CANCEL

ORA-1112 signalled during: ALTER DATABASE RECOVER CANCEL ...

Shutting down instance: further logons disabled

 

初步断定是当前redo由于突然断电造成损坏,重启db后,造成系统表空间不一致,db无法起动。

 

经过询问和检查,数据库没有备份,并且处于非归档模式。

 

解决办法只有一个加上隐含参数起动试试!

 

_ALLOW_RESETLOGS_CORRUPTION = TRUE

 

SQL> show parameter spfile

 

NAME                                 TYPE                      VALUE

--------------------             ----------------              ---------------------   

spfile                              string          /opt/oracle/product/10.2.0.1/d

b_1/dbs/spfileoradb.ora

 

SQL> show parameter '_all'*

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

_allow_resetlogs_corruption          boolean

FALSE

fast_start_parallel_rollback         string

LOW

parallel_adaptive_multi_user         boolean

TRUE

parallel_automatic_tuning            boolean

FALSE

parallel_execution_message_size      integer

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

2148

parallel_instance_group              string

 

parallel_max_servers                 integer

80

parallel_min_percent                 integer

0

parallel_min_servers                 integer

0

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

parallel_server                      boolean

FALSE

parallel_server_instances            integer

1

parallel_threads_per_cpu             integer

2

recovery_parallelism                 integer

0

SQL>

SQL> select status,name from v$datafile;

 

STATUS

--------------

NAME

--------------------------------------------------------------------------------

SYSTEM

/opt/oracle/oradata/oradb/bak/system01.dbf

 

RECOVER

/opt/oracle/oradata/oradb/undotbs01.dbf

 

RECOVER

/opt/oracle/oradata/oradb/sysaux01.dbf

 

 

STATUS

--------------

NAME

--------------------------------------------------------------------------------

RECOVER

/opt/oracle/oradata/oradb/users01.dbf

 

RECOVER

/opt/oracle/oradata/oradb/tools01.dbf

 

RECOVER

/opt/oracle/oradata/oradb/indx01.dbf

 

 

STATUS

--------------

NAME

--------------------------------------------------------------------------------

RECOVER

/opt/oracle/oradata/oradb/cicrodb.dbf

 

 

7 rows selected.

 

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;

ORA-00279: change 2433115 generated at 01/17/2008 04:00:40 needed for thread 1

ORA-00289: suggestion :

/opt/oracle/flash_recovery_area/ORADB/archivelog/2008_01_18/o1_mf_1_42_%u_.arc

ORA-00280: change 2433115 for thread 1 is in sequence #42

 

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

auto

ORA-00308: cannot open archived log

'/opt/oracle/flash_recovery_area/ORADB/archivelog/2008_01_18/o1_mf_1_42_%u_.arc'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

 

 

ORA-00308: cannot open archived log

'/opt/oracle/flash_recovery_area/ORADB/archivelog/2008_01_18/o1_mf_1_42_%u_.arc'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

 

 

SQL> recover database using  BACKUP CONTROLFILE;

ORA-00279: change 2433115 generated at 01/17/2008 04:00:40 needed for thread 1

ORA-00289: suggestion :

/opt/oracle/flash_recovery_area/ORADB/archivelog/2008_01_18/o1_mf_1_42_%u_.arc

ORA-00280: change 2433115 for thread 1 is in sequence #42

 

 

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

cancel

Media recovery cancelled.

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

 

SQL> alter database open resetlogs;

alter database open resetlogs

*

ERROR at line 1:

ORA-01113: file 1 needs media recovery

ORA-01110: data file 1: '/opt/oracle/oradata/oradb/bak/system01.dbf'

 

上面显示系统表空间需要恢复

 

SQL> recover datafile 1;

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 2433115 generated at 01/17/2008 04:00:40 needed for thread 1

ORA-00289: suggestion :

/opt/oracle/flash_recovery_area/ORADB/archivelog/2008_01_18/o1_mf_1_42_%u_.arc

ORA-00280: change 2433115 for thread 1 is in sequence #42

 

 

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

cancel

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below

ORA-01194: file 1 needs more recovery to be consistent

ORA-01110: data file 1: '/opt/oracle/oradata/oradb/bak/system01.dbf'

 

 

ORA-01112: media recovery not started

 

 



阅读更多内容1 · 2 · 3 · 下一页>>


  上一篇: 阿里巴巴公司DBA笔试题   下一篇: 我的oracle笔记,欢迎收看!
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·阿里巴巴公司DBA笔试题
·Oracle数据库ASM功能详解
·Java用OCI驱连Oracle数据库的实现...
·oracle问题小结一:ORACLE常见错...
·Oracle优化经典文章--磁盘I/O和碎...
·案例分析:ORA-25153: Temporary...
·案例分析:ORA-12500错误案例
·案例分析:ORA-01461错误
·案例分析:ORA-01178错误释疑
·案例分析:ORA-01000: maximum o...
·我的oracle笔记,欢迎收看!
·如何确定导致刷新组刷新失败的物...
·添加字段对SQL的影响
·使用当前用户的数据库链的实现
·如何确定导致刷新组刷新失败的物...
·函数索引产生隐藏列
·ORA-600(ktsircinfo_num1)错误
·Oracle10201在Enterprise Linux ...
·表异常增大的bug
·数据库升级造成的X_$BH状态异常问...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接