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