부록 C. SQL 반영 모드#
SQL 반영 모드 개요#
SQL 반영 모드는 지역 서버와 원격 서버의 메타 정보가 다를 때에도 이중화를 유지하기 위해 사용된다. 이 모드를 활성화하면 XLog를 SQL 문으로 변환하여 주 트랜잭션을 복제한다. 이 기능은 이중화 대상에 DDL 문을 수행하는 다양한 상황에서 필요하다.
제약 사항#
- EAGER 모드 이중화는 지원하지 않는다.
- 암호화 칼럼이 있는 이중화 대상 테이블에는 동작하지 않는다.
주의 사항#
SQL 반영 모드를 활성화하면 이중화 속도가 현저히 느려지므로 사용 후 바로 비활성화해야 한다.
SQL 반영 모드 동작 조건#
SQL 반영 모드는 다음과 같은 경우에 동작한다.
칼럼 정보 불일치#
-
데이터 타입이 다름
-
데이터 타입은 같지만 size, precision, scale이 다름
제약조건 불일치#
-
CHECK 제약조건의 조건(condition)이 다름
-
CHECK 제약조건의 이름이 다름
-
칼럼의 NOT NULL/NULL 제약조건이 다름
인덱스 정보 불일치#
- 유일 키 인덱스의 구성 정보가 다름
- 유일키 인덱스에 이중화 대상이 아닌 칼럼이 포함된 경우
- 함수 기반 인덱스의 구성 정보가 다름
- 함수 기반 인덱스에 이중화 대상이 아닌 칼럼이 포함된 경우
파티션 정보 불일치#
- 이중화 쌍의 파티션 수가 다름
SQL 반영 모드 설정#
SQL 반영 모드는 이중화 수신자 쪽에서 설정한다.
설정 방법#
수신자 서버에서 다음 문장을 수행하여 SQL 반영 모드를 활성화한다.
ALTER SYSTEM SET REPLICATION_SQL_APPLY_ENABLE = 1;
설정 확인 방법#
수신자 서버에서 다음 구문을 실행하여 설정이 올바르게 적용되었는지 확인한다.
SELECT NAME, VALUE1 FROM V$PROPERTY WHERE NAME = 'REPLICATION_SQL_APPLY_ENABLE';
결과 예시:
NAME VALUE1
-------------------------------------------------------------------
REPLICATION_SQL_APPLY_ENABLE 1
1 row selected.
VALUE1
값이 1
이면 SQL 반영 모드가 정상적으로 활성화된 것이다.