Titan |
17.09.04, 15:12 |
|
Синхронизация (обновление) индекса Oracle Text |
|
Здраствуйте... Очевидно, что после добавления писем в базу, нужно обновлять поисковый индекс, чтобы новые документы были в него включены... Вопрос: Подскажите, как это лучше сделать, когда в день количество добавляемых писем может достигать 3000 ?
Спасибо.... |
|
|
Titan |
05.10.04, 15:45 |
|
проблема с sync_index в Oracle Text |
|
Здравсвуйте.
Я уже стал постоянным вашим клиентом на форуме. Не смотря на то, что интернет большой , квалифицированный ответ по Oracle Text похоже можно получить только у вас. У меня такая проблема: Создан пользователь, создан индекс context. Чтобы обновлять индекс я создаю задание с помощью DBMS_JOB, которое должно запускать процедуру ctx_ddl.sync_index.
когда я выплняю запуск задания командой DBMS_JOB.RUN(41); (41 - номер) , то в alert....log пишется след ошибка: ORA-12012: ошибка при автоисполнении задания 41 ORA-20000: Ошибка Oracle Text: DRG-10502: индекс SEARCHEMAILS не существует ORA-06512: на "CTXSYS.DRUE", line 157 ORA-06512: на "CTXSYS.CTX_DDL", line 1328 ORA-06512: на line 1
хотя индекс для данного пользователя существует... Прошу помочь в сложившейся ситуации, так как ничего не получается.
Спасибо. |
|
|
A.Dmitrovsky |
05.10.04, 15:59 |
|
re: проблема с sync_index в Oracle Text |
|
Добрый день!
Проверьте, из-под какого пользователя работает job. Желательно, чтобы это был ВЛАДЕЛЕЦ индекса. В любом случае, рекомендуется квалифицировать имя индекса именем владельца: owner.index_name
|
|
|
Titan |
05.10.04, 16:20 |
|
re: re: проблема с sync_index в Oracle Text |
|
Хм... получаю довольно странное сообщение:
ORA-12012: ошибка при автоисполнении задания 43 ORA-20000: Ошибка Oracle Text: DRG-10017: Вы должны быть CTXSYS or BASE_USER чтбы выполнить это: SYNC ORA-06512: на "CTXSYS.DRUE", line 157 ORA-06512: на "CTXSYS.CTX_DDL", line 1328 ORA-06512: на line 1
В то время как все делается из под пользователя BASE_USER... :-( |
|
|
A.Dmitrovsky |
05.10.04, 16:40 |
|
re: re: re: проблема с sync_index в Oracle Text |
|
Какой текст job'а? |
|
|
Titan |
05.10.04, 17:01 |
|
re: re: re: re: проблема с sync_index в Oracle Text |
|
Job создаю след. образом: set serveroutput on declare job number; begin dbms_job.submit job, 'ctx_ddl.sync_index(''base_user.searchemails'');',SYSDATE,'sysdate + 1/768'); commit; dbms_output.put_line('job '||job||' has been submitted.'); end;
и потом
exec DBMS_JOB.RUN(43); в скобках номер job-а |
|
|
A.Dmitrovsky |
05.10.04, 17:05 |
|
re: re: re: re: re: проблема с sync_index в Oracle Text |
|
Что даёт: connect base_user
select log_user,priv_user,schema_user from user_jobs where job=43; |
|
|
Titan |
05.10.04, 17:20 |
|
re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
select log_user,priv_user,schema_user from user_jobs where job=43;
возвращает:
LOG_USER PRIV_USER SCHEMA_USER ---------------------------------- BASE_USER BASE_USER BASE_USER
|
|
|
A.Dmitrovsky |
05.10.04, 17:46 |
|
re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
Рекомендую дать явный grant на execute on ctx_ddl от ctxsys to base_user |
|
|
Titan |
05.10.04, 17:59 |
|
re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
это я уже делал... никакого толку... Как то мрачно все это. Так все хорошо шло с Oracle Text и тут такая ерунда, хотя в самом Оракле в примере именно так и написано в drjobdml.sql ... не приятный факт... Как теперь индекс поддерживать не понятно :-( |
|
|
A.Dmitrovsky |
05.10.04, 18:02 |
|
re: re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
Ещё один вариант - "обернуть" sync_index в процедуру и уже её вызывать из job'а.
|
|
|
Titan |
05.10.04, 18:12 |
|
re: re: re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
Пожалуй я так и попробую сделать, но мне кажется , что эффект будет тот же. Знаете, я вот только что законектился как CTXSYS и все эти операции проделал под ним . Все те же ошибки... Главное, что в списке индексов индекс присутствует, а он говорит, что его нет. Мне кажется , что тут с какими то правами не все в порядке... |
|
|
A.Dmitrovsky |
05.10.04, 18:20 |
|
re: re: re: re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
До сих пор с подобного рода проблемами не сталкивались - любой, имеющий роль CTXAPP, sync выполняет. Кстати, непосредственно (не из job'а) sync проходит? |
|
|
Titan |
05.10.04, 18:42 |
|
re: re: re: re: re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
да... если просто запустить sync , то выполняется без проблем... |
|
|
Titan |
06.10.04, 14:48 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: проблема с sync_index в Oracle Text |
|
Все заработало !!! Просто супер..Столько мучений и все наконец работает.. Хочу сказать Вам большое спасибо. Ваши рекомендации позволили успешно все завершить.
|
|
|