В любой операционной системе, вы не можете иметь 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, если это так, как вы ее настроили.
Да; но почему вы хотите запустить двух слушателей? Какая у вас ошибка? –
см. Обновление. Когда я завершаю запуск oracleClient11g TNS Listener, он работает. затем выполняется прослушиватель XETNS –