We have a RAC environment. We have granted the following:
1. execute to public on DBMS_DEBUG
2. alter any Procedure
3. create any Procedure
But we are still receiving an error when connecting to a specific RAC instance:
"ORA-12154: tns: could not resolve service name."
And then:
"Cannot connect debug session. In order to debug when connected to a RAC instance you must have entries for the Individual RAC instances in your tnsnames.ora file or connect directly to an individual RAC instance."
Sample tns entries:
open.ttn.com =
(DESCRIPTION =
(LOAD_BALANCE = yes)
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1234.ttn.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1235.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = open.ttn.com)))
open1,open1.ttn.com=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1234.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SID = open1)))
open2,open2.ttn.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1235.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SID = open2)))
Alias lists are only handled on LDAP or Oracle name servers set-ups. With the use of alias lists "rptd1,rptd1.cnf.com =" in the tnsnames entries, it will not register correctly.
Separate the aliases to be handled correctly for tnsnames login.
Problematic --
open1,open1.ttn.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1234.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SID = open1)))
Fixed --
open1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1234.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SID = open1)))
open1.ttn.com =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abcd1234.ttn.com)(PORT = 1521))
(CONNECT_DATA = (SID = open1)))
The instances should be in this kind of format:
Example:
<instance name1> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.10.185)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORADEV)
(INSTANCE_NAME = <instance name1>)
)
)
<instance name2> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.10.184)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORADEV)
(INSTANCE_NAME = <instance name2>)
)
)