如果有其他用戶的話,可以將其他用戶的表空間改為其他或刪除用戶,這樣就可以繼續執行表空間的刪除和重建了 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>'
如果有其他用戶的話,可以將其他用戶的表空間改為其他或刪除用戶,這樣就可以繼續執行表空間的刪除和重建了