0

我不确定我想做的事情是否可行,所以我在这里寻求指导。

我的目标是在 LDAP中设置一个网络服务名称,以便使用它来服务于两个目的,DESCRIPTION_LIST它也是 DataGuard 配置的一部分:

  1. DESCRIPTION使用“虚拟”服务名称,该服务将仅在列出的服务器之一中启动,ADDRESS_LIST并且客户端将能够通过此方法连接到网络服务名称。
  2. 另一个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 用于传送归档日志的更深思熟虑的途径。

我让这个在各个方面都工作了一段时间,但后来事情变得混乱并且它打破了我,我想知道是否可能需要定义一些其他参数以防止连接混淆。我想做很多事情吗?

4

1 回答 1

0

这是正确的方法,您只需在数据库中使用dbms_service.create_service创建服务名称, 并使用静态数据库注册在侦听器中注册它。

于 2016-11-03T21:39:24.827 回答