도서: 오라클 데이터베이스 11g RAC 리눅스
- pdf(이미지 출처): Oracle RAC로의 접속 loadbalance와 접속 failover
클라이언트 측 기능
인스턴스나 노드의 장애 시 세션의 페일오버/재접속을 의미
active/passive 클러스터에서도 동일하게 활용 가능
클라이언트의 tnsnames.ora 파일에서 로컬 명명을 사용하거나, RAC 데이터베이스의 서비스 속성으로 정의할 수 있다.
오라클 NETCA는 클라이언트 측 TAF 설정 지원하지 않음
1) 노드 장애 시 세션 복원
2) SELECT 구문을 다시 실행
Transparency : 새로운 기능이나 새로운 구성 요소와 같은 컴퓨팅 시스템의 모든 변경 사항은 변경 후 시스템이 내부 동작을 변경하는 동안 이전 외부 인터페이스를 최대한 고수하는 경우 투명하다. 목적은 인터페이스 반대편에 있는 모든 시스템의 변경 사항을 보호하는 것이다.
MYDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary_host)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = secondary_host)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myservice)
(FAILOVER_MODE =
(TYPE = SELECT) -- SELECT 문을 다시 실행할 수 있음
(METHOD = BASIC) -- 장애 발생 시 즉시 failover
(RETRIES = 10) -- 10번까지 재시도
(DELAY = 5) -- 5초 간격으로 재시도
)
)
)
노드 장애를 처리할 수 있는 또 다른 방법을 제공
RAC 고가용성 프레임워크에서 발생한 이벤트를 다룰 수 있다.
TAF보다 빠르게 장애 감지 및 전환 수행.
Oracle RAC, Data Guard 환경에서 세션이 있는지 확인하고 새로운 연결을 제공.
DML과 SELECT 모두 가능 (커넥션 풀 사용 시).
JDBC, ODP.NET, OCI Driver에서 지원.
Properties props = new Properties();
props.setProperty("oracle.jdbc.FastConnectionFailover", "true");
props.setProperty("oracle.net.ns.SQLnet.ONS_CONFIGURATION", "(ADDRESS=(PROTOCOL=TCP)(HOST=primary_host)(PORT=6200))");
OracleDataSource ds = new OracleDataSource();
ds.setConnectionProperties(props);
FAILOVER=ON
(default: on)Application Continuity
- Application Continuity: Oracle 19c에서 새롭게 추가된 기능으로, 기존 세션을 유지하면서 자동으로 연결을 재설정해 주는 기능