2015-11-19 7 views
0

Когда я хочу подключиться к моей базе данных в SQLDeveloper, я получаю сообщение об ошибке прослушивания TNS. Когда я останавливаю OracleOraClient11g_home1_32bitTNSListener в своих Сервисах и повторю попытку подключения, он работает нормально. Затем запускается OracleXETnsListener. Как я могу избежать остановки одного слушателя, который может запустить другой?Два прослушивателя Oracle TNS

У меня есть два файла listener.ora, где настроен порт 1521. Поэтому я предполагаю, что это связано с портами?

two tns listener

enter image description here

+0

Да; но почему вы хотите запустить двух слушателей? Какая у вас ошибка? –

+0

см. Обновление. Когда я завершаю запуск oracleClient11g TNS Listener, он работает. затем выполняется прослушиватель XETNS –

ответ

2

В любой операционной системе, вы не можете иметь 2 процессов прослушивания на том же порту (в данном случае 1521) на одной и той же сети inteface (я буду считать, у вас есть только 1 сетевой интерфейс). В противном случае, как бы операционная система узнала, к какому процессу подключается порт?

Как сказал Алекс, вам не нужно запускать несколько слушателей. Отключите одну из служб и отредактируйте listener.ora, которая указывает на правильный сервис - по умолчанию это находится в каталоге oracle_home/network/admin, но если вы изменили значение переменной TNS_ADMIN в системе, оно будет там. Вы можете добавить другого слушателя для SID/Service Name, если хотите, но в случае Windows он автоматически подберет все экземпляры, запущенные в системе.

На всякий случай вы действительно хотите запустить 2 прослушивателя (вам нужно было бы это сделать, только если у вас есть очень старая версия RDBMS), вы можете отредактировать один из файлов listener.ora и изменить порт, чтобы сказать 1522. пример приведен ниже:

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

вы измените tnsnames.ora для подключения, чтобы указать на этот порт, как это:

SCN = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = SCN) 
    ) 
) 

Или с SQLDeveloper вы можете изменить порт непосредственно на IDE с опцией TNS direct, если это так, как вы ее настроили.