База данных Oracle 10.2.0.4 с логическим резервом в Windows 2000. Недавно на производственном экземпляре была проведена довольно большая операция удаления. Я испытываю трудности с логическим резервным сервером, так как он получает пару сотен (размером 58M) архивных журналов для операции, а процесс применения завершается с ошибкой из-за нехватки памяти. К сожалению, каждый раз, когда он терпит неудачу, он должен перезапускать приложение с начала транзакции. Каждый раз это занимает пару дней. В любом случае, пытаясь решить эту проблему, я заметил, что каждый архивный журнал из производственной системы генерирует 5 или 6 переключателей журнала в режиме ожидания. Не понимаю, почему так должно быть. У кого-нибудь есть идеи?
Связанный с этим вопрос, на который я не нашел ответа: кто-нибудь знает, должен ли логический резервный сервер работать в режиме архивного журнала? Мне действительно не нужно вести журналы.
Одинаковы ли настройки параметров вашей памяти на основном и резервном? Очевидно, что ваш основной сервер может успешно завершить большую транзакцию, мне интересно, есть ли какие-либо различия в параметрах, которые могут вызвать эту проблему на стороне ожидания.
Я бы не стал запускать резервную базу данных в режиме архивации. Я бы сначала выключил это, а затем попробовал посмотреть, что произойдет. Что касается ошибки нехватки памяти: я предполагаю, что вы получаете ошибку «ORA-04030». Если нет, то укажите здесь номер ошибки. Если да, то взгляните на следующее на сайте оракула "Моя поддержка". MS-Windows: быстрые действия по устранению ошибок ORA-04030 на 10G [ID 762031.1]
Я так и не получил объяснений от Oracle по этому поводу. В конце концов, я не мог больше ждать и просто воссоздал резервную копию, обойдя проблему. С тех пор я не видел проблемы, но и с подобной ситуацией тоже не сталкивался.
Как я указал в своем комментарии к @Claran, есть вопрос на asktom.com при этом он заявляет как часть своего ответа, что резервный должен работать в режиме архивации. Вот и все.
Спасибо Дэвиду и Кларан за их ответы, +1 каждому за их усилия.
Обновление (24.12.2009):
Похоже, есть исправление утечки памяти в процессе SQL Apply. Это в патче CPUJul2009. Мне нужно окно для обновления, так что это займет некоторое время. Проблема повторилась снова на прошлой неделе. Похоже, это связано с тем, что процесс майнера журналов хранит всю транзакцию в памяти, пока не увидит фиксацию. Для меня это рецепт неудачи!
Режим архивного журнала является обязательным для резервных баз данных - поверьте мне, я использую несколько таких логических резервных баз данных. Вам необходимо увеличить количество SGA, доступного для применения логического повтора, или, если таблица не важна, вы можете исключить ее из режима ожидания. Самый простой способ сделать это - использовать Enterprise Manager.