我不确定我想做的事情是否可行,所以我在这里寻求指导。
我的目标是在LDAP 中设置网络服务名称,以便使用DESCRIPTION_LIST
实现2个目的。它也是DataGuard配置的一部分:
DESCRIPTION
将使用“虚拟”服务名称,该服务只能在ADDRESS_LIST
中列出的其中一个服务器中运行,客户端将能够通过以下方式连接到网络服务名称这种方法的方式。DESCRIPTION
将用于直接与服务联系第一个是针对客户端,它将允许客户端连接到哪个数据库是当前主数据库,因为该特定服务将仅在主服务器所在的服务器上运行。
第二个是允许存档日志传送的通信。
以下是我的尝试:
apple=
(DESCRIPTION_LIST=
(DESCRIPTION=
(FAILOVER=on)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=prim)(PORT=15940))
(ADDRESS=(PROTOCOL=TCP)(HOST=sb)(PORT=15940)))
(CONNECT_DATA=
(SERVICE_NAME=virtual_apple)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=basic))))
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=prim)(PORT=15940))
(CONNECT_DATA=
(SERVICE_NAME=apple)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=basic)))))
我的想法是,当客户端尝试通过sqlplus user/pw@apple
进行连接时,连接将首先转到prim
并检查virtual apple
,如果该服务不存在,则会尝试下一个地址sb
。然后第二个DESCRIPTION
将允许DataGuard用于运送存档日志的更有意义的途径。
我让它在各方面工作了一段时间,但事情变得混乱,它打破了我,我想知道是否可能还有一些其他参数我需要定义以防止连接混淆。我想做多少?
答案 0 :(得分:0)
这是正确的方法,您只需在数据库中使用 dbms_service.create_service 创建服务名称,并使用静态数据库注册在侦听器中注册它。