나그네소

Ark CDC(Postgresql) 본문

Open Source DB/ETL & CDC

Ark CDC(Postgresql)

나그네소티 2022. 11. 9. 19:09

Ark CDC 실시간 복제 솔루션을 소개 한다.  주력 제품은 Oracle for Oracle인 것으로 

보이는데 나는 Opensource 관련 제품에 관심이 있어 이번 주제는 Opensouce인 postgresql

복제 관련 부분에 대하여 알아 본다. 

 

일단 복제 솔루션은 제품의 Architecture보니 Software Replication으로 보면 될 것 같다.

Oracle의 OGG이용 하기 보다는 Logfile dump 하여 해당 내용을 추출 network 통화여 전송

후 이를 동기화 하는 일반적인 Replication 솔루션으로 보인다. 

 

Ark CDC 기본 Architecture

 

1. Ark 설치

Ark CDC oracle & postgresql 실시간 복제 솔루션

1-1) 소프트웨어 요구 사항 설치

  • OPENSSL (LINUX 5)
  • GNUTLS (LINUX 6/7)

 

2. Agent 설치 (Oracle 설치)

(source, target 둘다 설치해야 한다.)

 

2-1) 데이터베이스 설치 유저로 접속 한다.

su - oracle

 

2-2) tar xvf ArkCDC.tar

 

2-3) linux profile 설정(.bash_profile)

# ArkCDC PATH & LIBRARY PATH Environment Variables #
export ARKCDC_NAME=<DATABASE NAME>
export ARKCDC_HOME=/data/ARKCDC
export PATH=$ARKCDC_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ARKCDC_HOME/lib:$LD_LIBRARY_PATH

ex)
# ArkCDC PATH & LIBRARY PATH Environment Variables #
export ARKCDC_NAME=orcl # select * from v$database;
export ARKCDC_HOME=/home/oracle/ARKCDC
export PATH=$ARKCDC_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ARKCDC_HOME/lib:$LD_LIBRARY_PATH

참고 : AC/ASM 환경   추가   설정
※   Oracle RAC  혹은    ASM  환경에서는    환경변수    GRID_SID, GRID_HOME을    추가적으로 설정합니다.
export GRID_SID=<ASM Instance Name>
export GRID_HOME=<Grid Infrastructure 설치 경로>

ex)
export GRID_SID=+ASM
export GRID_HOME=/data/grid/product/12.2.0/grid

 

2-4) License File 입력

Ark for CDC 라이센스 파일(arklicense.dat)을   $ARKCDC_HOME/conf 디렉토리  하위로  복사합니다.

 

참고] 디렉토리 구조

 

3. Agent 설치 (Postgresql 설치)

 

3-1) 데이터베이스 설치 유저로 접속 한다.

su - postgres

 

3-2) tar xvf ArkCDC.tar

 

3-3) linux profile 설정(.bash_profile)

#ARK_CDC
export ARKCDC_NAME=edb
export ARKCDC_HOME=/home/enterprisedb/ARKCDC
export PATH=$ARKCDC_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ARKCDC_HOME/lib

 

3-4) License File 입력

Ark for CDC 라이센스 파일(arklicense.dat)을   $ARKCDC_HOME/conf 디렉토리  하위로  복사합니다.
 
4. 사전 절차( source : oracle만 수행)

4-1) Archive Log Mode 설정

  • Archive Log Mode 설정   여부   확인
    Source Database의   Archive Log Mode 설정   여부를   확인합니다.
    • command
      $ sqlplus '/as sysdba' 
      SQL> ARCHIVE LOG LIST
  • Archive Log Mode 설정   (Down Time 발생)
    조회   결과가   ‘No Archive Mode’로   출력될   경우   Archive Log Mode를   설정합니다. Archive Log Mode 변경시   
    Down Time이   발생합니다.
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

 

 

  • 캐릭터셋 확인
    • 캐릭텃셋 확인(source database 캐릭터셋을 확인 합니다.)
SQL>  SELECT  *  FROM  NLS_DATABASE_PARAMETERS  WHERE  PARAMETER  LIKE '%CHARACTERSET';

PARAMETER               VALUE
------------------------------ ------------------------------
NLS_NCHAR_CHARACTERSET           AL16UTF16
NLS_CHARACTERSET           KO16MSWIN949

 

  • Database Level Supplemental Logging 설정
    • Database Min Level Supplemental Logging Mode 설정   여부   확인 

Source Database의   Min Level Supplemental Logging 설정   여부를   확인합니다.

SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN "MIN" FROM V$DATABASE;
MIN
--------
NO

 

  • Database Min Level Supplemental Logging 설정