强制OPEN数据库后遭遇ORA-08102故障的处理方法
来源:互联网 发布:淘宝粉丝群设置 编辑:程序博客网 时间:2024/05/14 04:29
用隐含参数强制OPEN数据库后会有很多遗留问题,如:需重建UNDO表空间,此外还会伴随有ORA-08102错误
刚才做破坏online日志实验的时候采用加隐含参数强制打开过数据库,之后alert日志就一直会报ORA-08102
Wed Jun 24 13:56:24 2015
Errors in file /u01/app/oracle/admin/ora10g/bdump/ora10g_j000_4737.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)
ORA-12012: error on auto execute of job 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)
--查看obj# 239的对象
SYS@ora10g> set line 130 pages 130
SYS@ora10g> col object_name form a15
SYS@ora10g> col owner for a10
SYS@ora10g> select owner,object_name,object_id,object_type from dba_objects where object_id=239;
OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE
---------- --------------- ---------- -------------------
SYS I_JOB_NEXT 239 INDEX
--查看I_JOB_NEXT这个索引属于哪个表
SYS@ora10g> select owner,index_name,table_name from dba_indexes where index_name='I_JOB_NEXT';
OWNER INDEX_NAME TABLE_NAME
---------- ------------------------------ ------------------------------
SYS I_JOB_NEXT JOB$
--查看I_JOB_NEXT这个索引创建再JOB$表的哪个列上
SYS@ora10g> col index_name for a10;
SYS@ora10g> col index_owner for a10
SYS@ora10g> col table_name for a10
SYS@ora10g> col column_name for a15
SYS@ora10g> select INDEX_OWNER,INDEX_NAME,TABLE_NAME,COLUMN_NAME from dba_ind_columns where INDEX_NAME='I_JOB_NEXT';
INDEX_OWNE INDEX_NAME TABLE_NAME COLUMN_NAME
---------- ---------- ---------- ---------------
SYS I_JOB_NEXT JOB$ NEXT_DATE
根据metalink上的文章:
ORA-08102: TRYING TO MANIPULATE A JOB IN DBA_JOBS [ID 1036858.6]
Solution Description:
=====================
You need to recreate the inex I_JOB_NEXT.
Script "$ORACLE_HOME/rdbms/admin/cat7103.sql" creates the I_JOB_NEXT:
Drop and recreate this index.
connect sys/<password>
drop index i_job_next;
create index i_job_next on job$ (next_date)
Note: alter index I_JOB_NEXT rebuild;
Will not fix the problem.
重建索引是没有用的,必须先删除,再重新创建
1.先删除索引i_job_next
SYS@ora10g> drop index i_job_next;
Index dropped.
2重建索引i_job_next;
SYS@ora10g> create index i_job_next on job$ (next_date);
Index created.
重建索引后,问题解决。所以,在没有必要的情况下,不要轻易去用隐含参数_allow_resetlogs_corruption=true去强制打开数据库,有隐患,如果不知道处理方法,仍然会对数据库产生影响。
0 0
- 强制OPEN数据库后遭遇ORA-08102故障的处理方法
- 遭遇恶意代码后的处理方法
- ORA-01031 故障处理方法
- 非归档遭遇ORA-00333导致数据库无法open
- 在Windows上调整SGA大小遭遇ora-27100、ora-27102错误的处理方法
- 在Windows上调整SGA大小遭遇ORA-27100、ORA-27102错误的处理方法
- Oracle数据库 ORA-600 [13013]故障处理
- 【故障处理】ORA-12162 错误的处理
- 一次ORA-60死锁故障的处理
- 案例:数据库open时报错ORA-1172,ORA-1151 处理
- ORA-01591故障处理
- ORA-01591故障处理
- ora-3136故障处理
- Oracle数据库open后,执行Alter Database mount,报ora-01100的错误
- 智能手机的故障处理方法
- Oracle数据库系统紧急故障处理方法
- 袁伟翔:数据库故障处理方法探讨
- 袁伟翔:数据库故障处理方法探讨
- Best Time to Buy and Sell Stock II
- C++13.1 复制构造函数-----临时对象(不是很懂)
- UI之网络编程(GET异步)
- C# 控制音量大小
- Apache简介——极客学院学习笔记
- 强制OPEN数据库后遭遇ORA-08102故障的处理方法
- 关于 ViewGroup 下 onDraw 方法失效
- 加入百度统计
- java 常用
- 稳定模式在RESTful架构中的应用
- A trustworthy website to buy swtor cheap credits with fast delivery and big dicount
- SQL2008全部数据导出导入两种方法
- 自定义 URL Scheme 完全指南
- Ubuntu下用VMware安装MacOSX