ora-01578问题的解决
来源:互联网 发布:日语汉字读音软件 编辑:程序博客网 时间:2024/04/30 20:22
ORA-01110: data file 69: '/data/XXXX/TS_CCBMMS_LOG_INDEX_20150201.dbf'
在告警日志alert.log中和应用程序日志中都能发现此报错。通过初步观察,是数据块损坏,损坏的应该是索引。可以通过以下语句来确认:
select * from dba_extents
where file_id='69'and'129559' between block_id and block_id+blocks -1;
发现损坏的是索引MMS_MOBILE_201502,再查出索引所属的表:
select * from dba_indexes where index_name=upper('MMS_MOBILE_201502');
可以查到损坏的是索引MMS_MOBILE_201502,所属表为mms_logsend。
1.将跟表mms_logsend相关的事务停止,做好备份,防止出错。
create table mms_logsend_bak as select *from mms_logsend;
2 删除索引MS_MOBILE_201502
drop index MMS_MOBILE_201502;
3 重新建立改索引
create index MMS_MOBILE_201502 on MMS_LOGSEND (MOBILE) tablespace TS_CCBMMS_LOG_INDEX_201502;
问题解决。如果硬盘存在问题,还是建议尽快更换硬盘,防止以后有类似的问题出现。
附属网上摘录的ora-01578问题的解决方法:
这种问题的解决方法是很多的,如果你用的是归档方式,则可以基于时间点恢复来解决。不过这里介绍一种比较方便的解决方式,因为我的库没有开归档。Metaline关于ORA-01578的文字也很多,不过我看过后总觉得都不那么实用,不能解决实际的问题。
1、 解决这种问题的第一步是首先你要确定是什么段、哪个段坏了,是索引还是表?
A、 打开alter.log,找到ORA-01578的报错信息,并记录下file#及block的值
B、 执行以下语句看哪个段坏了
SQL>Select * from dba_extents
2 where file_id=
3 and between block_id and block_id+blocks-1;
这里的F指的是file#,B指的是block#
2、如果确定下来坏的是索引段,这时你就可以轻舒一口气了,只要把这个索相删除然后重建一下就可以了,如果出现坏的是表段,则应往下走了。
3、 记录下这个表的建表语句
A、 以表的owner用pl/sql developer连入oracle。
B、在左面的树状栏中找到这个表,右击该表->view->View SQL,记录下sql,以备以下步骤中重建索引
4、 实际处理
A、 以表的owner连入oracle
B、 使用诊断事件10231
SQL> ALTER SYSTEM SET EVENTS ‘10231 trace name context forever,level 10’;
C、创建一个临时表tmp的表中除坏块的数据都检索出来
SQL>CREATE TABLE tg_bill03_tmp as select * from tg_bill03;
C、 更名原表,并把tg_bill03_tmp为tg_bill03
SQL>alter table tg_bill03 rename to tg_bill03_bak;
SQL>alter table tg_bill03_tmp to tg_bill03;
D、在tg_bill03上重新创建索引、约束、授权、trigger等对象
E、 利用表之间的业务关系,把坏块中的数据补足。
- ora-01578问题的解决
- ORA-01830问题的解决
- ORA-01830问题的解决
- ORA-22866问题的解决
- ORA-27092问题的解决
- ora-04091问题的解决
- ora-27054问题的解决
- ORA-14452问题的解决
- ora-01102问题的解决
- ora-01102问题的解决
- ORA-01092问题的解决
- 解决ora-12154的问题
- ora-03206问题的解决
- Oracle ORA-01078 ORA-01565 ORA-17503 ORA-15077问题的解决(及ORA-15100和ora-1031)
- oracle exp ORA-31600和ORA-00942问题的解决
- Oracle ORA-01078 ORA-01565 ORA-17503 ORA-15077问题的解决
- Oracle ORA-01078 ORA-01565 ORA-17503 ORA-15077问题的解决
- ora-01033 一个小问题的解决
- JSONP解决js跨域请求的问题
- [Java]String之寻根问底
- Android 5.1将于下月发布,将改善续航功能
- HTTP协议详解
- 深度学习基础(五)Softmax Regression
- ora-01578问题的解决
- Android中AudioFlinger的基本原理介绍
- Redis故障转移配置;Redis Sentinel配置;redis集群
- 提高效率 JavaScript调试 js 调试工具
- Android开发-API指南-AIDL
- windows下tcp网络传输
- 第一篇博客
- 关于audio的总结
- 50道Java线程面试题