뽁
OGG.오라클 압축 파티션 연동 방법 본문
오라클 압축(compress) 파티션이 OGG 연동 대상일 경우 방법.
1. OGG 에서 오라클 압축 테이블을 지원하려면 아래와 같이 DB작업이 추가되며
1) DB SGA 내 STREAMS_POOL_SIZE를 설정하여 OGG 추출에 필요한 사이즈를 할당해야 하며, (각 노드별 최소 1024MB 이상 권장, SGA 사이즈 고려)
2) exec dbms_goldengate_auth.grant_admin_privilege(‘OGG’) 프로시저 실행을 통해 추가 권한부여가 필요합니다.
3) _log_read_buffer_size 히든 파라미터를 통해 log buffer read value를 default값보다 크게 할당하여 성능적인 부분의 향상을 어느정도 기대할 수 있습니다.
※ 해당 추출 방식은 동작 방식의 특성상 Classic extract에 비해 추출 속도가 상당 수준 느리며, 장애 발생 시 추출 시점의 변경 또한 자유롭지 못해 핸들링에 제약사항이 꽤 존재합니다.
2. 압축 테이블의 모든 파티션을 압축 해제
사전에 압축 테이블의 모든 파티션을 압축 해제했을 경우의 용량 산정을 선행해야 한다.
압축 해제 후에는 인덱스 리빌딩을 해줘야 하며, 빈도가 많은 중요 쿼리에 대해서는 반드시 압축 해제 전/후의 Plan을 확인해야 한다.
3. 압축 테이블과 동일한 스키마로 temp table을 만들어서 OGG 연동에 사용
오라클 MOS에서 제공하는 Workaround 방식으로
OGG classic extract는 compressed table에 대한 지원을 하지 않고 있으나, partitioning table에 compressed partition과 uncompressed partition이 혼재되어 있는 경우, 이론상 redo log 및 archived log에서 uncompressed partition의 데이터는 추출할 수 있습니다.
그러나 추출 프로세스가 추출을 하려는 시점에 DB meta정보에서 compressed partition이 포함된 compressed table임을 인지하고 추출하지 못하고 비정상 종료되는 것으로, 오라클에서는 이를 우회할 수 있는 work around를 제공하고 있습니다.
이 방법은 추출 대상 테이블과 동일한 레이아웃의 uncompressed table을 생성하여 해당 테이블을 추출 대상으로 우회하여 인식시킨 후, 추출 대상 compressed partition의 object_id를 하드 맵핑하여 실제 추출데이터는 원본테이블의 DML에서 추출할 수 있도록 우회하는 방법이라고 할 수 있습니다. 이는 DML이 중복하여 발생하거나 추출이 중복하여 발생하는 것은 아니며, 기존의 추출 방법과 동일하게 단일 추출됩니다.
성능상의 추가적인 저하는 거의 없으나 파티션 추가 등 OGG 동기화 변경 프로세스나 관리 측면에서는 다소 불편함이 있을 수 있기 때문에 근본적 해결책인 테이블 압축 해제하는 방안을 추천합니다.
'IT Cafe+ > ORACLE DB' 카테고리의 다른 글
오라클.AWS RDS 에서 Session Kill 하기 (0) | 2021.07.15 |
---|---|
오라클.Character Set 이 KO16MSWIN949 인 경우 다국어 입력 방법 (0) | 2021.07.15 |
Oracle.timezone 관련 쿼리문 (0) | 2019.10.31 |
[튜닝] 오라클 xplan 활용 (0) | 2014.11.06 |