• DG failover TNS description list ,ADG service name 不一样的tnsnames.ora的设置


    EMCCFO=
        (DESCRIPTION_LIST=
          (FAILOVER=true)
          (LOAD_BALANCE=false)
          (DESCRIPTION=
               (ADDRESS= (PROTOCOL=TCP) (HOST= ) (PORT=1521))
               (CONNECT_DATA=
               (SERVICE_NAME=EMCC))
         )
         (DESCRIPTION=
              (ADDRESS= (PROTOCOL=TCP) (HOST= ) (PORT=1521))
              (CONNECT_DATA=
              (SERVICE_NAME=EMCCSTBY))
         )
    )

    The following is a sample TNS connect string designed for an OCI client using DataGuard with Primary SCAN and Standby SCAN hosts.

    SALES=
        (DESCRIPTION_LIST=
          (LOAD_BALANCE=off) (FAILOVER=on)
              (DESCRIPTION= (CONNECT_TIMEOUT=15)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
                 (ADDRESS_LIST= (LOAD_BALANCE=on)
                    (ADDRESS=(PROTOCOL=TCP)(HOST=PRIM_SCAN)(PORT=1521)))
                      (CONNECT_DATA=(SERVICE_NAME=oltpworkload)))
               (DESCRIPTION= (CONNECT_TIMEOUT=15)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)                 
                    (ADDRESS_LIST= (LOAD_BALANCE=on)
                        (ADDRESS=(PROTOCOL=TCP)(HOST= STBY_SCAN)(PORT=1521)))
                             (CONNECT_DATA=(SERVICE_NAME=oltpworkload))))

     

    It is necessary to use the same entry in the tnsnames.ora used by SQL*Plus in the JDBC URL.
    For example:

    The tnsnames.ora entry for the database is:

    ORADB1.WORLD =
       (DESCRIPTION_LIST=
          (DESCRIPTION=
             (ADDRESS_LIST=
                (ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=)))
          (DESCRIPTION =
             (ADDRESS_LIST =
                (ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=))))


    Then, the JDBC URL should be set like this:
     

    jdbc:oracle:thin:@(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=)))(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=))))

    Integration with EUS, 11g and 12c Oracle Databases, and OUD or OID. The features described in this article applies to OUD 11gR2PS3 or OID 11gR1PS7 and onwards.

    Details

    Problem
    -------
    EUS does not include the functionality to create TNS entries for a failover configuration, and there is no other Product Documentation explaining how to setup EUS for such an environment.

    Solution
    --------
    1) Register both primary and standby databases in the Directory (OUD or OID) as individual databases.

    2) Create global schema for both databases.

    2.1) Create schema mapping within an enterprise domain in the (OUD/OID) directory.

    3) Create global roles in both databases and grant privileges to them.

    3.1) Create enterprise roles in (OUD/OID) and assign primary and standby databases to both of them.

    3.2) Grant enterprise roles to LDAP groups in (OUD/OID).

    4) Test EUS, connecting to each of databases using registered service names from primary or secondary databases.

    5) Create an additional TNS entry for failover mechanism as follows -


    TNS entries in tnsnames.ora for primary and standby databases  :

    =

       (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))

          (CONNECT_DATA =

           (SERVER = DEDICATED)

           (SERVICE_NAME = )

       )

    )

    =

       (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))

          (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = )

      )

    )

    Note: This is an example of a configuration and the service name might be different on each server.

    Add the following Failover entry to tnsnames.ora

    DB11G=

        (DESCRIPTION_LIST=

          (FAILOVER=true)

          (LOAD_BALANCE=false)

          (DESCRIPTION=

               (ADDRESS= (PROTOCOL=TCP) (HOST=) (PORT=))

               (CONNECT_DATA=

               (SERVICE_NAME=))

         )

         (DESCRIPTION=

              (ADDRESS= (PROTOCOL=TCP) (HOST=) (PORT=))

              (CONNECT_DATA=

              (SERVICE_NAME=))

         )

    )

    This entry can be  exported to OUD using either "netmgr" or enterprise manager .



     

    Choose the TNS name "DB11g" to be exported to OUD

    In Directory (OUD or OID)  find the corresponding entries as follows:

    dn: cn=,cn=OracleContext,dc=

    orclNetDescString: (DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=)))(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=)))(CONNECT_DATA=(SERVICE_NAME=)))

    )

    objectClass: orclNetService

    objectClass: top

    cn:

    orclNetDescName: 000:cn=DESCRIPTION_LIST_0

    dn: cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetDescList: 000:cn=DESCRIPTION_0

    orclNetDescList: 001:cn=DESCRIPTION_1

    orclVersion: v0.0

    objectClass: orclNetDescriptionList

    objectClass: top

    orclNetShared: NO

    cn: DESCRIPTION_LIST_0

    dn: cn=DESCRIPTION_0,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetServiceName:

    orclVersion: v0.0

    objectClass: orclNetDescriptionAux1

    objectClass: orclNetDescription

    objectClass: top

    orclNetLoadBalance;binary: NO

    orclNetAddrList: 000:cn=ADDRESS_LIST_0

    orclNetShared: NO

    cn: DESCRIPTION_0

    dn: cn=ADDRESS_LIST_0,cn=DESCRIPTION_0,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetSourceRoute;binary: NO

    orclNetFailover;binary: YES

    orclVersion: v0.0

    objectClass: orclNetAddressList

    objectClass: top

    orclNetLoadBalance;binary: NO

    orclNetAddrList: 000:cn=ADDRESS_0

    orclNetShared: NO

    cn: ADDRESS_LIST_0

    dn: cn=ADDRESS_0,cn=ADDRESS_LIST_0,cn=DESCRIPTION_0,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetProtocol: TCP

    orclVersion: v0.0

    objectClass: orclNetAddress

    objectClass: top

    orclNetShared: NO

    cn: ADDRESS_0

    orclNetAddressString: (ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=))

    dn: cn=DESCRIPTION_1,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetServiceName:

    orclVersion: v0.0

    objectClass: orclNetDescriptionAux1

    objectClass: orclNetDescription

    objectClass: top

    orclNetLoadBalance;binary: NO

    orclNetAddrList: 000:cn=ADDRESS_LIST_0

    orclNetShared: NO

    cn: DESCRIPTION_1

    dn: cn=ADDRESS_LIST_0,cn=DESCRIPTION_1,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetSourceRoute;binary: NO

    orclNetFailover;binary: YES

    orclVersion: v0.0

    objectClass: orclNetAddressList

    objectClass: top

    orclNetLoadBalance;binary: NO

    orclNetAddrList: 000:cn=ADDRESS_0

    orclNetShared: NO

    cn: ADDRESS_LIST_0

    dn: cn=ADDRESS_0,cn=ADDRESS_LIST_0,cn=DESCRIPTION_1,cn=DESCRIPTION_LIST_0,cn=,cn=OracleContext,dc=

    orclNetProtocol: TCP

    orclVersion: v0.0

    objectClass: orclNetAddress

    objectClass: top

    orclNetShared: NO

    cn: ADDRESS_0

    orclNetAddressString: (ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=))


     

    6) Test the new TNS entry or log on to database

    # tnsping

    # sqlplus /@

    7) Failover can be tested by stopping the primary server. Current and new sessions will automatically switch to the failover server on (in this example)

  • 相关阅读:
    GO语言开山篇(四):开发工具VSCode的安装和使用及环境搭建
    数据结构:二叉树(基本概念)
    nginx可以转发telegraf发送给kafka的数据吗?
    【Bash】常用命令总结
    程序员们保住自己饭碗
    java服务器如何知道客户端请求的ip地址
    Unity ToLua热更框架使用教程(1)
    JavaScript-内置对象
    Flutter混合栈管理
    openGauss每日一练第9天 | openGauss中一个表空间可以存储多个数据库
  • 原文地址:https://blog.csdn.net/jnrjian/article/details/126782433