Невозможно подключиться к Oracle 12c с клиентского компьютера

Я потратил 3 дня, пытаясь выяснить, почему я не могу подключиться к своей базе данных Oracle 12 с клиентского компьютера. Я прочитал много статей и гуглил вокруг, но пока не смог найти решение. Я перепробовал все возможное и уже знаю. Поэтому я надеюсь, что кто-то, возможно, сможет указать мне правильное направление.

Вот некоторые детали:

  1. Win7 x64 с установленным Oracle 12c.
  2. Windows Server 2012 R2 (клиент, да, эта установка не идеальна. Объясню почему позже).
  3. Windows Server 2012 R2 (контроллер домена)
  4. Все машины являются виртуальными машинами и являются частью домена.
  5. Все виртуальные машины работают под управлением ESXI 6.0

Я могу сделать следующее без каких-либо проблем:

  1. Вход на сервер оракула.

    ORCL - мой оракул (глобальный идентификатор базы данных).

    6.1 запустить tnsping orcl

    6.2 статус lsnrctl (запущен и работает)

    6.3 Остановите и перезапустите службу списков из оснастки Windows Services.

    6.4 sqlplus system/xyz@orcl

     Connects w/o any problems.
    

    6.5 Oracle SQL Developer может подключиться к ORCL

    6.6 может пинговать клиентскую машину.

Однако я не могу сделать следующее:

  1. Вход в клиентскую машину

    7.1 скопировал tnsnames.ora с сервера oracle на этот клиентский компьютер и поместил в [ORACLE_HOME]\network\admin, где это должно быть. заменил "localhost" на IP оракула сервера.

    7.2 Использование sqlplus system/xyz@orcl или Oracle SQL Developer для подключения

     I get TNS: no listener found.
    

    7.3 может пинговать сервер оракула.

    7.4 tnsping orcl (не удалось)

    7.4 уже отключил все брандмауэры (доменные, частные и публичные) на сервере оракула. Там не должно быть никаких проблем с брандмауэрами или портами.

Что бы я ни делал, я просто не могу подключиться с клиентского компьютера. Может кто-нибудь сказать мне, что я делаю не так? Как примечание, я не смог установить Oracle 12c на Win2012R2. Поэтому я установил на Win7x64. Но в конечном итоге все виртуальные машины будут работать на Windows Server 2012R2. Эта установка - моя домашняя лаборатория.

Спасибо!

1 ответ

заменил "localhost" на IP оракула сервера

Похоже, что слушатель слушает только на локальном хосте (127.0.0.1); Вы можете подтвердить это с lsnrctl statusили с netstat -an | find "1521" (или ваш фактический номер порта, если вы не используете по умолчанию).

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

Вы должны изменить свой listener.ora либо слушать локальный хост и IP-адрес сервера, либо прослушивать только внешний адрес. Но у последнего есть побочные эффекты - ваши существующие связи и tnsnames.ora Записи должны будут измениться, чтобы ссылаться на этот адрес (или, даже если он статический, DNS-имя, которое разрешается по этому адресу), и ваша база данных может потребоваться изменить, чтобы она знала адрес слушателя для регистрации через, через LOCAL_LISTENER параметр инициализации. После изменения listener.ora вам нужно будет отослать слушателя, а затем вы можете проверить netstat снова.

Другие вопросы по тегам