我有一个ORACLE RAC环境访问。详细信息是
数据库名称:orcl 服务名称:orcl IP地址:192.168.1.1和192.168.1.2
SQL> host srvctl status database -d orcl
Instance orcl1 is running on node orclnode1
Instance orcl2 is running on node orclnode2
我关心的是我的联系,正在使用
建立(DESCRIPTION=(ADDRESS=
(PROTOCOL=TCP)(HOST=192.168.1.1) (PORT=1521)
)(CONNECT_DATA=(SID=orcl1)))
但提供商希望通过orcl服务名称进行连接。
我没有任何与此相关的其他信息。我是否正确连接,或者我需要orcl服务名称的主机名或IP地址。
答案 0 :(得分:6)
您的连接字符串在一个服务器/节点上引用一个实例。您应该使用公共服务名称,并识别它可用的所有服务器。
你的等价物将是这样的(换行只是为了清晰起见):
(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))
)(CONNECT_DATA=(SERVICE_NAME=orcl)))
只要它是可解析的,无论您使用DNS名称还是HOST
参数的IP地址都无关紧要。
您可能还需要LOAD_BALANCE
或FAILOVER
个参数;见the docs。