程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-29857: domain indexes and/or secondary objects,

ORA-29857: domain indexes and/or secondary objects,

編輯:Oracle教程

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>'

 

 

如果有其他用戶的話,可以將其他用戶的表空間改為其他或刪除用戶,這樣就可以繼續執行表空間的刪除和重建了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved