楼主: ylsired

急!ORA-08104 this index object 7716 is being online built or rebuilt

[复制链接]
论坛徽章:
63
版主7段
日期:2012-05-15 15:24:11itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-10 14:34:59马上加薪
日期:2015-01-08 15:39:192015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2004-4-1 17:07 | 只看该作者
先做好备份.

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2004-4-1 17:14 | 只看该作者

谢谢!

这种情况open 数据库会有问题吗?

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
13#
发表于 2004-4-1 18:11 | 只看该作者
不会.

在Metalink上看到以下解决方案:

You can force this using

alter session set events 'immediate trace name DROP_SEGMENTS level TS#+1';

This event finds all the temporary segments in a tablespace which are not currently locked and drops them.

level - tablespace number+1. If the value is 2147483647 then temp segments in ALL tablespaces are dropped, otherwise, only segments in a tablespace whose number is equal to the LEVEL specification are dropped.

没用过这个方法,你可以试试看

btw:等待这个问题的回音

使用道具 举报

回复
论坛徽章:
30
ITPUB元老
日期:2005-10-06 13:25:212011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52马上有车
日期:2014-02-19 11:55:14
14#
发表于 2004-4-1 19:38 | 只看该作者
最初由 eygle 发布
[B]不会.

在Metalink上看到以下解决方案:

You can force this using

alter session set events 'immediate trace name DROP_SEGMENTS level TS#+1';

This event finds all the temporary segments in a tablespace which are not currently locked and drops them.

level - tablespace number+1. If the value is 2147483647 then temp segments in ALL tablespaces are dropped, otherwise, only segments in a tablespace whose number is equal to the LEVEL specification are dropped.

没用过这个方法,你可以试试看

btw:等待这个问题的回音 [/B]

我遇到过这个问题,也是在8174上。
不过我当时是做的alter index rebuild online,很久也没有出来,
我就把它kill了,结果就和楼主一样了
metalink上这个方法我当时也试了,等了十来分钟还是不行,我着急,就把oracle shutdown了。
呵呵,还好是测试库 ,重起后一切OK。

使用道具 举报

回复
论坛徽章:
30
ITPUB元老
日期:2005-10-06 13:25:212011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52马上有车
日期:2014-02-19 11:55:14
15#
发表于 2004-4-1 19:39 | 只看该作者
FT,我现在想在8174上重现,kill了N次居然都不报错了
我倒......

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
16#
发表于 2004-4-1 20:04 | 只看该作者
最初由 dlinger 发布
[B]
我遇到过这个问题,也是在8174上。
不过我当时是做的alter index rebuild online,很久也没有出来,
我就把它kill了,结果就和楼主一样了
metalink上这个方法我当时也试了,等了十来分钟还是不行,我着急,就把oracle shutdown了。
呵呵,还好是测试库 ,重起后一切OK。 [/B]


为什么要Kill?

Ctrl + C退出不就完了?

使用道具 举报

回复
论坛徽章:
30
ITPUB元老
日期:2005-10-06 13:25:212011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52马上有车
日期:2014-02-19 11:55:14
17#
发表于 2004-4-1 20:07 | 只看该作者
最初由 eygle 发布
[B]

为什么要Kill?

Ctrl + C退出不就完了?

[/B]


当时Ctrl + C了半天没有反映

使用道具 举报

回复
论坛徽章:
0
18#
 楼主| 发表于 2004-4-2 08:37 | 只看该作者

呵呵,这个方法在session 级和system 级都试过了,没有效果

我也搜遍了metalink ,在论坛上找到这种解决办法,没用。此方法
好像只适用于清除临时段。
昨晚连bug 库也搜索了,在bug 1466619 和bug 3220940 上都找到相同的另类解决办法,,就是update 数据字典:
SQL> select distinct flags from ind$ ;

     FLAGS
----------
         0
       256   

--只有一个标志为256  的索引,就是不能删除的索引:

SQL> select distinct obj# from ind$ where flags=256 ;

      OBJ#
----------
      7716

SQL> select owner,object_type,object_name from dba_objects where object_name like '%7716';

OWNER                          OBJECT_TYPE        OBJECT_NAME
------------------------------ ------------------ -----------------------------------
ccdata                         TABLE              SYS_JOURNAL_7716

两个bug 文档库都提到了直接update ind$  set flag=0 where obj#=7716 的方法。呵呵,这哪敢直接试。我准备现在测试环境重现一下,做作测试看。

最初由 eygle 发布
[B]不会.

在Metalink上看到以下解决方案:

You can force this using

alter session set events 'immediate trace name DROP_SEGMENTS level TS#+1';

This event finds all the temporary segments in a tablespace which are not currently locked and drops them.

level - tablespace number+1. If the value is 2147483647 then temp segments in ALL tablespaces are dropped, otherwise, only segments in a tablespace whose number is equal to the LEVEL specification are dropped.

没用过这个方法,你可以试试看

btw:等待这个问题的回音 [/B]

使用道具 举报

回复
论坛徽章:
30
ITPUB元老
日期:2005-10-06 13:25:212011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-02-13 15:11:52马上有车
日期:2014-02-19 11:55:14
19#
发表于 2004-4-2 08:39 | 只看该作者
关注

我昨天就没有能再现出来,等待楼主的实验

使用道具 举报

回复
论坛徽章:
0
20#
 楼主| 发表于 2004-4-2 09:31 | 只看该作者

测试如下:

SQL> create index idx_po_NO on app_ratio(PO_NO)        tablespace Po_IDX online;

(--在后台unix 杀服务进程 kill -9 12219 )
ORA-03113: 通信通道的文件结束

SQL>  drop index idx_po_NO ;

drop index idx_po_NO

ORA-08104: this index object 6622 is being online built or rebuilt

SQL> select distinct flags from sys.ind$;

     FLAGS
----------
         0
      256

SQL> select obj# from sys.ind$ where flags = 256;

      OBJ#
------------------
      6622

SQL> select OWNER,object_name,object_type from dba_objects where object_name like '%6622';

OWNER        OBJECT_NAME         OBJECT_TYPE
------------ ------------------- ------------------
CCDATA    SYS_JOURNAL_6622    TABLE


--采用metalink 的update ind$ 方法:

SQL> update ind$ set flags=0 where obj#=6622;

1 row updated

SQL> commit;

Commit complete

SQL> select obj# from sys.ind$ where flags = 256;

      OBJ#
----------

SQL> drop table epcisudwr.SYS_JOURNAL_6622;

Table dropped

--立刻删除索引,还是不成功
SQL> drop index epcisudwr.idx_POLICY_NO;

drop index epcisudwr.idx_POLICY_NO

ORA-08104: this index object 6622 is being online built or rebuilt

SQL> select flags from sys.ind$ where obj#=6622;

     FLAGS
----------
         0

--过了2分钟后,执行就报内部错误了,没有DOWN 库,但索引还是存在:
SQL>  drop index epcisudwr.idx_POLICY_NO;

drop index epcisudwr.idx_POLICY_NO

ORA-00600: internal error code, arguments: [4610], [], [], [], [], [], [], []


看来此方法也不行,这时metalink 的极端方法就是:

If you still get an error on the drop, try: .   
update ind$ set flags=0 where obj#={object ID of the problem index};     commit;   
shutdown abort   
startup

晕!




SQL>  drop index epcisudwr.idx_POLICY_NO;

drop index epcisudwr.idx_POLICY_NO

ORA-00600: internal error code, arguments: [4610], [], [], [], [], [], [], []

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表