HeeLee_DBA
JDBC - JNDI, 대용량 Batch 이중화 본문
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 |