Chat now with support
Chat with Support

SharePlex 11.4 - 관리 안내서

이 안내서 정보 이 안내서에 사용된 규칙 SharePlex 개요 SharePlex 실행 SharePlex의 여러 인스턴스 실행 sp_ctrl에서 명령 실행 SharePlex 매개변수 설정 데이터 복제 구성 컨테이너 데이터베이스와의 복제 구성 명명된 큐 구성 파티셔닝된 복제 구성 변경 내역 타겟에 대한 복제 구성 복제 전략 구성 DDL 복제 구성 오류 처리 구성 데이터 변환 구성 보안 기능 구성 SharePlex 사용자를 보안 그룹에 할당 프로덕션 시스템에서 복제 시작 SharePlex 모니터링 복제 문제 방지 및 해결 동기화 중단 데이터 복원 Capture 프로세스 조정 Post 프로세스 조정 Oracle 장애 조치 후 복제 복구 활성 복제 환경 변경 Oracle 애플리케이션 패치 또는 업그레이드 적용 소스 또는 타겟에서 Oracle 데이터 백업 문제 해결 팁 부록 A: 피어-투-피어 다이어그램 부록 B: SharePlex 환경 변수

PostgreSQL 데이터베이스에 대한 DML 작업 필터링

와일드카드를 사용하는 경우 복제에서 PostgreSQL DML 유형(INSERT, UPDATE, DELETE)을 필터링하도록 SharePlex를 구성할 수 있습니다.

DML 유형 필터링

어떤 유형의 DML 작업이든 필터링하도록 SharePlex를 구성할 수 있으므로 작업이 타겟 테이블에 복제되지 않습니다. DML 필터링은 대부분의 다른 SharePlex 구성 구문과 호환됩니다.

DML 필터 구성

DML 필터를 구성하려면 소스 테이블 사양에 다음 구문을 추가합니다. 테이블 사양과 필터 사양 사이에 공백을 둡니다. 필터링할 여러 작업 유형을 지정할 수 있습니다. 컬럼 목록이나 키 정의와 같은 다른 기능에 대한 추가 구문은 DML 필터 사양을 따라야 합니다.

!dml(DML_type[,DML_type][,...])

여기서, DML_type은 다음 중 하나입니다.

DML_type 입력 작업 유형
i INSERT
d DELETE
u UPDATE

예 1

다음 예에서는 DELETE 작업이 타겟 테이블에 복제되지 않도록 필터링합니다.

Datasource:r.dbname

 

 

scott.emp !dml(d)

scott.emp

prodsys@r.dbname

예 2

다음 예에서는 UPDATE만 타겟 테이블에 복제되도록 DELETE 및 INSERT를 필터링합니다. 이 예에서는 DML 필터가 컬럼 매핑 사양과 호환되는 방식도 보여줍니다.

Datasource:r.dbname

 

 

scott.stock !dml(d,i) !key (EMPLOYEE_ID)

scott.stock

sys2@r.dbname

현재 DML 필터 보기

verify config 명령을 사용하여 구성 파일의 각 테이블에 대해 필터링되는 DML을 확인합니다. 이 명령은 활성 또는 비활성 구성 파일에 사용할 수 있습니다.

sp_ctrl> verify config myconfig detail

7: "SCOTT"."EMP" "SCOTT"."EMP" prodsys@o.proddb

Filter out >>>>> DELETES INSERTS

Unique Key : (EMPLOYEE_ID)

제한

구성 파일에 소스 테이블의 사양이 여러 개 있는 경우 테이블의 마지막 줄에 지정된 DML 필터 사양이 고려됩니다.

소스 컬럼을 타겟 컬럼에 매핑

소스 및 타겟 컬럼 매핑

소스 및 타겟 컬럼 이름이 다른 경우 구성 파일에서 명시적인 컬럼 매핑을 지정하여 Post가 행 데이터를 올바른 타겟 컬럼에 적용하도록 할 수 있습니다.

컬럼 매핑 사용 가이드라인

  • 컬럼 매핑을 사용하려면 일부 소스 이름과 타겟 이름만 다른 경우에도 소스 테이블의 모든 컬럼을 타겟 테이블의 컬럼에 매핑해야 합니다. 일부 컬럼은 매핑되고 다른 컬럼은 매핑되지 않는 경우 해당 항목은 수직으로 파티셔닝된 복제를 위한 컬럼 파티션으로 간주되며, 나열되지 않은 컬럼에 대한 데이터 변경 사항은 복제되지 않습니다.

  • 소스 컬럼 이름과 타겟 컬럼 이름의 철자가 다른 경우에는 따옴표로 묶습니다.
  • 동일한 소스 테이블에 대해 수평으로 파티셔닝된 복제와 컬럼 매핑을 사용할 수 있지만, 수직으로 파티셔닝된 복제와 컬럼 매핑을 결합할 수는 없습니다.
  • 타겟 테이블은 소스 테이블보다 더 많은 컬럼을 가질 수 있지만 모든 소스 컬럼에는 최소한 타겟 컬럼이 있어야 합니다.
  • 컬럼 매핑으로 구성된 테이블에 컬럼을 추가하는 ALTER TABLE은 지원되지 않습니다.

컬럼 매핑 구성

다음 구문은 컬럼 맵을 생성합니다. 자세한 내용은 데이터 복제를 위해 SharePlex 구성를 참조하십시오.을 참조하십시오.

datasource_specification    
src_owner.table (src_col,src_col,...) tgt_owner.table (tgt_col,tgt_col,...) routing_map
구성 구성 요소 설명
datasource_specification

데이터 소스 사양입니다. 자세한 내용은 구성 파일의 데이터베이스 사양를 참조하십시오.

src_owner.tabletgt_owner.table 각각 소스 및 타겟 테이블의 사양입니다. 자세한 내용은 구성 파일 생성를 참조하십시오.

(src_col,src_col,...)

소스 컬럼의 목록입니다.

컬럼 목록을 지정하려면 다음 규칙을 따릅니다.

  • 컬럼 목록은 괄호로 묶어야 합니다.
  • 각각의 컬럼 이름은 쉼표로 구분합니다. 쉼표 뒤의 공백은 선택 사항입니다.
  • 컬럼 목록의 최대 길이는 174,820바이트(구성 파일에 허용되는 최대 줄 길이)입니다.
(tgt_col,tgt_col,...)

타겟 컬럼의 목록입니다.

  • 해당 소스 컬럼과 동일한 논리적 순서로 타겟 컬럼을 나열합니다. 이는 테이블에 있는 타겟 컬럼의 실제 순서와 관계없이 필요하므로 SharePlex는 객체 캐시에 올바른 맵을 빌드합니다. 예를 들어 소스 목록의 두 번째 컬럼에 대한 변경 사항은 타겟 목록의 두 번째 컬럼에 복제됩니다.
  • 소스 목록의 구문 규칙은 타겟 목록에도 적용됩니다.
routing_map

라우팅 맵입니다. 자세한 내용은 구성 파일의 라우팅 사양를 참조하십시오.

구성 예

이 예에는 대소문자를 구분하는 컬럼이 포함되어 있지 않습니다.

Datasource o.oraA

 

 

sales.prod (ID,name,vendor)

mfg.prod (UPC,product,supplier)

sysB@o.oraB

 

이 예에는 대소문자를 구분하는 컬럼이 포함되어 있습니다.

Datasource o.oraA

 

 

sales.prod (ID,"name",vendor)

mfg.prod (UPC,"product",supplier)

sysB@o.oraB

스크립트를 사용하여 구성 파일 빌드

SharePlex 는 Oracle 소스 객체를 지정하기 위해 구성 파일의 빌드를 자동화하는 다음과 같은 스크립트를 제공합니다.

  • config.sql: 데이터베이스의 모든 테이블과 모든 시퀀스(선택 사항)를 구성합니다.
  • build_config.sql: 스키마에서 여러 테이블 또는 모든 테이블을 구성합니다.

지원되는 데이터베이스

Oracle

config.sql 사용

config.sql 스크립트를 사용하면 데이터베이스의 모든 스키마에 있는 모든 테이블과 모든 시퀀스(선택 사항)를 나열하는 구성을 빌드할 수 있습니다. 이 스크립트는 고가용성 복제 전략을 설정하거나 전체 데이터베이스를 동일한 보조 데이터베이스에 복제하려는 기타 시나리오를 설정할 때 시간을 절약합니다.

config.sql 사용 조건
  • 소스 테이블 이름과 타겟 테이블 이름이 동일해야 합니다.

  • 스크립트는 SYS, SYSTEM 및 SharePlex 스키마의 객체를 구성하지 않습니다. 이러한 스키마는 시스템 및/또는 인스턴스별로 다르므로 복제할 수 없습니다.
  • 스크립트는 파티셔닝된 복제를 지원하지 않습니다. copy config 명령을 사용하여 스크립트가 빌드하는 구성 파일을 복사한 다음, edit config 명령을 사용하여 파티셔닝된 복제를 사용하는 테이블에 대한 항목을 추가할 수 있습니다. 기존 파일이 아닌 새 구성 파일을 활성화합니다.
  • edit config 명령을 사용하여 구성이 빌드된 후 필요에 따라 다른 변경 작업을 수행할 수 있습니다.

config.sql을 실행하려면 다음을 수행합니다.

  1. 디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.

    cd /vardir/config

  2. SQL*Plus에 SYSTEM으로 로그온합니다.
  3. SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 config.sql을 실행합니다.

    @ /proddir/util/config.sql

프롬프트를 따를 때 다음 표를 참조하십시오.

프롬프트 입력할 항목
타겟 시스템 타겟 시스템의 이름(예: SystemB)입니다.
소스 데이터베이스 SID 소스(기본) Oracle 인스턴스의 ORACLE_SID입니다(예: oraA). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다.
타겟 데이터베이스 SID 타겟(대상) Oracle 인스턴스의 ORACLE_SID입니다(예: oraB). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다.
시퀀스 복제 시퀀스를 복제하려면 y를 입력하고, 시퀀스를 복제하지 않으려면 n을 입력합니다.
SharePlex Oracle 사용자 이름 소스 데이터베이스의 SharePlex 사용자 이름입니다. 이 항목은 복제 문제가 발생할 수 있는 SharePlex 스키마가 복제되는 것을 방지합니다. 유효한 이름이 제공되지 않으면 스크립트가 실패합니다.

참고: SharePlex가 구성에 할당한 이름은 config.file입니다. 스크립트를 다시 실행하여 다른 구성 파일을 생성하면 첫 번째 파일을 덮어씁니다. 기존 파일을 보존하려면 두 번째 파일을 만들기 전에 이름을 바꾸십시오.

다음 단계:

  • 테이블이나 소유자가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성 파일을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 소유자 이름을 큰따옴표로 묶습니다(예: "scott"."emp"). 스크립트는 대소문자 구분을 적용하기 위해 Oracle에서 요구하는 따옴표를 추가하지 않습니다.

    sp_ctrl> edit config filename

  • 구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.

    sp_ctrl> list config

build_config.sql 사용

build_config.sql 스크립트를 사용하면 스키마에 여러(또는 모든) 테이블을 포함하는 구성을 빌드할 수 있습니다. 구성의 각 구성 요소를 단계별로 묻는 대화형 스크립트입니다. 각 객체 및 라우팅에 대한 정보를 개별적으로 입력하는 대신 와일드카드를 사용하여 특정 테이블을 한 번에 선택하거나 스키마의 모든 테이블을 선택할 수 있습니다.

build_config.sql 사용 조건
  • 소스 테이블 이름과 타겟 테이블 이름이 동일해야 합니다.
  • 스크립트는 시퀀스를 지원하지 않습니다. 스크립트가 빌드하는 구성을 활성화하기 전에 sp_ctrl에서 edit config 명령을 사용하여 시퀀스 항목을 추가할 수 있습니다.
  • 스크립트는 파티셔닝된 복제를 지원하지 않습니다. copy config 명령을 사용하여 스크립트가 빌드하는 구성을 복사한 다음, edit config 명령을 사용하여 파티셔닝된 복제를 사용하는 테이블에 대한 항목을 추가할 수 있습니다. 기존 구성이 아닌 새 구성을 활성화합니다.
  • 스크립트는 SYS, SYSTEM 및 SharePlex 스키마의 객체를 구성하지 않습니다. 이러한 스키마는 시스템 및/또는 인스턴스별로 다르므로 복제할 수 없습니다.
  • 여러 스키마에 대해 build_config.sql을 실행한 다음, 텍스트 편집기를 사용하여 해당 구성을 하나의 구성으로 결합할 수 있습니다. 파일에서 주석 처리되지 않은 첫 번째 줄인 Datasource:o.SID 줄 하나만 제외하고 모두 제거해야 합니다. config 하위 디렉토리 밖으로 파일을 이동하지 마십시오.
  • edit config 명령을 사용하여 구성이 빌드된 후 필요에 따라 다른 변경 작업을 수행할 수 있습니다.

build_config.sql을 실행하려면 다음을 수행합니다.

  1. 디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. build_config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.

    cd /vardir/config

  2. SQL*Plus에 SYSTEM으로 로그온합니다.
  3. SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 build_config.sql을 실행합니다.

    @ /proddir/util/build_config.sql

프롬프트를 따를 때 다음 표를 참조하십시오.

프롬프트 입력할 항목
타겟 시스템 타겟 시스템의 이름(예: SystemB)입니다.
소스 데이터베이스 SID 소스(기본) Oracle 인스턴스의 ORACLE_SID입니다(예: oraA). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다.
타겟 데이터베이스 SID 타겟(대상) Oracle 인스턴스의 ORACLE_SID입니다(예: oraB). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다.
소스 데이터베이스 테이블의 소유자 소스 테이블의 소유자입니다.
타겟 데이터베이스 테이블의 소유자 타겟 테이블의 소유자입니다.
포함할 테이블 이름(모두 비어 있음)

다음 중 하나를 수행합니다.

  • Enter 키를 눌러 기본값을 적용합니다. 기본값은 소스 소유자에게 속한 모든 테이블을 선택합니다.
  • 특정 테이블을 선택하려면 와일드카드(%) 문자와 문자열을 입력합니다(예: %e_salary%).
  • 개별 테이블 이름을 입력합니다.
생성할 출력 파일의 이름 구성의 이름입니다. 스크립트는 파일에 .lst 접미사를 제공합니다(예: Scott_config.lst).

다음 단계:

  • 테이블이나 소유자가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 소유자 이름을 큰따옴표로 묶습니다(예: "scott"."emp"). 스크립트는 대소문자 구분을 적용하기 위해 Oracle에서 요구하는 따옴표를 추가하지 않습니다.

    sp_ctrl> edit config filename

  • 구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.

    sp_ctrl> list config

컨테이너 데이터베이스와의 복제 구성

SharePlex는 Oracle 멀티 테넌트 CDB(Container Databases)의 PDB(Pluggable Databases)와의 복제를 지원합니다. 이 지원은 Unix 및 Linux 플랫폼에서만 제공됩니다.

내용

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating