レプリケーション用のソース・データベースの準備

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. データベースがアーカイブ・ログを使用していることを確認してください。

    Oracle GoldenGateは、redoログに依存してソース・トランザクションをレプリケートする必要があるデータを取得します。ソース・システムのRedoログは、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")
     		  );