eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle关系数据库市场2010占有率达48.1% | Blog首页 | DELETE、TRUNCATE与高水位线(HWM) »

Max Extents越界导致故障的Oracle数据库恢复
modb.pro

今天接收到一则Oracle 8i的数据库故障,恢复数据过程并不特别复杂,只是Oracle 8i的东西基本上快忘的差不多了。

数据库是在一个ORA-1631错误持续报出后出现的问题, Oracle的一个数据对象的最大区数量超过,数据段将无法扩展。

错误信息类似如下内容:
Thu Mar 10 08:17:13 2011
 ORA-1631: max # extents 121 reached in table EXAM.EXAM_REPORT
Thu Mar 10 08:17:14 2011
 ORA-1631: max # extents 121 reached in table EXAM.EXAM_REPORT
Thu Mar 10 08:17:15 2011
 ORA-1631: max # extents 121 reached in table EXAM.EXAM_REPORT
Thu Mar 10 08:17:16 2011
 ORA-1631: max # extents 121 reached in table EXAM.EXAM_REPORT
Thu Mar 10 08:17:17 2011
 ORA-1631: max # extents 121 reached in table EXAM.EXAM_REPORT
Oracle数据库早期版本为了控制空间分配,对最大区数有限制,而这一限制在Oracle 9i中已经不存在了:
$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Wed Apr 20 15:45:01 2011

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
SQL> select distinct(MAX_EXTENTS) from dba_tables;

MAX_EXTENTS
-----------
 2147483645
由于某些数据无法插入,最后导致的问题是,表空间被强制离线,Oracle的某些事务一致性被破坏,而且无法成功回退,这就导致了数据库故障:
Wed Apr 20 10:51:36 2011
ORACLE Instance orcl (pid = 9) - Error 376 encountered while recovering transaction (10, 47) on object 25539.
Wed Apr 20 10:51:36 2011
Errors in file D:\oracle\admin\orcl\bdump\orclSMON.TRC:
ORA-00376: file 25 cannot be read at this time
ORA-01110: data file 25: 'D:\ORACLE\ORADATA\ORCL\APORDADM.DBF'
从这一点看起来,Oracle的保护机制应该更严格一点。当然,这些问题在9i之后不存在了。





历史上的今天...
    >> 2015-04-20文章:
    >> 2013-04-20文章:
    >> 2009-04-20文章:
    >> 2007-04-20文章:
           DBA警世录:人祸猛于虎
    >> 2006-04-20文章:
    >> 2005-04-20文章:
           五一出行计划

By eygle on 2011-04-20 17:13 | Comments (3) | Backup&Recovery | 2784 |

3 Comments

这是一个医院数据库,果然担心的问题出现了,看来下一步得重视数据的清理工作了。

嗯 数据文件名字看着很熟悉啊~


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com