소스와 대상 간의 테이블 속성 조정

데이터베이스에 대해 Oracle GoldenGate DDL 기능이 지원되지 않는 경우 이 절차에 따라 소스 테이블의 속성을 변경합니다. 속성 변경에는 열 또는 분할 영역 추가 또는 변경이 포함됩니다. 복제 대기 시간을 발생시키지 않고도 대상 테이블을 동일하게 변경하는 방법을 알려줍니다.

주: Oracle 및 MySQL 데이터베이스의 경우 이 프로시저를 사용하는 대신 Oracle GoldenGate의 DDL 지원 기능을 사용으로 설정하여 DDL 변경 사항을 대상에 전달할 수 있습니다.

  1. 소스 및 대상 시스템에서 표시기 테이블이라고 하는 테이블을 생성합니다. 이 테이블은 트랜잭션 로그의 정지 지점을 나타내는 표시기를 생성하는 데 사용할 수 있습니다. 두 개의 간단한 열(primary key)과 다른 하나는 일반 열로 생성합니다. 예:
CREATE TABLE marker
(
id int NOT NULL,
column varchar(25) NOT NULL,

PRIMARY KEY (id)
);
  1. 소스 시스템과 대상 시스템 모두의 표시자 테이블에 행을 삽입합니다.
INSERT INTO marker VALUES (1, 1);
COMMIT;
  1. 소스 시스템에서 Admin Client를 실행합니다.

  2. 편집할 추출 매개변수 파일을 엽니다.

    주의: VIEW PARAMS 또는 EDIT PARAMS 명령을 사용하여 로컬 운영 체제의 문자 집합이 아닌 다른 문자 집합에 있는 기존의 매개변수 파일을 보거나 편집할 수 없습니다(예: CHARSET 옵션이 다른 문자 집합 지정에 사용된 경우). 이 경우 명령행 인터페이스 외부에서 파라미터 파일을 확인합니다. 그렇지 않으면 내용이 손상될 수 있습니다.

  3. TABLE 문의 Extract 매개변수 파일에 표시자 테이블을 추가합니다.

TABLE marker;
  1. 매개변수 파일을 저장한 후 닫습니다.

  2. 데이터 펌프가 사용되는 경우 데이터 펌프의 TABLE 문에 표시자 테이블을 추가합니다.

  3. Extract 및 데이터 펌프 프로세스를 정지한 후 즉시 재시작하여 캡처 지연을 방지합니다.

STOP EXTRACT *group*
START EXTRACT *group*
  1. 대상 시스템에서 관리 클라이언트를 실행합니다.

  2. 편집할 Replicat 매개변수 파일을 엽니다.

    주의: VIEW PARAMS 또는 EDIT PARAMS 명령을 사용하여 로컬 운영 체제의 문자 집합이 아닌 다른 문자 집합에 있는 기존의 매개변수 파일을 보거나 편집할 수 없습니다(예: CHARSET 옵션이 다른 문자 집합 지정에 사용된 경우). 이 경우 외부 관리 클라이언트에서 매개변수 파일을 봅니다. 그렇지 않으면 내용이 손상될 수 있습니다.

  3. MAP 문에서 Replicat 매개변수 파일에 표시자 테이블을 추가하고 표시된 대로 EVENTACTIONS 매개변수를 사용하여 Replicat를 중지하고 표시자 테이블에 대한 작업을 무시합니다.

MAP marker, TARGET marker, EVENTACTIONS (STOP, IGNORE);
  1. 매개변수 파일을 저장한 후 닫습니다.

  2. Replicat 프로세스를 중지한 후 즉시 다시 시작합니다.

STOP REPLICAT *group*
START REPLICAT *group*
  1. 소스 테이블과 대상 테이블의 테이블 속성을 변경할 준비가 되면 해당 테이블에 대한 모든 유저 작업을 정지합니다.

  2. 소스 시스템에서 마커 테이블에 대한 UPDATE 작업을 트랜잭션의 유일한 작업으로 수행합니다.

UPDATE marker
SET column=2,
WHERE id=1;
COMMIT;
  1. 대상 시스템에서 EVENTACTIONS 규칙의 결과로 Replicat가 중지되었음을 표시할 때까지 다음 명령을 실행합니다.
STATUS REPLICAT *group*
  1. 소스 및 대상 테이블에서 DDL을 수행하되 아직 사용자 작업은 허용하지 마십시오.

  2. 복제 시작.

START REPLICAT *group*
  1. 소스 및 대상 테이블에 대한 사용자 작업을 허용합니다.