본문 바로가기

Oracle GoldenGate2

OGG 11.2.1.0.1 Running an initial data load v1.0

OGG 11.2.1.0.1 Running an initial data load v1.0

 

Date

Ver

Etc.

12.08.20

 

 

 

 

 

 

 

 

 

 

1.    Overview of initial data load methods

OGG 로 다음의 방법을 이용해 데이터 로드를 할 수 있다.

-      “Loading data with a database utility” 를 이용하여 데이터를 로드

-      “Loading data from file to Replicat” writes records extract 파일에 쓰고 Replicat 이 이를 타겟 tables 에 적용하는 적용한다. 이 방법은 initial-load 에서 가장 느린 방법이다.

-      “Loading data from file to database utility” Extract 는 레코드를 외보 아스키 포맷으로 외부의 파일에 기록한다. 이 파일은 타겟 테이블에 벌크로드 유틸리티에 의해 입력된다. Replicat 은 실행파일과 컨트롤파일을 생성한다.

-      “Loading data with an Oracle Golden Gate direct load” Extract Replicat TCP/IP 를 통해 Collector process 나 파일 이용없이 직접 통신한다. Replicat 은 데이터베이스 엔진을 통해 데이터를 적용한다.

-      “Loading data with a direct bulk load to SQL*Loader” Extract 외부포맷 ASCII 로 레코드를 추출하여 Replicat 으로 직접 전송한다. 이는 Oracle SQL*Loader bulk-load utility 로 전달된다. 이는 Oracle GoldenGate 를 이용한 오라클 데이터 로딩 중에 가장 빠른 방법이다.

-      “Loading data with Teradata load utilities” 이는 두 개의 Teradata database 간에 동기화 하는데 선호된다. 추천하는 유틸리티는 MultiLoad 이다.

 

2.    Using parallel processing in an initial load

Database utility 로 수행되는 모든 initial load methods , parallel Oracle GoldenGate processes 를 이용해 더 빠르게 로드할 수 있다.

 

3.    Prerequisites for initial load

-      Disable DDL processing

초기적재 시작전에 DDL extraction replication 을 중지해야 한다.

-      Prepare the target tables

l  Data : table 이 비어있는지 확인한다. 그렇지 않은 경우 duplicate-row 나 존재하는 rows 로 인해 로드중에 에러가 발생할 수 있다.

l  Constraints : foreign-key check constraints 를 중지시킨다. 이 기능들은 로드가 끝난 후에 활성화 시킨다.

l  Indexes : 타겟테이블의 인덱스를 제거한다. 인덱스는 Insert 작업에 불필요하다. 로드가 끝난 이후에 인덱스 생성이 가능하다.

-      Configure the Manager process

-      Create a data-definitions file

source target 간에 스키마 간 유사점이 있는경우 이 파일이 필요하다. (스키마 구성이 동일하지 않은 경우)

-      Create change-synchronization groups

초기적재를 하는 동안에 발생하는 트랜잭션에 대해 capture replication 을 준비한다. Online Extract Replicat 그룹을 생성한다. 이 그룹을 프로시저를 로드하는 동안 시작할 것이다.

-      Sharing parameters between process groups

 

4.    Loading data with a database utility

타겟 데이터와 연결하기 위해 database copy utility 를 사용하기 위해서는, Database utility 가 데이터의 정적

카피를  만드는 동안 만들어지는 변경 내용을 추출하기 위해 change-synchronization Extract group 을 시

작한다. 복사가 끝나면 change-synchronization Replicat group 을 카피가 적용되는 동안 변경 된 row 를 재

적용한다. 이 시점으로부터 Extract Replicat 은 싱크를 위해 계속 동작한다. 이 방법은 어떠한 특별 initial-

load Extract Replicat 프로세스와 연관이 없다.

 

5.    Loading data from file to Replicat

타겟 데이터와 연결하기 위해 Replicat 을 사용하면, 소스테이블로부터 소스 레코드를 추출하기 위해 initial-load Extract 를 사용하며 이를 규정된 포맷의 extract file 로 기록한다. 이 파일로부터, initial-load Replicat 은 데이터베이스 인터페이스를 사용하여 데이터를 로드한다. 이 로드로부터, change-synchronization groups 은 증분 변경분을 추출하고 적용한다.

 

로드중에, 타겟 데이터베이스에 한번에 하나의 레코드씩 적용된다. 때문에 이 방법은 다른 initial load methods 와 비교하여 상당히 느리다.

 

6.    Loading data from file to database utility

Database bulk-load utility 를 사용하기위해, Initial-load Extract 를 소스테이블의 레코드를 추출하기 위해 사용하며 이를 외부 ASCII 포맷의 extract file 에 기록한다. 이 파일은 Oracle SQL*Loader, Microsoft BCP, DTS SQL Server Integration Services (SSIS) 유틸리티, 혹은 IBM’s Load Utility (LOADUTIL) 에 읽혀질 수 있다. 로드중에 증분변경된 내용은 change-synchronization groups 에 의해 추출되고 복제된다. 로드의 과정으로서, Oracle GoldenGate 는 수행과 database utility 가 필요로 하는 control files 의 생성을 위해 initial-load Replicat 을 이용한다.

어떤 데이터 가공도 반드시 소스의 initial-load Extract 에 의해 수행되어야 한다. 그 이유는 control files 은 동적으로 생성되며 변경 규칙으로 사전 구성될 수 없기 때문이다.

 

7.    Loading data with an Oracle GoldenGate direct load

Oracle GoldenGate direct load 를 사용하기 위해, 소스의 records 를 추출하고 initial-load Replicat 으로 전송하기 위해 Oracle GoldenGate initial-load Extract 를 사용한다. Manager process 에 의해 동적으로 시작 된 task Collector process 나 파일 사용을 필요로 하지 않는다. initial-load Replicat task 는 대형블록의 로드를 타겟 데이터 베이스로 전달한다. 변형과 맵핑은 Extract, Replicat 이나 양 프로세스에 의해 이루어진다. 로드 중에는, change-synchronization groups 은 증분 변경분에 대해 추출,복제를 실시한다.

 

어느포트를 Replicat 이 이용할지 컨트롤하고, 탐색 및 바인드 속도를 높이기 위해, 매니저 파라미터 파일에

DYNAMICPORTLIST 를 사용한다. 매니저는 이 파라미터와 함께 정의 된 파라미터 리스트를 Replicat task

process 에 전달한다. Replicat 은 먼저 리스트에서 포트를 찾고, 없는경우 default Manager port 를 가용 가능

한 포트를 찾을 때까지 오름차순으 로 탐색한다.

 

OGG LOBs, LONGs, user-defined types (UDT), 혹은 4KB 보다 더 큰 데이터 타입의 컬럼을 가진 테이블에 대해 direct load 를 지원하지 않는다.

 

8.    Loading data with a direct bulk load to SQL*Loader

타겟데이타와 연결하기 위해 Oracle SQL*Loader utility 를 사용하며, 소스의 레코드를 추출하기 위해 initial-load Extract 를 수행하고, 이 데이터를 initial-load Replicat 으로 직접 전송한다. 태스크는 프로세스로 매니저 프로세스에 의해 동적으로 호출되며, 별도의 Collector process 나 파일이 불필요하다. Initial-load Replicat 태스크는 SQL*Loader API 를 이용해 direct-path bulk load 를 한다. 데이터 맵핑과 변환은 initial-load Extract initial-load Replicat 혹은 두 프로세스로 가능하다. 로드 중에는, change-synchronization groups 의 증분 변경에 대한 추출 및 복제가 진행된다.

 

Replicat 이 어느포트를 이용하게 할지, 빠른 탐색 및 빠른 바인드를 위해선, DYNAMICPORTLIST 파라미터를 매니저 파라미터 파일에 정의한다. 매니저 프로세스는 포트 리스트를 Replicat task process 에 전달한다. Replicat 은 먼저 이 리스트에서 포트를 탐색하고, 가용가능한 포트가 없을 때 default Manager port 를 가용한 포트를 찾을 때까지 오름차순으로 선택한다.

 

9.    Loading data with Teradata load utilities

Teradata database 간에 동기화를 위해 권장되는 툴은 MultiLoad 이다.

 

10. References

A.     Oracle GoldenGate Windows and UNIX Administrator’s Guide 11g Release 2 Patch Set 1 (11.2.0.1.0)

P198 ~ P223