복제를 위해 소스 데이터베이스 준비

Oracle GoldenGate 는 데이터 웨어하우스로 데이터를 전송하기 위한 안전하고 유연하고 확장 가능한 복제 플랫폼을 제공하는 데이터베이스 복제 툴입니다. 데이터를 복제하려면 소스 데이터베이스를 준비하여 Oracle GoldenGate 를 지원해야 합니다.

데이터 웨어하우스로 데이터를 전송하도록 소스 데이터베이스를 설정합니다.

  1. 관리 액세스 권한이 있는 사용자로 SQL*Plus를 사용하여 소스 데이터베이스에 접속합니다.
  2. Oracle GoldenGate 스키마(테이블스페이스/사용자) 를 생성하고 데이터베이스 이름이 pdb1 인 필요한 권한을 부여합니다.
    create tablespace ogg_tbs datafile 'ogg_tbs01.dbf' size 100m;
    alter session set container=pdb1;
    create tablespace ogg_tbs datafile 'ogg_tbs02.dbf' size 100m;
    connect to CDB$ROOT
    create user c##ggadmin identified by ADWpass123_# default tablespace ogg_tbs temporary tablespace temp;
    grant dba TO c##ggadmin CONTAINER=all;
    exec dbms_goldengate_auth.grant_admin_privilege('c##ggadmin',container=>'all');
  3. 소스 데이터베이스 pdb1에 소스 사용자/스키마를 생성합니다.
    alter session set container=pdb1;
    CREATE user adwsrc IDENTIFIED BY ADWpass123_#;
    grant dba, connect, resource to adwsrc;
  4. 데이터베이스가 Archivelog를 사용하고 있는지 확인하십시오.

    Oracle GoldenGate 는 리두 로그를 사용하여 소스 트랜잭션을 복제해야 하는 데이터를 캡처합니다. Oracle GoldenGate 처리를 시작하기 전에 소스 시스템의 리두 로그를 제대로 구성해야 합니다.

    select LOG_MODE from v$database;
    LOG_MODE
    ------------
    ARCHIVELOG
    ALTER DATABASE FORCE LOGGING;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
    ALTER SYSTEM SET recyclebin=off SCOPE=SPFILE;
    ALTER SYSTEM SWITCH LOGFILE;
    ALTER SYSTEM SET streams_pool_size=1024M scope=both;
  5. 소스 데이터 테이블을 생성하려면 SQL*Plus을 ADWSRC로 사용하여 소스 데이터베이스에 접속하고 rec_data 테이블을 생성합니다. 예를 들어, 다음과 같습니다.
    CREATE TABLE "REC_DATA" 
    	("REQ_ID" NUMBER, 
    		"HIS_REF_STATUS" VARCHAR2(50 BYTE), 
    		"REQ_NUMBER" NUMBER, 
    		"TOTAL_OPENING" NUMBER, 
    		"OPENINGS_LEFT_TO_FILL_ACCEPTED" NUMBER, 
    		"OPENINGS_LEFT_TO_FILL_HIRED" NUMBER, 
    		"REQ_BY_RECRUITER" NUMBER, 
    		"REQ_APPROVED" NUMBER, 
    		"REQ_CANCELLED" NUMBER, 
    		"REQ_FILLED" NUMBER, 
    		"REQ_HOLD" NUMBER, 
    		"REQ_SOURCE" VARCHAR2(40 BYTE), 
    		"REQ_SOURCE_TYPE" VARCHAR2(80 BYTE), 
    		"CANDIDATE_FEMALE" NUMBER, 
    		"CANDIDATE_AGE40" NUMBER, 
    		"SUBMISSION" NUMBER, 
    		"SUBMISSION_ACE" NUMBER, 
    		"SUBMISSION_HIRED" NUMBER, 
    		"SUBMISSION_OFFER_EXTENDED" NUMBER, 
    		"SUBMISSION_OFFER_REFUSED" NUMBER, 
    		"SUBMISSION_OFFER_ACCEPTED" NUMBER, 
    		"CANDIDATE" NUMBER, 
    		"COUNTRY" VARCHAR2(60 BYTE), 
    		"STATE" VARCHAR2(60 BYTE), 
    		"REGION" VARCHAR2(60 BYTE), 
    		"CITY" VARCHAR2(60 BYTE), 
    		"ETHNICITY" VARCHAR2(60 BYTE), 
    		"GENDER" VARCHAR2(30 BYTE), 
    		"RACE" VARCHAR2(30 BYTE), 
    		"CURRENT_STATUS_ID" NUMBER, 
    		"CANDIDATE_STATUS" VARCHAR2(40 BYTE), 
    		"STATUS" VARCHAR2(40 BYTE), 
    		"REQ_DIRECT_SOURCE" VARCHAR2(30 BYTE), 
    		"BU_NAME" VARCHAR2(50 BYTE), 
    		"PERFORMANCE" VARCHAR2(40 BYTE), 
    		"HIRING_MANAGER" VARCHAR2(60 BYTE), 
    		"RECRUITER" VARCHAR2(60 BYTE), 
    		"DAYS_OPEN" NUMBER, 
    		"REVENUE" NUMBER(8,2), 
    		"CALLS_VOLUME" NUMBER, 
    		"COST" NUMBER(8,2), 
    		"SERVICE_CENTER" VARCHAR2(40 BYTE), 
    		"OPEN_DATE" DATE, 
    		"OPEN_YEAR" NUMBER, 
    		"OPEN_MONTH_N" NUMBER, 
    		"OPEN_MONTH_W" VARCHAR2(14 BYTE), 
    		"OPEN_QUARTER" VARCHAR2(10 BYTE), 
    		"GEO_REGION" VARCHAR2(10 BYTE), 
    		"REVENUE_PER_TARGET" NUMBER, 
    		"REVENUE_PERCENTAGE_PER_TARGET" NUMBER(5,2), 
    		"SEQUENCE" NUMBER,
    		CONSTRAINT REC_DATA_PK PRIMARY KEY ("REQ_ID")
     		  );