oracle出现数据坏块,
解决办法:
1、根据文件号和块号查出损坏的是对象,表还是LOB segment
select tablespace_name,segment_type,owner,segment_name from dba_extents where file_id=4 and 234413between block_id AND block_id + blocks - 1;
①、如果是对象,可以重建
alter index indexname rebuild
②、如果是表,可以使用10231事件忽略坏块,然后使用CTAS方式重建表最后rename table,别忘记rebuild index
alter session SET EVENTS '10231 trace name context forever,level 10'; create table tab_new as select * from tab; rename tab to tab_bak; rename tab_new to new; alter index indexname rebuild; alter session SET EVENTS '10231 trace name context off';
参考:https://blog.csdn.net/a8619900/article/details/101831455?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-101831455-blog-130491775.235^v38^pc_relevant_sort&spm=1001.2101.3001.4242.4&utm_relevant_index=8