Oracle DBMS 를 RAC로 이중화 구성할 때 TAF 라는 세팅을 합니다.
TAF 는 Transparent Application Failover 의 약자로, DB장애시에도 어플리케이션은 모르게(Transparent 하게) Failover 를 해주겠다는 의미입니다.
이중화 또는 삼중화된 Oracle DB 시스템에서 한개의 DB서버가 죽어도 다른 살아있는 DB서버로 어플리케이션이 자동 접속하여 사용자는 장애상황을 못느끼도록 해주는 아주 쌈빡한 기능이죠~~
이 TAF 를 세팅하는 방법은 2가지가 있습니다.
SQL*Net Client 상에서 세팅해주는 Client Side TAF 가 있고,
DB 서버쪽에 세팅해주는 Server Side TAF 가 있습니다.
보통 Client 상에서 세팅하는 방식이 아주 심플하기 때문에 이 방식으로 많이들 합니다.
이 두가지 세팅 방법을 정리해보겠습니다.
1) Client Side TAF 세팅방법
SQL*Net Client 라는 것은 tnsnames.ora 파일을 말합니다.
Client 환경(PC 또는 WAS서버)에 Oracle Client 모듈을 설치한 경우 SQL*Net 통신을 위해 tnsnames.ora 를 설정합니다.
여기에서 TAF 관련된 설정을 해주는 것입니다.
tnsnames.ora 파일에 아래와 같이 세팅하면 끝입니다. ㅎㅎ 좀 너무 쉽죠~
위에 보면 IP가 2개 들어가 있는데, 3개 노드로 RAC 구성이 된경우에는 여기에 IP가 3개를 기술해주면 됩니다.
그 위쪽에 LOAD_BALANCE 를 해줄지 말지도 세팅해줄 수 있고,
FAILOVER = ON 은 반드시 기술해줘야 합니다.
아래쪽에 FAILOVER_MODE 도 반드시 세팅해줘야 합니다. TYPE과 METHOD 를 기술해줍니다.
TYPE 은 SESSION/SELECT 중 하나를 기술해주면 됩니다.
SESSION 은 Fetch 도중에 장애를 만나면 Fetch 는 실패하는 방식.
SELECT 는 Fetch 까지 복구해주는 방식입니다.
MODE 는 BASIC/PRECONNECT 중 하나를 기술해주면 됩니다.
PRECONNECT는 장애시 빠른 Failover를 위해 접속을 모든 노드에 미리 해놓는 방식입니다.
2) Server Side TAF 세팅방법
Server Side TAF는 srvctl 커맨드를 이용해서 service 를 추가하는 방식으로 세팅합니다.
$ srvctl add service -d rac -s server_taf -r "RAC1,RAC2"
--> -d : DB명
--> -s : Server Side TAF 이름
--> -r : DB Instance명
$ srvctl start service -d rac -s server_taf
--> 서비스를 Start
$ srvctl modify service -d rac -s server_taf -m BASIC -e SELECT -q TRUE -j LONG
--> TAF관련 옵션을 설정 (Failover 방식(BASIC), Failover Type(SELECT), ...
위와 같은 커맨드로 서비스를 만들어준 후,
lsnrctl status 커맨드로 등록된 서비스를 확인할 수 있습니다.
앞에서 만든 server_taf 라는 서비스명을 확인할 수 있습니다.
이거 다른 이름으로 여러개 만드는 것도 가능합니다. ^^
srvctl config service 커맨드로 서비스정보를 확인할 수도 있습니다.
위와 같이 Server Side TAF 가 구성되어 있기 때문에,
클라이언트에서는 tnsnames.ora 에 기존 TNS 세팅하듯이 하면 알아서 TAF 로 돌아갑니다.
Client Side TAF 와 달리 FAILOVER_MODE 등을 적어주지 않는 것을 확인할 수 있습니다.
테스트는 아래와 같이 해봤습니다.
RAC1 인스턴스로 붙어있던 것을 다른 세션에서 RAC1 DB를 강제로 Shutdown 했습니다.
그리고 다시 세션정보를 조회해보면 자동으로 RAC2 DB 로 Connect 되어 있는 것을 확인할 수 있습니다.
Long Query 도 실행해서 중간에 에러없이 실행되는지도 테스트해야 겠지만... 되겄죠~뭐~~ 구챠녀서 여기까지 ㅋㅋ
참고 => Oracle CTF, TAF, SCAN 에 대한 간략한 설명, 이해
'IT관련' 카테고리의 다른 글
오라클 DB관리툴 EM(Enterprise Manager) 종합 페이지 - 각종팁, 주요기능 설명 등 모음 (0) | 2019.10.31 |
---|---|
구글 크롬(Chrome)에서 플래시(Flash) 실행 안되는 경우 #2 (1) | 2019.10.31 |
오라클 에러정보 (TNS-01106) - 리스너는 이미 시작되었습니다. (0) | 2019.10.28 |
Oracle RAC SCAN 리스너 세팅관련 설명 (0) | 2019.10.25 |
Oracle CTF, TAF, SCAN 에 대한 간략한 설명, 이해 (0) | 2019.10.25 |