SCAN listener IP в качестве fake имени в Fusion Middleware

В документации Oracle по настройке механизмов SCAN Listener и устранению неполадок при работе с ним несколько раз упоминается: не используйте разрешение имен в IP-адреса через файл /etc/hosts. В полной мере многогранность этой проблемы осознаешь, когда пытаешься использовать fake-имена в продуктах Fusion Middleware. Практическая значимость этого действия тривиальна: клонирование production-сред в тестовые/разработческие среды либо какие-то срочные работы по замене оборудования. Проблема здесь в том, что:

  • Имя сервера жестко прописано в конфигах. Это могут быть как xml и cfg файлы на диске, так и специальные таблицы конфигураций в БД;
  • Настройка среды с “нуля” – процесс длительный и трудоемкий. А сами среды могут состоять из нескольких машин и продуктов (это же Fusion Middleware);
  • Имена серверов сами по себе ценности не представляют, они нужны главным образом для разрешения их в IP-адреса и обратно.

В нашем случае целью было поместить БД конфигураций Hyperion Planning в существующем Oracle RAC кластере из соображений fault tolerance и лучшей утилизации ресурсов. Проблема здесь одна: имя сервера БД прописано явно во множестве конфигурационных файлов, таблиц с настройками и т.д. Последний раз, когда я менял номер порта listener в связи с переездом Oracle на другую машину, делать это пришлось в 17 источниках, а последствия этого разгребали в течение 2-х недель. Гораздо проще имя сервера Oracle оставить как есть, прописав в /etc/hosts для этого имени “правильный” IP-адрес. 🙂 Тем более, что такая замена может потребоваться еще не раз в будущем: при миграции в другой ДЦ, клонировании сред и т.д.

Что можно почитать про использование SCAN-адресов:

  • Документацию по динамической регистрации экземпляров http://docs.oracle.com/cd/E11882_01/network.112/e10836/listenercfg.htm#NETAG1154
  • Объяснение основных принципов работы 11gR2 Grid Infrastructure Single Client Access Name (SCAN) Explained [ID 887522.1]
  • Основные механизмы решения проблем How to Troubleshoot Connectivity Issue with 11gR2 SCAN Name [ID 975457.1]
  • Типичные причины ошибок ORA-12545 or ORA-12537 While Connecting to RAC through SCAN name [ID 970619.1]
  • Описание тонкостей поведения в открытых bug-ах Bug 9150053 : ORA-12545 REPORTED WHILE CONNECTING TO 11.2 SCAN ON CLIENT

Ниже приведен мой список мест, где все может сломаться и куда нужно посмотреть при использовании SCAN-Listener в качестве fake-имени:

  1. Все машины, с которых осуществляется доступ, должны правильно разрешать fake имя в IP-адрес SCAN listener
  2. Все машины, на которых может быть запущен SCAN listener, должны разрешать fake имя в IP-адрес SCAN listener. Я не знаю, зачем это нужно 🙂
  3. Экземпляры и сервисы должны быть зарегистрированы в SCAN listener и соответствующих local listener. Проверить можно командой lsnrctl. Не забываем только, что все listener запускаются из grid home.
  4. Имена, с которыми экземпляры зарегистрировались, должны корректно разрешаться на всех машинах кластера и всех машинах, с которых осуществляется доступ.

К сожалению, удобного инструментария для определения, на каком из этапов все сломалось, нет, так что в случае проблем приходится проверять их все.

Advertisements
SCAN listener IP в качестве fake имени в Fusion Middleware