问题描述
- oracle 01578 数据块损坏 怎么忽略
-
windows 2008 oracle 11 非归档模式数据库启动时没有错误提示。写入数据时会提示01578,这个数据文件在一个大的空间里(有很多数据文件)。我把它offline drop 后,查询它的状态是available.再写入数据时会提示01110错误,用recover 不成功,因为没有归档的日志。
请问:我能否在offline前把这个坏块的错误忽略掉?或者我在offline后不让数据库再去访问这个数据文件呢?
解决方案
在 exp 时出现以下错误:
EXP-00056: 遇到 ORACLE 错误 1578
ORA-01578: ORACLE 数据块损坏(文件号4,块号65)
ORA-01110: 数据文件 4: ’E:ORACLEORADATAUSERS.DBF’
措施:
-- 1. 检查损坏的对象
SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = 4
and 65 between block_id AND block_id + blocks - 1;
-- 2. 设置内部事件,使exp跳过损坏的block
ALTER SYSTEM SET EVENTS=’10231 trace name context forever,level 10’ ;
-- 3. 导出表
exp user1/passwd1 file=t1.dmp tables=t1
-- 4. 删除有坏块的表
drop table t1 purge;
-- 5. 导入表
imp user1/passwd1 file=t1.dmp tables=t1
-- 6. 清除跟踪事件
ALTER SYSTEM SET EVENTS=’10231 trace name context off’
解决方案二:
数据块损坏的处理办法搜下,帮你顶
解决方案三:
数据块损坏后修复 ora-01578
ORA-01578(数据块损坏) 转