Приложение, над которым я работаю, подключается к базе данных, используя имя службы. Ожидаемый формат: <SID>.<domain>
. Однако приложение не может подключиться к базе данных, используя это в качестве имени службы.
На этом сервере запущено 9 баз данных. Я могу подключиться ко всем другим базам данных, используя этот формат для имени службы (через приложение или разработчика SQL). По какой-то причине я могу подключиться к этому, используя только SID в качестве имени службы, но не с доменом.
Как вы можете видеть из состояния прослушивателя tns ниже, он использует только SID для этой базы данных в качестве имени службы. Я также должен сказать, что файлы pfile для обеих баз данных, которые я посмотрел для сравнения, имели одинаковые значения.
listener.ora
<...>
LISTENER_<this sid> =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=<hostname>.<domain>)(PORT=1521)))
SID_LIST_LISTENER_KS=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=<this sid>.<domain>)
(SID_NAME=<this sid>)
(ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1)
)
)
LISTENER_<other sid> =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=<hostname>.<domain>)(PORT=1521)))
SID_LIST_LISTENER_KS=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=<other sid>.<domain>)
(SID_NAME=<other sid>)
(ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1)
)
)
<...>
tnsnames.ora
:
<...>
<this sid> =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>.<domain>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <this sid>.<domain>)))
<other sid> =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>.<domain>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <other sid>.<domain>)))
<...>
Состояние прослушивателя tns:
$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 07-MAR-2019 10:24:48
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 07-MAR-2019 08:46:13
Uptime 0 days 1 hr. 38 min. 35 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/<hostname>/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<hostname>.<domain>)(PORT=1521)))
Services Summary...
<...>
Service "<this sid>" has 1 instance(s).
Instance "<this sid>", status READY, has 1 handler(s) for this service...
Service "<this sid>XDB" has 1 instance(s).
Instance "<this sid>", status READY, has 1 handler(s) for this service...
Service "<other sid>.<domain>" has 1 instance(s).
Instance "<other sid>", status READY, has 1 handler(s) for this service...
Service "<other sid>XDB.<domain>" has 1 instance(s).
Instance "<other sid>", status READY, has 1 handler(s) for this service...
<...>
The command completed successfully
Сообщение об ошибке при использовании <sid>.<domain>
в качестве имени службы:
Status : Failure -Test failed: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor