TNS-12541: TNS: нет слушателя

Я новичок в oracle dba, поэтому мне нужна помощь, которая могла бы прийти мне в голову. Я установил свою базу данных oracle 11gr2 на виртуальную машину с ОС OEL 5.7 и хочу подключить эту удаленную базу данных с toad32bit. Итак, я перешел по некоторым полезным ссылкам, загрузил и установил win32_11gR2_client на ОС Windows 7 64bit. Кроме того, изо всех сил стараюсь следовать инструкциям, мой клиент не может подключиться к моей удаленной базе данных оракула. ​​На стороне клиента, работающем с cmd для tnsping sidname, всегда нет прослушивателя tns с ошибкой, как я упоминал выше

краткое описание МАШИНЫ LINUX:

listener.ora

LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  (ADDRESS = (PROTOCOL = TCP)(HOST = testhost.testdomain.com)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle

tnsnames.ora

ORCL =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = testhost.testdomain.com)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = orcl.testdomain.com)
  )
 )

sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /u01/app/oracle

прослушиватель состояния lsnrctl

Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                03-FEB-2014 15:08:43
Uptime                    0 days 1 hr. 32 min. 59 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/testhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=testhost.testdomain.com)(PORT=1521)))
Services Summary...
Service "orcl.testdomain.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.testdomain.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

прослушиватель службы lsnrctl

 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
 Services Summary...
 Service "orcl.testdomain.com" has 1 instance(s).
 Instance "orcl", status READY, has 1 handler(s) for this service...
 Handler(s):
 "DEDICATED" established:0 refused:0 state:ready
 LOCAL SERVER
 Service "orclXDB.testdomain.com" has 1 instance(s).
 Instance "orcl", status READY, has 1 handler(s) for this service...
 Handler(s):
 "D000" established:0 refused:0 current:0 max:1022 state:ready
 DISPATCHER <machine: testhost.testdomain.com, pid: 5349>
 (ADDRESS=(PROTOCOL=tcp)(HOST=testhost.testdomain.com)(PORT=13094))
 The command completed successfully

WINDOWS 7 ОПИСАНИЕ КЛИЕНТА C: \ oracle \ product \ 11.2.0 \ client_1 \ network \ admin ENV TNS_ADMIN = C: \ oracle \ product \ 11.2.0 \ client_1 \ network \ admin

ПРИМЕЧАНИЕ. В СЛУЖБАХ WINDOWS НЕТ НИКАКИХ СВЯЗАННЫХ С ORACLE УСЛУГ (СРЕДСТВО НЕТ).

мой клиент tnsnames.ora

ORCL =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = testhost.testdomain.com)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = orcl.testdomain.com)
   )
  )

C: \ Users \ farhan> tnsping orcl (и результат)

Used parameter files:
C:\oracle\product\11.2.0\client_1\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias 
Attempting to contact (DESCRIPTION = (ADDTESS_LIST = (ADDRESS - (PROTOCOL = TCP (HOST = 
testhost.testdomain.com)(PORT = 1521))) (CONNECT_DATA= (SERVER = DEDICATIED) (SERVICE_NAME
= orcl) (INSCTANCE_NAME = orcl) (GLOBAL_NAME = orcl.testdomain.com)(RDB_DATABSE =   orcl)) (TYPE_OF_SERVICE = dedicaated))
TNS-12541 : TNS:no listener

cat / etc / hosts (результат)

      # Do not remove the following line, or various programs
      # that require network functionality will fail.
      #127.0.0.1              testhost.testdomain.com testhost localhost.localdomain localhost
      127.0.0.1               localhost.localdomain localhost
      #10.10.1.114             testhost.testdomain.com testhost
      192.168.0.103   testhost.testdomain.com testhost
      ::1             localhost6.localdomain6 localhost6

для дальнейших инструкций, которые я попросил опубликовать

# netstat -an | grep 1521 | grep tcp | grep LISTEN
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      
[root@testhost ~]# grep testhost /etc/hosts
#127.0.0.1              testhost.testdomain.com testhost localhost.localdomain localhost
#10.10.1.114             testhost.testdomain.com testhost
192.168.0.103   testhost.testdomain.com testhost
[root@testhost ~]# dig +short testhost.testdomain.com
174.137.125.92

person user3135152    schedule 03.02.2014    source источник
comment
извините, я редактирую свой пост в соответствии с вашими инструкциями. кроме того, в netstat ожидаемый IP-адрес с номером порта 1521 не прослушивается. и извините за мои скучные знания о том, что вы спросили о И действительно ли testhost.testdomain.com разрешает один и тот же IP-адрес с обеих машин? Кроме того, обе мои машины легко доступны, если выполнить пинг обеих машин.   -  person user3135152    schedule 03.02.2014
comment
спасибо за ответ Алекс. Здесь нечего скрывать, потому что я всего лишь студент и учусь. Предписанные имена хоста / домена являются настоящими. И да, пингуя testhost.testdomain.com, оба доступны. Что касается того, что я имел в виду под netstat, оттуда я не мог видеть ни одного IP-адреса машины linux (192.168.xx.xxxx), который, как я думаю, должен быть указан там вместе с номером порта 1521, который должен находиться в открытом состоянии на интерфейсе netstat cmd но (это то, что я предполагаю, глядя на результаты оттуда, поэтому я могу ошибаться).   -  person user3135152    schedule 03.02.2014
comment
указанная выше команда, которую вы запросили, возвращает тот же IP-адрес, что и для ifconfig. Да, виртуальная машина работает на моем ноутбуке. Я очень рад, Алекс, что ты рассматриваешь мою проблему здесь. Еще раз спасибо   -  person user3135152    schedule 03.02.2014
comment
окна должны прослушивать linux ip 192.168.0.103 (как уже упоминалось). IP-адрес Windows 192.168.0.102   -  person user3135152    schedule 04.02.2014
comment
Похоже, что на самом деле это не имеет ничего общего с Oracle или разработкой, это похоже на проблему с вашим Windows-устройством, говорящим с виртуальной машиной. Я предлагаю вам спросить об этом в Server Fault и начать с настройки виртуальной машины / Windows, включая программное обеспечение, которое вы используете, адреса и т. Д. Я не думаю, что потребуются все детали, специфичные для Oracle; может быть, сначала попробуйте запустить telnet или ssh или что-то более стандартное.   -  person Alex Poole    schedule 04.02.2014
comment
Алекс, ты нашел какую-нибудь подсказку :(. Я обновил свой vmware9 до vmware10, но мой клиент все еще не может подключиться к моему серверу   -  person user3135152    schedule 07.02.2014
comment
Я недостаточно знаю о VMWare и о том, как хост и виртуальные машины обмениваются данными или как должны быть настроены сетевые параметры. Это неподходящий для этого сайт; вам нужно спросить об сбое сервера, как я уже сказал. Но сначала получите более простую услугу, если вы вообще не можете подключиться. Если вы расскажете об Oracle, они могут упустить суть и не заинтересуются. Посмотрите, работает ли telnet / ssh сейчас, и не просит ли он о помощи, чтобы заставить их работать. Как только они появятся, попробуйте заставить Oracle работать.   -  person Alex Poole    schedule 07.02.2014
comment
На самом деле, я думаю, это было бы не по теме и по научной фантастике; Суперпользователь может быть более подходящим. Однако это не по теме Stack Overflow. Прости...   -  person Alex Poole    schedule 07.02.2014
comment
привет, Алекс, спасибо за руководство. У меня есть свой Linux-сервер на VMworksatation 10 со всеми базовыми конфигурациями на Linux, и я могу подключиться к клиенту (Windows 7) с моей базой данных Oracle 11gR2, установленной на виртуальной машине. То, что я узнал, - это зарегистрировать СЛУШАТЕЛЬ в oracle net manager. Хотя это была второстепенная, но очень важная работа по регистрации слушателя.   -  person user3135152    schedule 11.02.2014
comment
Хорошо, если другое соединение уже работало и это решило проблему, специфичную для Oracle, тогда, возможно, вам следует добавить именно то, что вы должны были сделать, в качестве ответа. В противном случае этот вопрос вряд ли поможет кому-либо еще, и его также можно удалить. (Это все еще не по теме, но ...)   -  person Alex Poole    schedule 11.02.2014


Ответы (3)


После поиска много получил простой способ решить эту проблему. Просто следуйте инструкциям: -

  1. Проверить статус вашего слушателя

  2. откройте командную строку и введите lsnrctl status

  3. У вас не будет слушателя.

  4. Итак, теперь откройте файл listener.ora, который находится в следующем каталоге C: \ oraclexe \ app \ oracle \ product \ 11.2.0 \ server \ network \ ADMIN.

  5. Откройте этот файл и измените параметр хоста на имя вашего компьютера. Ii} Вы можете получить имя компьютера, щелкнув правой кнопкой мыши на «Мой компьютер» и проверив имя вашего компьютера, и заменив параметр хоста на имя вашего компьютера, как показано ниже.

СЛУШАТЕЛЬ = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP) (HOST = Electron-PC) (PORT = 1521))))

Здесь вы можете увидеть HOST = Electron-P, это имя моего компьютера.

  1. Сохраните файл listener.ora и снова вернитесь в cammand propt
  2. Введите в командной строке lsnrctl start

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

Просто так много, и вы снова готовы работать над Oracle. Удачи.

person Mrinmoy    schedule 19.01.2016

У меня такая же проблема. Следующее сработало для меня.

  • Удалите все файлы oracle со своего компьютера, если вы его ранее установили. Остановите все его службы, перейдя на services.msc в cmd.

    1. List item
    2. Перезагрузите компьютер.
    3. Установите oracle, если вы еще этого не сделали.

    4. Затем перейдите в cmd

    5. Введите services.msc в cmd 6. Выберите любую службу и введите «O». Это позволит вам получить все службы, начиная с О. 7. Выберите OracleJobScheduerXE из списка. Щелкните правой кнопкой мыши, чтобы перейти к свойствам.
    6. Во вкладке «Общие» перейдите к «Тип запуска». Выделите из него автомат.
    7. Нажмите «Применить», затем нажмите «Пуск», а затем «ОК». 10.Также включите OracleXeClrAgent и запустите свою службу. Таким образом, всего 4 службы будут работать из 5, кроме OracleMTSRecoveryService.
    8. Теперь перейдите к cmd, введите lsnrctl-> enter-> type status, и вы должны увидеть ваш экземпляр.

Подскажите, поможет ли.

person Ash15    schedule 04.02.2017

Однажды у меня была такая же проблема. Я смог подключиться после добавления имени моего компьютера в: /etc/hosts "ip_address computer_name".

всем привет

У меня также такая же проблема, может ли кто-нибудь предложить мне «имя_компьютера», если имя моего компьютера Windows, на котором устанавливается клиент, или имя удаленного сервера, на котором устанавливается база данных.

person Wahid Rezgui    schedule 02.11.2016