ORA-12514 после восстановления сервера из моментального снимка

У нас есть ряд серверов Amazon Web Services с Amazon Linux и Oracle XE, которые используются локальным приложением. OracleXE устанавливается и работает нормально, наше приложение может подключаться к БД, все отлично.

Для одного из наших конкретных серверов нам нужно было отключить его и заархивировать. Сегодня мне нужно перевести его в онлайн. Это делается путем настройки нового экземпляра AWS, создания нового виртуального жесткого диска из резервной копии, настройки нового общедоступного IP-адреса для сервера и изменения настроек DNS таким образом, чтобы старый домен указывал на новый IP-адрес, подключения восстановленного виртуального диск в качестве основного диска и запустить его.

OracleXE не хочет работать. Использование sqlplus для подключения к localhost: 1521/XE приводит к «ORA-12514: TNS: прослушиватель в настоящее время не знает о службе, запрошенной в дескрипторе подключения».

Эта система работала просто отлично, когда я сделал снимок и заархивировал ее в первый раз, и я не менял никаких настроек с момента ее восстановления. Все должно быть точно так же, так почему сейчас не работает OracleXE?

В listener.ora и tnsnames.ora хост был определен с использованием общедоступного доменного имени сервера. Я попытался изменить это на localhost, но это все еще не работает.

Единственное, что, как мне кажется, будет отличаться, - это общедоступный IP-адрес сервера и «отпечаток ключа rsa2» (на что Putty жалуется из-за того, что ключ SSH тот же, но это новый экземпляр AWS). Все советы, которые я видел до сих пор, касались исправления ошибок конфигурации для ORA-12514 при настройке новой системы или после перезапуска, но это система, которая работала нормально, но была восстановлена ​​из моментального снимка.


person Len    schedule 16.02.2015    source источник


Ответы (1)


Скорее всего, ваш слушатель использует динамическую регистрацию экземпляров.

Чтобы это работало, ваш прослушиватель должен прослушивать порт по умолчанию (1521) или ваш экземпляр должен использовать локальный параметр прослушивателя, который определяет адрес прослушивателя, где экземпляр должен зарегистрировать свое существование.

Итак, проверьте свой параметр local_listener, проверьте серверы tnsnames.ora и listener.ora. Также проверьте ваши клиенты tnsnames.ora, он должен указывать на ваш новый сервер и прослушиватель.

person ik_zelf    schedule 16.02.2015
comment
БД и слушатель находятся в одной системе. Я не знал, что у базы данных есть собственные настройки, определяющие, как она связывается со слушателем. Поиск в Google local_listener обнаружил следующую информацию: Значение по умолчанию: (АДРЕС = (ПРОТОКОЛ=TCP)(HOST=hostname)›(PORT=1521)) где hostname — это сетевое имя локального хоста. Проблема была просто в том, что я не разрешил новый общедоступный IP-адрес сервера через его собственный брандмауэр и не знал, что он пытается использовать общедоступный IP-адрес. - person Len; 17.02.2015