CTF(Connection Time Fail-Over)
기본 개념
- 데이터 베이스로 접속하는 순간 서버, DB, Listener 등 비정상적일 경우 다른 쪽 서버로 접속하는 것을 의미
- DB에 대해 쿼리가 진행중에 해당 DB에 오류가 발생하거나 비정상 동작이 발생할 경우 해당 커넥션을 버리고 정상적인 DB로 커넥션 맺음
TNSNAMES.ORA 설정 방법
instance_name =
(DESCRIPTION=
(LOAD_BALANCE=OFF) -- 로그 밸런싱 여부 (생략가능)
(FAILOVER=ON) -- CTF 기능 사용 여부
(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=vip)(PORT=1521))
(CONNECT_DATA=
(SERVER = DEDICATED)
(SERVICE_NAME=ora9i)
)
)
)
TFA (Run Time FailOver)
기본 개념
- DB에 대한 쿼리가 진행 중에 해당 DB에 오류가 발생하거나 비정상 동작이 발생할 경우 옵션에 따라 각각 동작 취함
- CTF와 상반이 아닌 Additional 한 개념으로 CTF동작과 옵션은 TAF에서도 적용
- Package의 Global 변수, Alter Session을 이용한 작업, 진행중인 Transaction, Temporary Table Data는 TAF 사용시에도 보장되지 못한다
TNSNAMES.ORA 설정 방법
instance_name =
(DESCRIPTION=
(LOAD_BALANCE=OFF)
(FAILOVER=ON)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=vip)(PORT=1521))
(CONNECT_DATA= (SERVER = DEDICATED) (SERVICE_NAME=ora9i)
(FAILOVER_MODE=(TYPE=SELECT/SESSION)(METHOD=BASIC/PRECONNECT)(DELAY=N SEC)(RETRIES=N SEC))
)
)
)
옵션 설명
- Mode : 장애 시 SQL수행 중 장애에 대한 동작을 결정 (session, select)
session모드일 경우 session만 다른 DB로 넘어가고 SQL은 다시 수행해야 한다.
select모드일 경우 수행하던 작업을 이어서 다른 DB에서 진행한다 - Method : 장애 시점 이전에 connection을 맺는 방법을 결정(Basic, Preconnect)
Basic메서드일 경우 장애 발생 시 다른 DB로 접속한다
Preconnect메서드일 경우 최초 접속 시 다른 node에 미리 접속해 놓는다. - DELAY: TAF 가 장애 후에 BACKUP Session에 연결하려는 동안 기다리는 몇 초간의 지연 시간. (Default :1초)
- RETRIES: TAF 가 장애 후에 BACKUP Session 에 연결하기 위해 시도하는 횟수 (DEFAULT :5초)
'DB > Oracle' 카테고리의 다른 글
[Tuning] SQL Plan 해석 (0) | 2024.09.23 |
---|---|
[Tuning] Index Invisible (0) | 2024.09.20 |
ORA-30556 either functional or bitmap join index is defined on the column to be modified (0) | 2024.08.26 |
[Admin] Oracle ASM (0) | 2024.08.26 |
Oracle 저장구조 정리(블럭, PCTFREE, PCTUSED) (0) | 2024.05.08 |