• 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)

  • 相关阅读:
    软件工程毕业设计课题(28)基于JAVA毕业设计JAVA教室实验室预约系统毕设作品项目
    使用PyTorch处理多维特征输入的完美指南
    hookZz,Dobby,xHook,consoleDebugger
    【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
    Vue中对路由的进阶学习
    理财和银保区别
    自学 TypeScript 第五天,手把手项目搭建 TS 篇
    QT压缩解压文件
    Windows环境Redis使用AOF持久化,无法生成AOF文件,生成后无法加载AOF文件内容
    【C++】深拷贝和浅拷贝 ③ ( 浅拷贝内存分析 )
  • 原文地址:https://blog.csdn.net/jnrjian/article/details/126782433