ORA-29857: domain indexes and/or secondary objects

dmp导入的时候出了问题,想把表空间和用户删除重建,然后再重新导入,却在删除表空间时报错:
 
> ORA-29857: domain indexes and/or secondary objects exist in the tablespace
 
看样子是域索引或者是还有其他用户引用了这个表空间的原因,首先检查一下域索引,用要表空间所属用户登录,执行语句:
 
>  select index_name, table_owner, table_name, tablespace_name from user_indexes where index_type='DOMAIN';
 
查出所有的当前表空间的域索引,将这些域索引删除之后便可继续drop表空间,但是在删除其中一个索引的时候报错:
 
> ORA-29868: cannot issue DDL on a domain index marked as LOADING
 
看样子这个就是导入时报错的地方,导致这个索引仍旧处在读取的状态,执行强制删除语句:
 
> DROP INDEX <index_name> FROCE;
 
如果这样还不行,就重启数据库后再强制删除,然后再使用DROP语句删除表空间重建即可。
 
上述是域索引导致删除报错的问题,如果是表空间同时被其他用户引用了的话,可以通过下面语句查出:
 
> select distinct owner from dba_tables where tablespace_name='<tablespace_name>'
 

 

如果有其他用户的话,可以将其他用户的表空间改为其他或删除用户,这样就可以继续执行表空间的删除和重建了
dmp导入的时候出了问题,想把表空间和用户删除重建,然后再重新导入,却在删除表空间时报错:
?
1
> ORA-29857: domain indexes and / or secondary objects exist in the tablespace
看样子是域索引或者是还有其他用户引用了这个表空间的原因,首先检查一下域索引,用要表空间所属用户登录,执行语句:
?
1
select index_name, table_owner, table_name, tablespace_name from user_indexes where index_type= 'DOMAIN' ;
查出所有的当前表空间的域索引,将这些域索引删除之后便可继续drop表空间,但是在删除其中一个索引的时候报错:
?
1
> ORA-29868: cannot issue DDL on a domain index marked as LOADING

看样子这个就是导入时报错的地方,导致这个索引仍旧处在读取的状态,执行强制删除语句:

 

?
1
> DROP INDEX <index_name> FROCE;

 

 

如果这样还不行,就重启数据库后再强制删除,然后再使用DROP语句删除表空间重建即可。

 

上述是域索引导致删除报错的问题,如果是表空间同时被其他用户引用了的话,可以通过下面语句查出:
?
1
> select distinct owner from dba_tables where tablespace_name= '<tablespace_name>'

 

 

如果有其他用户的话,可以将其他用户的表空间改为其他或删除用户,这样就可以继续执行表空间的删除和重建了

转载于:https://www.cnblogs.com/baiyangcao/p/5075211.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值