콘텐츠로 이동

부록 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 반영 모드가 정상적으로 활성화된 것이다.