This content has been marked as final. Show 5 replies
I have to wonder why you think you need to drop and recreate the index, especially while loading data. You are already using sync(on commit). Why can't you just optimize or rebuild or drop and recreate when you are not loading? Anyhow, per the online documentation:
"ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE
Cause: An attempt has been made to access a domain index that is being built or is marked failed by an unsuccessful DDL or is marked unusable by a DDL operation.
Action: *Wait if the specified index is marked LOADING* Drop the specified index if it is marked FAILED Drop or rebuild the specified index if it is marked UNUSABLE."
If you do need to recreate the index, you could create a shadow index then swap it in (assuming you have 11g):1 person found this helpful
If your table is partitioned, you might be able to use on of the tricks mentioned here:
CTX_DDL.CREATE_SHADOW_INDEX ( idx_name=>'items_description', parameter_string=>'REPLACE LEXER my_new_lexer'); CTX_DDL.EXCHANGE_SHADOW_INDEX (idx_name => 'items_description' [ partition_name => 'partname' ] );
Actually i had made changes to the definition of lexer PRINT JOINS, so why i need to recreate the index :D ....
i put this scenario, because from application if any user try to upload the document, while we are upgrading the database (i.e connect to application ) in working hours.
You could use:
ALTER INDEX your_index REBUILD ONLINE PARAMETERS ('REPLACE LEXER your_lexer');
Thanx Barbara Boehmer & Roger Ford