在很多朋友的数据库中,聚簇对象 C_OBJ#_INTCOL# 占用了大量空间,有时候希望通过TRUNCATE清理这个对象,注意,当然最好不要这么做,风险太高。
但是当遇到坏块时,如下:
就可能可以尝试一下,使用特殊的手段进行恢复尝试。
设置 38003 事件,可以将对象 C_OBJ#_INTCOL# 从启动依赖中暂时剥离出来:
然后重启数据库,可以Truncate该对象:
此后去掉参数,重启数据库即可。

聚簇对象 C_OBJ#_INTCOL# 存储着柱状图信息, histgrm$ 基于其创建:
可以参考以下链接:
http://www.eygle.com/archives/2007/02/ora_00701_warmstarting.html
但是当遇到坏块时,如下:
Sat May 26 06:00:11 2012
Corrupt Block Found
TSN = 0, TSNAME = SYSTEM
RFN = 1, BLK = 38287, RDBA = 4232591
OBJN = 253, OBJD = 251, OBJECT = C_OBJ#_INTCOL#, SUBOBJECT =
SEGMENT OWNER = SYS, SEGMENT TYPE = Cluster Segment
就可能可以尝试一下,使用特殊的手段进行恢复尝试。
设置 38003 事件,可以将对象 C_OBJ#_INTCOL# 从启动依赖中暂时剥离出来:
alter system set event='38003 trace name context forever, level 10' scope=spfile;
然后重启数据库,可以Truncate该对象:
SQL> truncate cluster c_obj#_intcol#;
Cluster truncated.
此后去掉参数,重启数据库即可。

聚簇对象 C_OBJ#_INTCOL# 存储着柱状图信息, histgrm$ 基于其创建:
rem注意:如果选择安全的方式,建议导出数据,重建数据库,如果有备份,通过备份进行块恢复是最好的选择。
rem Histograms
rem
create cluster c_obj#_intcol#
( obj# number, /* object number */
intcol# number) /* internal column number */
pctfree 5
storage (initial 2m next 200k maxextents unlimited pctincrease 0)
/
create index i_obj#_intcol# on cluster c_obj#_intcol#
storage (maxextents unlimited)
/
create table histgrm$ /* histogram table */
( obj# number not null, /* object number */
col# number not null, /* column number */
row# number, /* row number (in row cache) */
bucket number not null, /* bucket number */
endpoint number not null, /* endpoint hashed value */
intcol# number not null, /* internal column number */
epvalue varchar2(1000), /* endpoint value information */
spare1 number,
spare2 number)
cluster c_obj#_intcol#(obj#, intcol#)
/
create index i_h_obj#_col# on histgrm$(obj#, col#)
storage (maxextents unlimited)
/
可以参考以下链接:
http://www.eygle.com/archives/2007/02/ora_00701_warmstarting.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




