Невозможно подключиться к Oracle 12c с клиентского компьютера
Я потратил 3 дня, пытаясь выяснить, почему я не могу подключиться к своей базе данных Oracle 12 с клиентского компьютера. Я прочитал много статей и гуглил вокруг, но пока не смог найти решение. Я перепробовал все возможное и уже знаю. Поэтому я надеюсь, что кто-то, возможно, сможет указать мне правильное направление.
Вот некоторые детали:
- Win7 x64 с установленным Oracle 12c.
- Windows Server 2012 R2 (клиент, да, эта установка не идеальна. Объясню почему позже).
- Windows Server 2012 R2 (контроллер домена)
- Все машины являются виртуальными машинами и являются частью домена.
- Все виртуальные машины работают под управлением ESXI 6.0
Я могу сделать следующее без каких-либо проблем:
Вход на сервер оракула.
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 может пинговать клиентскую машину.
Однако я не могу сделать следующее:
Вход в клиентскую машину
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
снова.