RAC环境的Oracle连接字符串?

Nit*_*mar 1 oracle database-administration oracle11g

我有一个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
Run Code Online (Sandbox Code Playgroud)

我关心的是我的联系,正在建立使用

(DESCRIPTION=(ADDRESS=
    (PROTOCOL=TCP)(HOST=192.168.1.1) (PORT=1521)
)(CONNECT_DATA=(SID=orcl1)))
Run Code Online (Sandbox Code Playgroud)

但是提供者希望它通过orcl服务名称连接.

我没有任何其他与此相关的信息.我是否正确连接或者我需要orcl服务名称的主机名或IP地址.

Ale*_*ole 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)))
Run Code Online (Sandbox Code Playgroud)

只要它是可解析的,无论您是使用DNS名称还是IP HOST参数的IP地址都无关紧要.

您可能还需要LOAD_BALANCEFAILOVER参数; 看文档.