Oracle Text: обновление во время синхронизации индекса

У меня есть сложный индекс контекста, который синхронизируется каждую ночь. Процесс занимает около 10 минут, и любые обновления этой таблицы, которые касаются столбца индекса в течение периода синхронизации, приводят к исключению ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE - что я могу с этим поделать?


person Toms Mikoss    schedule 10.10.2012    source источник


Ответы (1)


Я не думаю, что вы можете делать что-то еще, пока эта штука синхронизируется. Если обновление индекса неизбежно, вам нужно найти способ поставить запросы в очередь и повторять попытку, скажем, каждые 15 минут, пока они не будут выполнены. Я бы предложил ограничиться 3 попытками, пока он не пройдет или не потерпит неудачу изящно. Я предлагаю 3 раза, потому что, если предполагается, что это займет 10 минут, а это не сработает за 45 минут, я думаю, у вас есть рыба покрупнее. С тем же успехом можно сделать так, чтобы он потерпел неудачу изящно, чем бесконечное повторение на сломанной системе. Надеюсь, у вас не будет так много попыток обращений к базе данных за этот период, что в итоге вы окажетесь в большой очереди. Вы также можете посмотреть, сможете ли вы синхронизировать свое приложение со временем, которое ваши инфра-люди установили для обновления индексов. Чтобы вы блокировали эти транзакции одновременно. Я не знаю, насколько велика ваша организация или какие у нее системы (если вы используете Oracle, у вас достаточно денег для чего-то значительного). Это означает, что у вас могут быть приложения для планирования, которые могут помочь? В любом случае, если администраторы баз данных не перестанут делать эти обновления, я думаю, вам придется подождать, пока они не закончатся.

person Bill Rosmus    schedule 10.10.2012