已發生了數據庫錯誤 ORA-29861: 域索引標記爲 LOADING/FAILED/UNUSABLE

錯誤狀況:


BMXAA4407E - 在工作流程處理過程中發生非預期異常。
BMXAA4211E - 對WFASSIGNMENT 任務分配=2,568,992 過程=MRAPPROVE 過程修訂=6 工作流程標識=42,689 節點標識=26進行操作時,已發生了數據庫錯誤,編號爲29861。
ORA-29861: 域索引標記爲 LOADING/FAILED/UNUSABLE

 解決過程:

剛開始以爲是域索引的問題或是全文索引的問題:執行一下全文索引的腳本,如下:

call ctx_ddl.drop_preference('global_lexer');
call ctx_ddl.drop_preference('default_lexer');
call ctx_ddl.drop_preference('english_lexer');
call ctx_ddl.drop_preference('chinese_lexer');
call ctx_ddl.drop_preference('japanese_lexer');
call ctx_ddl.drop_preference('korean_lexer');
call ctx_ddl.drop_preference('german_lexer');
call ctx_ddl.drop_preference('dutch_lexer');
call ctx_ddl.drop_preference('swedish_lexer');
call ctx_ddl.drop_preference('french_lexer');
call ctx_ddl.drop_preference('italian_lexer');
call ctx_ddl.drop_preference('spanish_lexer');
call ctx_ddl.drop_preference('portu_lexer');
call ctx_ddl.create_preference('default_lexer','basic_lexer');
call ctx_ddl.create_preference('english_lexer','basic_lexer');
call ctx_ddl.create_preference('chinese_lexer','chinese_lexer');
call ctx_ddl.create_preference('japanese_lexer','japanese_lexer');
call ctx_ddl.create_preference('korean_lexer','korean_morph_lexer');
call ctx_ddl.create_preference('german_lexer','basic_lexer');
call ctx_ddl.create_preference('dutch_lexer','basic_lexer');
call ctx_ddl.create_preference('swedish_lexer','basic_lexer');
call ctx_ddl.create_preference('french_lexer','basic_lexer');
call ctx_ddl.create_preference('italian_lexer','basic_lexer');
call ctx_ddl.create_preference('spanish_lexer','basic_lexer');
call ctx_ddl.create_preference('portu_lexer','basic_lexer');
call ctx_ddl.create_preference('global_lexer', 'multi_lexer');
call ctx_ddl.add_sub_lexer('global_lexer','default','default_lexer');
call ctx_ddl.add_sub_lexer('global_lexer','english','english_lexer','en');
call ctx_ddl.add_sub_lexer('global_lexer','simplified chinese','chinese_lexer','zh');
call ctx_ddl.add_sub_lexer('global_lexer','japanese','japanese_lexer',null);
call ctx_ddl.add_sub_lexer('global_lexer','korean','korean_lexer',null);
call ctx_ddl.add_sub_lexer('global_lexer','german','german_lexer','de');
call ctx_ddl.add_sub_lexer('global_lexer','dutch','dutch_lexer',null);
call ctx_ddl.add_sub_lexer('global_lexer','swedish','swedish_lexer','sv');
call ctx_ddl.add_sub_lexer('global_lexer','french','french_lexer','fr');
call ctx_ddl.add_sub_lexer('global_lexer','italian','italian_lexer','it');
call ctx_ddl.add_sub_lexer('global_lexer','spanish','spanish_lexer','es');
call ctx_ddl.add_sub_lexer('global_lexer','portuguese','portu_lexer',null);

運行起來,問題沒解決。 


好吧,那就在數據庫配置中去除已啓用文本搜索?

Configdb的時候無法完成,報“域索引狀態爲loading,不能進行ddl操作”(記不太清了,也忘記截圖了)。

 

好吧,那看起來是oracle庫中索引的問題。Google到一篇文章:

1.    ORA-29861: 域索引標記爲 LOADING/FAILED/UNUSABLE  

2.    這是該表的一個intermedia索引有問題  

3.    先查詢看看當前的全文索引  

4.    select idx_name,idx_status from ctxsys.ctx_indexes;  

5.    需要重建同步全文索引:  

6.    alter index  索引名  rebuild online parameters('sync')  

7.    如果還是不行就刪除 索引  

8. drop index 索引名 force;  

查自己庫中的索引SELECT t.* FROM ctxsys.ctx_indexes t,果然有好多狀態異常的,如下:

 

按照上面的方法修復,不行,那就乾脆刪除掉算了(注:我的是測試環境,希望你慎重,我也沒搞清楚這個表是做什麼的)

運行好像沒什麼錯誤了。但是還沒搞清楚oracle的這個東西ctxsys.ctx_indexes到底是什麼,抽時間要好好看看,待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章