錯誤狀況:
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到底是什麼,抽時間要好好看看,待續。。。