Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

HeeLee_DBA

JDBC - JNDI, 대용량 Batch 이중화 본문

Oracle

JDBC - JNDI, 대용량 Batch 이중화

HeeLee_ 2022. 7. 27. 17:25
반응형

JNDI 이중화는 중요하다.
이중화된 DB#1, DB#2에서 DB#2가 어떠한 장애로 인해 DBdown이 일어날 경우 어플리케이션에는 영향이 없어야 하기 때문이다.

--JNDI 이중화 구성
jdbc:orcle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD_BALANCE=OFF)
(ADDRESS_LIST=
(ADDRESS=(HOST=xx.xx.xx.11)(PROTOCOL=TCP)(PORT=1521))
(ADDRESS=(HOST=xx.xx.xx.12)(PROTOCOL=TCP)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=orcl))

* 2번째 ADDRESS는 VIP를 사용할 경우 이중화된 DB에서는 안써도 되긴하지만 쓰는걸 권장
이중화DB인 경우 DB#2의 VIP가 DB#1로 넘어감

JNDI는 JEUS, LENA를 이용하여 구성하여 사용하고 있다.
JNDI를 사용하면 1. 보안성을 높혀주고(JNDI 구성시 DB Password는 암호화됨) 2. Connection Pool를 관리하기 편한 장점이있다.

--Batch 이중화 구성(Spring properties 사용)
--DB Connection
--DB#2
com.datasource.className=oracle.jdbc.driver.OracleDriver
com.datasource.url=jdbc:oracle:thin:@xx.xx.xx.12:1521:SID2
com.datasource.userName=test
com.datasource.passWord=test123

--DB#1
com.datasource.className=oracle.jdbc.driver.OracleDriver
com.datasource.url=jdbc:oracle:thin:@xx.xx.xx.11:1521:SID1
com.datasource.userName=test
com.datasource.passWord=test123

대용량 batch인 경우 새벽시간에 DB#2에 연결해서 돌리는 경우가 많다.
하지만 DB#2가 꺼졌을 경우 DB#1로 돌려야 되는 batch이면
해당 properties를 등록해 놓고 DB connection error 발생 시 DB#1 config를 사용하면 될 듯하다.

반응형

'Oracle' 카테고리의 다른 글

Synonym - 삭제된 테이블 Synonym 지우기  (3) 2022.08.01
Synonym - Private, Public 우선 순위  (4) 2022.07.29
Flashback  (0) 2022.05.19
UNPIVOT - 가로데이터 세로로 출력하기  (1) 2022.05.17
RMAN - Table 단위 시점 복원  (0) 2022.05.14