Max Extents越界导致故障的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_REPORTOracle数据库早期版本为了控制空间分配,对最大区数有限制,而这一限制在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之后不存在了。
By eygle on 2011-04-20 17:13 |
Comments (3) |
Backup&Recovery | 2784 |
3 Comments
这是一个医院数据库,果然担心的问题出现了,看来下一步得重视数据的清理工作了。