2013년 2월 21일 목요일

[참고] 오라클 jdbc tnsname 설정 관련


- 업무 파티션을 하고자 할 경우 각 업무별로 장애가 발생하지 않는 평시에
  RACDB1으로 접속하여 사용할 것인지 RACDB2로 접속하여 사용할 것인지를 결정하여야 함.
- 업무파티션의 기준은 각각의 노드에서 테이블 단위의 DML(INSERT,UPDATE,DELETE)이
  최소화되도록 설계하여야 함.

1. 리스너 설정(listener.ora)
   -----------------------
   # Local Listener를 사용하도록 설정
   LISTENER_HOSTNAME =
     (DESCRIPTION_LIST =
       (DESCRIPTION =
         (ADDRESS = (PROTOCOL = TCP)(HOST = VIP_HOSTNAME)(PORT = 1521)(IP=FIRST))
         (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)    (PORT = 1521)(IP=FIRST))
         (ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
       )
     )
   
   SID_LIST_LISTENER_HOSTNAME =
     (SID_LIST =
       (SID_DESC =
         (SID_NAME = PLSExtProc)
         (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
         (PROGRAM = extproc)
       )
     )

2. TNS(tnsnames.ora) 설정 필요 - JDBC OCI 방식
   ----------------------------------------------
    # JDBC OCI 방식으로 설정하여 사용하고자 할 경우 TNS설정이 필요하며
    # RACDB에 접속하는 방식은 SQL*Net을 사용하게 됨
    # (SELECT인 것만 FAILOVER할 수 있도록 설정한 예, 주로 많이 사용하는 설정)
   TNS_RACDB1 = (DESCRIPTION=
                 (LOAD_BALANCE=OFF)
                 (FAILOVER=ON)
                 (ADDRESS=(PROTOCOL=TCP)(HOST=VIP_HOSTNAME1)(PORT=1521))
                 (ADDRESS=(PROTOCOL=TCP)(HOST=VIP_HOSTNAME2)(PORT=1521))
                 (CONNECT_DATA = (SERVER = DEDICATED)
                                 (SERVICE_NAME = RACDB)
                                 (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
                 )
             )
   
   TNS_RACDB2 = (DESCRIPTION=
                 (LOAD_BALANCE=OFF)
                 (FAILOVER=ON)
                 (ADDRESS=(PROTOCOL=TCP)(HOST=VIP_HOSTNAME2)(PORT=1521))
                 (ADDRESS=(PROTOCOL=TCP)(HOST=VIP_HOSTNAME1)(PORT=1521))
                 (CONNECT_DATA = (SERVER = DEDICATED)
                                 (SERVICE_NAME = RACDB)
                                 (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
                 )
             )

     1]  RACDB1에 접속하고자 하는 설정
          jdbc:oracle:oci:@TNS_RACDB1

     2  RACDB2 접속하고자 하는 설정
          jdbc:oracle:oci:@TNS_RACDB2

3. TNS(tnsnames.ora) 설정 필요없음 - JDBC thin 방식
   -----------------------------------------------
   1] RACDB1에 접속하고자 하는 설정
      jdbc:oracle:thin:@(DESCRIPTION=
                           (FAIL_OVER=ON)
                           (LOAD_BALANCE=OFF)
                           (ADDRESS=(PROTOCOL=TCP)(HOST=100.100.52.111)
                                    (PORT=1521)) # RACDB1 Virtual-IP 사용
                           (ADDRESS=(PROTOCOL=TCP)(HOST=100.100.52.112)
                                    (PORT=1521)) # RACDB2 Virtual-IP 사용
                           (CONNECT_DATA=(SERVICE_NAME=RACDB)))

   2] RACDB2에 접속하고자 하는 설정
      jdbc:oracle:thin:@(DESCRIPTION=
                           (FAIL_OVER=ON)
                           (LOAD_BALANCE=OFF)
                           (ADDRESS=(PROTOCOL=TCP)(HOST=100.100.52.112)
                                    (PORT=1521)) # RACDB2 Virtual-IP 사용
                           (ADDRESS=(PROTOCOL=TCP)(HOST=100.100.52.111)
                                    (PORT=1521)) # RACDB1 Virtual-IP 사용
                           (CONNECT_DATA=(SERVICE_NAME=RACDB)))

댓글 없음:

댓글 쓰기