Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Не работает Listener?


Автор: Dimich 5.4.2005, 14:49
История по установке Oracle 10g продолжается.......

Итак, Oracle установлен, база создана, подключиться к ней можно:

> export ORACLE_SID=BRNGKX
> sqlplus system/manager

Все ок!

Но, если делать так:

> sqlplus system/manager@brn

получаем:

ERROR:
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor

Вот listener.ora:
Цитата
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/BRNGKX)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )
    )
  )

и tnsnames.ora:
Цитата
BRN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = BRNGKX)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

sqlnet.ora:
Цитата
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

Server parameter file (spfileBRNGKX.ora):
Цитата
*.compatible='10.1.0.2.0'
*.control_files='/u01/oradata/BRNGKX/control01.ctl','/u01/oradata/BRNGKX/control
*.core_dump_dest='/u01/app/oracle/admin/BRNGKX/cdump'
*.db_block_size=8192
*.db_cache_size=25165824
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='BRNGKX'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=BRNGKX)'
*.java_pool_size=50331648
*.job_queue_processes=10
*.large_pool_size=8388608
*.open_cursors=300
*.pga_aggregate_target=25165824
*.processes=250
*.remote_login_passwordfile='EXCLUSIVE'
*.os_authent_prefix=""
*.shared_pool_size=99614720
*.sort_area_size=65536
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/BRNGKX/udump'


Причем в логах пишется так (sqlnet.log):
Цитата
***********************************************************************
Fatal NI connect error 12505, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=BRNGKX)(CID=(PROGRAM=)(HOST=linux)(USER=oracle))))

  VERSION INFORMATION:
        TNS for Linux: Version 10.1.0.2.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 10.1.0.2.0 - Production
  Time: 05-APR-2005 19:01:25
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12564
    TNS-12564: TNS:connection refused
    ns secondary err code: 0
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0


Причем, в логе написано: HOST=linux. Откудова взялось? Ведь написано везде: HOST=localhost
А linux в принципе есть не 127.0.0.1 а другой интерфейс - 192.168.1.3, принадлежащий этому серверу. Хотя и через него должно коннектиться, но я уже и не знаю что думать...........

Автор: LSD 5.4.2005, 20:32
А если попробовать вместо localhost указать 127.0.0.1? И что говорит TNSPING.

Автор: bursa 6.4.2005, 14:33
А что написано в winnt\SYSTEM32\DRIVERS\ETC\HOSTS ?

2 ВАРИАНТ (НА ВСЯКИЙ СЛУЧАЙ ПОПРОБУЙ, МОЖ КАКИЕ ТРАБЛЫ С 10)
Код

BRNGKX =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = BRNGKX)
    )
  )

sqlplus system/manager@brngkx





Автор: LSD 6.4.2005, 19:33
Цитата(bursa @ 6.4.2005, 14:33)
А что написано в winnt\SYSTEM32\DRIVERS\ETC\HOSTS ?

Ничего т.к. система стоит на SuSe.

Автор: Dimich 13.4.2005, 09:52
Все заработало, но как то даже прикольно, потому что я и не понял в чем дело.
Ладно, все по-порядку.....
Цитата(LSD @ 5.4.2005, 20:32)
А если попробовать вместо localhost указать 127.0.0.1? И что говорит TNSPING.

пробовал и 127.0.0.1 и localhost и linux и 192.168.1.3 все одно и то же...
Цитата
oracle@linux:~> tnsping BRN

Used parameter files:
/u01/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = linux)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BRNGKX)))
OK (0 msec)


Вот так говорило, но не работало.

З.Ы. Пути возможно привожу уже другие, т.к. всю эту неделю токма и занимаюсь переустановками ОС и Оракла для тестирования и оптимизации.

Тогда я стал рассматривать /etc/hosts и изменил строки
127.0.0.1 localhost
192.168.1.3 linux
на
127.0.0.1 localhost linux
192.168.1.3 linux

и тут меня удивило, что это сработало! А удивило потому, что Listener случает на всех интерфейсах и ему то по сути дела без разницы в моем случае что там то ли localhost то ли linux
Цитата
oracle@linux:~> netstat -tln|grep 1521
tcp        0      0 0.0.0.0:1521            0.0.0.0:*              LISTEN

Я так и не понял в чем дело, но после повторной установки системы и оракла (т.к. перекраивал RAID) ничего подобного не возникло.
Большое Вам спасибо, за внимание!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)