DDLOPTIONS

유효 기간

추출 및 복제

설명

DDLOPTIONS 매개변수를 사용하여 필터링 및 문자열 대체 이외의 DDL 처리 측면을 구성할 수 있습니다. 여러 개의 DDLOPTIONS 문을 사용할 수 있지만 사용할 것을 권장합니다. If using multiple DDLOPTIONS statements, make each of them unique so that one does not override the other. 여러 DDLOPTIONS 문이 매개변수 파일에 나열된 순서대로 실행됩니다.

기본값

인수 설명 보기

구문

DDLOPTIONS
[, DEFAULTUSERPASSWORD <password>] [<algorithm> [ENCRYPTKEY DEFAULT | ENCRYPTKEY] <key_name>]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS <alias> [DOMAIN <domain>] ]
[, EXCLUDETAG {<tag> | + | NULL}]
[, IGNOREMAPPING]
[, INCLUDETAG {<tag> | +}][, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA <source_schema> TARGET <target_schema>]
[, NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT][, NOAPPLYGLOBALTEMPTABLE]
[, NOTAG]
[, PASSWORD <algorithm> ENCRYPTKEY {<key_name> | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]
[, WARNONLARGEDDL]

DEFAULTUSERPASSWORD *password* [*algorithm* ENCRYPTKEY {*key_name* | DEFAULT}]

Replicat에 적합합니다. (Oracle 전용입니다)

Oracle GoldenGate 인증서 저장소를 사용하지 않는 경우 DEFAULTUSERPASSWORDALIAS 옵션 대신 사용할 수 있습니다. 복제된 {CREATE | ALTER} USER <name> IDENTIFIED BY <password> 문에 대해 소스 명령문에 사용된 것과 다른 비밀번호를 지정합니다. Replicat는 Extract가 트레일에 쓰는 위치 표시자를 지정된 비밀번호로 바꿉니다. DEFAULTUSERPASSWORD를 사용하는 경우 Extract에 DDLOPTIONS의 NOREPLICATEPASSWORD 옵션을 사용합니다.

옵션이 없는 DEFAULTUSERPASSWORD <password>는 일반 텍스트 비밀번호를 지정합니다. 비밀번호의 대소문자가 구분되는 경우 이에 맞게 입력합니다.

주: SYS 스키마에 프로파일/암호 확인 함수가 존재해야 하므로 CREATE | ALTER PROFILE 복제가 실패합니다. 이러한 DDL을 성공적으로 복제하려면 DDL - SYS 스키마가 제외되었으므로 소스/대상 둘 다에서 비밀번호 확인 함수를 수동으로 생성해야 합니다.

암호가 ENCRYPT PASSWORD 명령으로 암호화된 경우 다음 옵션을 사용합니다.

algorithm

ENCRYPT PASSWORD 명령(AES128 또는 AES192, AES256)으로 비밀번호를 암호화하는 데 사용된 암호화 알고리즘을 지정합니다.

ENCRYPTKEY key_name

ENCKEYS 조회 파일에 있는 사용자 생성 암호화 키의 논리적 이름을 지정합니다. ENCRYPT PASSWORD가 KEYNAME <key_name> 옵션과 함께 사용된 경우 사용하고 동일한 키 이름을 지정합니다.

ENCRYPTKEY DEFAULT

Oracle GoldenGate가 임의 키를 사용하도록 지정합니다. KEYNAME DEFAULT 옵션과 함께 ENCRYPT PASSWORD가 사용된 경우 사용합니다.

CAPTUREGLOBALTEMPTABLE

Oracle의 경우 적합합니다

GTT(전역 임시 테이블) DDL을 Extract에 표시하여 복제할 수 있도록 허용합니다. 기본적으로 GTT DDL을 추출하도록 GTT DDL을 볼 수 없으므로 CAPTUREGLOBALTEMPTABLE을 사용하면 GTT DDL을 포함하도록 Extract를 설정하여 DDL 문으로 필터링하고, 전달된 경우 트레일에 작성할 수 없습니다.

추적에 있는 GTT DDL은 필터링 조건을 통과하는 경우 Replicat에서 필터링 및 실행됩니다.

Extract 트리거 버전의 경우 테이블이 GTT인지 여부에 관계없이 이 옵션은 false로 설정됩니다.

DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]

Replicat에 적합합니다. (Oracle 전용입니다)

Oracle GoldenGate 인증서 저장소를 사용 중인 경우 DEFAULTUSERPASSWORD 옵션 대신 사용할 수 있습니다. 복제된 CREATE USER 또는 ALTER USER 문의 IDENTIFIED BY 절에서 암호를 대체하는 자격 증명의 별칭을 지정합니다. 별칭은 Oracle GoldenGate 인증서 저장소에서 암호화된 비밀번호로 분석됩니다. Replicat는 대상에 DDL를 적용하기 전에 Extract가 추적에 기록하는 위치 표시자를 분석된 비밀번호로 바꿉니다.

DEFAULTUSERPASSWORDALIAS를 사용하는 경우 Extract에 DDLOPTIONS의 NOREPLICATEPASSWORD 옵션을 사용합니다.

alias

대체 비밀번호에 사용될 비밀번호의 인증서 별칭을 지정합니다. 이 인증서는 Oracle GoldenGate 인증서 저장소에 존재해야 합니다. 사용할 별칭이 확실하지 않으면 INFO CREDENTIALSTORE 명령을 실행하여 인증서 저장소의 내용을 검사할 수 있습니다.

DOMAIN domain(도메인)

인증서 저장소의 지정된 사용자에게 지정된 도메인을 지정합니다.

EXCLUDETAG {*tag* | + | NULL}]

Extract의 경우 적합합니다. (Oracle 전용입니다)

주: Oracle GoldenGate 26ai부터는 제거된 GETREPLICATES, IGNOREREPLICATES, GETAPPLOPS 및 IGNOREAPPLOPS 옵션 대신 EXCLUDETAG 및 INCLUDETAG 옵션을 사용하기 위한 구문이 향상되었습니다.

EXCLUDETAG는 DBOPTIONS SET TAG 옵션을 사용하여 Replicat에서 또는 dbms_xstream.set_tag 프로시저를 사용하여 Oracle AI Database 세션 내에서 이전에 태그가 지정된 변경사항을 제외하는 데 사용됩니다.

EXCLUDETAG <tag>를 사용하여 지정된 리두 태그로 태그 지정된 개별 레코드를 무시하도록 Extract 프로세스에 지시합니다.

태그가 지정되지 않은 모든 DDL 작업을 제외하려면 EXCLUDETAG NULL를 사용합니다. 이는 EXCLUDETAG + 반대입니다.

EXCLUDETAG +를 사용하여 리두 태그가 지정된 개별 레코드를 무시하도록 Extract 프로세스에 지시합니다.

주: DDLOPTIONS 명령으로 EXCLUDETAG 및 INCLUDETAG 매개변수를 모두 지정할 때 EXCLUDETAG가 먼저 와야 합니다.

기본적으로 DDLOPTIONS EXCLUDETAG + 옵션은 Extract가 태그가 지정된 DDL 작업을 필터링하도록 지정하므로 태그가 00인 Oracle Data Pump DDL이 캡처에서 제외됩니다. 이러한 DDL을 캡처하려면 DDLOPTIONS INCLUDETAG 00를 구성합니다.

주: 양방향 구성에서 태그 포함을 사용으로 설정하면 태그가 지정된 다른 DDL을 캡처할 수 있으며, 복제 루프 또는 중복 DDL 실행이 발생할 수 있습니다.

예제

다음은 EXCLUDETAG에서 태그 지정자를 사용하는 방법의 예입니다.

태그가 지정된 모든 변경 사항을 제외하려면

DDLOPTIONS EXCLUDETAG +

태그가 지정된 특정 변경 사항을 제외하려면

DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952

단일 DDLOPTIONS 문에 여러 개의 제외 태그를 포함하려면 다음을 수행합니다.

DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab

INCLUDETAG {tag | +}

Extract의 경우 적합합니다. (Oracle 전용입니다)

추적 파일에 태그가 지정된 특정 DDL 작업을 포함하려면 INCLUDETAG <tag>를 사용합니다. 태그 값은 최대 2000자의 16진수(0-9 A-F)일 수 있습니다.

주: DDLOPTIONS 명령으로 EXCLUDETAG 및 INCLUDETAG 매개변수를 모두 지정할 때 EXCLUDETAG가 먼저 와야 합니다.

예제:

태그가 지정된 모든 변경 사항을 포함하려면

DDLOPTIONS INCLUDETAG +

태그가 지정된 특정 변경 사항을 포함하려면

DDLOPTIONS INCLUDETAG 00

EXCLUDETAG 및 INCLUDETAG 매개변수 사용 시의 지침

EXCLUDETAG 및 INCLUDETAG 매개변수를 TRANLOGOPTIONS 및 DDLOPTIONS 명령과 함께 사용하는 동안 다음을 고려하십시오.

IGNOREMAPPING

Replicat에 적합합니다. DDL이 MAPPED인지 아니면 UNMAPPED 범위인지 결정하는 이름 매핑 평가를 사용 안함으로 설정합니다. 이 옵션은 소스 및 대상 스키마 이름과 객체 이름이 일치하고 따라서 매핑 기능이 필요하지 않은 유사-유사 DDL 복제 구성의 성능을 향상시킵니다. IGNOREMAPPING가 사용으로 설정된 경우 MAPPED 또는 UNMAPPED 범위를 확인할 수 없으므로 모든 DDL 문이 OTHER 범위로 처리됩니다. 소스 스키마 및 객체 이름이 대상의 다른 스키마 및 객체 이름에 매핑될 때는 이 매개변수를 사용하지 마십시오.

MAPDERIVED | NOMAPDERIVED

Oracle(Replicat)에 적합합니다. 파생된 객체 이름의 매핑 방식 제어.

MAPDERIVED

파생된 객체에 대해 MAP 문이 존재하는 경우 해당 이름은 해당 TARGET 절에 지정된 이름에 매핑됩니다. 그렇지 않으면 기본 객체가 포함된 MAP 문의 TARGET 절에 지정된 이름에 이름이 매핑됩니다. 기본값은 MAPDERIVED입니다.

NOMAPDERIVED

이름 매핑을 방지합니다. NOMAPDERIVED는 파생된 객체의 이름을 포함하는 명시적 MAP 문을 대체합니다.

DDL 복제 중 파생된 객체가 처리되는 방법에 대한 자세한 내용은 Oracle GoldenGate에서 파생된 객체 이름을 처리하는 방법을 참조하십시오.

MAPSCHEMAS

Replicat(Oracle 및 Teradata)에 적합합니다. MAPSESSIONSCHEMA가 사용된 경우에만 사용합니다.

이 매핑은 MAP 문에 지정된 매핑 후에 발생합니다.

예를 들어, 다음 DDL 문이 소스 Oracle AI Database에서 실행된다고 가정해 보겠습니다.

create table a.t as select from b.t;

대상의 MAP 문이 다음과 같다고 가정합니다.

MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS

이 매핑의 결과로 Replicat는 대상에서 다음 DDL 문을 실행합니다.

create table c.t as select from b1.t;

MAPSESSIONSCHEMA만으로는 부적격 객체만 매핑하므로 MAPSCHEMAS가 없으면 파생된 객체가 c 스키마(TARGET 절에 지정됨)에 매핑됩니다.

MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*

Replicat에 적합합니다(Oracle만 해당). 소스 세션 스키마를 대상의 다른 세션 스키마에 매핑(변환)할 수 있도록 합니다.

와일드 카드 문자가 지원되지 않음. 여러 MAPSESSIONSCHEMA 매개변수를 사용하여 여러 스키마를 매핑할 수 있습니다.

MAPSESSIONSCHEMA는 마스터 또는 파생된 객체 이름을 기반으로 하는 스키마 이름의 매핑을 무효화합니다.

이 항목의 끝에 있는 예제를 참조하십시오.

MAPSCHEMAS을 참조하십시오.

NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]

Replicat에 적합합니다(Oracle만 해당).

Replicat가 DDL 복제 추적 파일 레코드의 일부인 NLS_LENGTH_SEMANTICS Oracle AI Database 세션 매개변수 설정을 무효화할 수 있도록 허용합니다. 예를 들어, DDL가 NLS_LENGTH_SEMANTICS 매개변수 값이 BYTE인 데이터베이스 세션에서 실행되는 경우 기본적으로 Replicat가 DDL를 적용하기 전에 데이터베이스 세션 매개변수 NLS_LENGTH_SEMANTICS를 BYTE로 설정합니다. 이를 대체하기 위해 NLSLENGTHSEMANTICS 매개변수를 CHAR로 설정할 수 있으며, DDL가 적용되기 전에 NLS_LENGTH_SEMANTICS 세션 매개변수가 CHAR로 설정됩니다.

NOAPPLYGLOBALTEMPTABLE

Replicat가 GTT(전역 임시 테이블)를 적용하지 못하도록 합니다. 이 옵션을 지정하지 않으면 Replicat는 항상 추적에서 GTT(전역 임시 테이블)에 DDL을 적용합니다.

NOTAG

Replicat에 적합

Replicat에서 적용한 DDL에 리두 태그가 지정되지 않도록 금지합니다(기본 태그 '00' 또는 SETTAG 옵션을 사용하여 DBOPTIONS 매개변수로 설정된 태그).

Replicat에서 사용하는 기본 태그 값은 00이며 DBOPTIONS SETTAG 매개변수를 사용하여 수동으로 변경할 수 있습니다. DBOPTIONS를 참조하십시오.

PASSWORD *algorithm* ENCRYPTKEY {*key_name* | DEFAULT}

추출에 적합(오라클만 해당)

DDL를 추적에 쓰기 전에 Extract가 소스 DDL의 모든 비밀번호를 암호화하도록 지정합니다.

<algorithm>

암호 암호화에 사용할 암호화 알고리즘을 지정합니다. 적합한 값은 AES128, AES192 또는 AES256입니다.

ENCRYPTKEY *key_name*

ENCKEYS 조회 파일에 있는 사용자 생성 암호화 키의 논리적 이름을 지정합니다.

ENCRYPTKEY DEFAULT

Oracle GoldenGate가 임의 키를 사용하도록 지정합니다.

REMOVECOMMENTS {BEFORE | AFTER}

(선택 사항) Extract 및 Replicat에 적합(Oracle만 해당). 설명이 DDL 작업에서 제거되는지 여부 여부를 제어합니다. 기본적으로 주석은 제거되지 않으므로 DDLSUBST 매개변수를 사용하여 문자열 대체에 사용할 수 있습니다. 자세한 내용은 DDLSUBST을 참조하십시오.

REMOVECOMMENTS BEFORE

Extract 또는 Replicat에서 DDL 작업을 처리하기 전에 설명을 제거합니다. 문자열 대체에 사용할 수 없습니다.

REMOVECOMMENTS AFTER

주석이 문자열 대체에 사용된 후 주석을 제거합니다. REMOVECOMMENTS가 지정되지 않은 경우 기본 동작입니다.

REPLICATEPASSWORD | NOREPLICATEPASSWORD

Extract에 적합(오라클에만 해당). {CREATE | ALTER} USER <user> IDENTIFIED BY <password> 명령의 암호에 적용됩니다.

NOREPLICATEPASSWORD를 사용하는 경우 Replicat 매개변수 파일의 DEFAULTUSERPASSWORD 또는 DEFAULTUSERPASSWORDALIAS 옵션과 함께 DDLOPTIONS 문을 사용하여 대상 DDL 문에 대한 비밀번호를 지정합니다.

REPORT | NOREPORT

Extract and Replicat(Oracle 및 Teradata)에 적합합니다. 확장된 DDL 처리 정보가 보고서 파일에 기록되는지 여부를 제어합니다. 기본값인 NOREPORT는 기본 DDL 통계를 보고합니다. REPORT는 사용 중인 매개변수와 처리된 작업의 단계별 내역을 추가합니다.

UPDATEMETADATA

Replicat에 적합합니다(Oracle만 해당). 활성-활성 양방향 구성에서 사용합니다. 이 매개변수는 DDL에서 이 DDL가 다른 시스템으로 전달된 것을 Replicat에 알리고 Replicat가 새 메타데이터와 일치하도록 객체 메타데이터 캐시를 업데이트해야 함을 시스템에 알립니다. 이렇게 하면 Replicat의 메타데이터 캐시가 로컬 데이터베이스의 현재 메타데이터와 동기화됩니다.

USEPASSWORDVERIFIERLEVEL {10|11}

Oracle to Oracle 구성에서만 유효합니다. DDL CREATE USER 문에서 전송 중인 비밀번호 검증기에 수정이 필요한지 여부를 확인합니다. 이 검사의 이유는 데이터베이스 버전에 따라 Oracle의 암호 검증자가 다르기 때문입니다.

SHA-1, SHA-2 및 HTTP 검증자는 user$.spare4에서 'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>' 형식으로 캡처됩니다. 통합 Extract는 사용자 DDL 문 생성을 위해 12c에서 다음 DDL를 반환합니다.

Replicat가 Oracle 12c에 대해 실행되는 경우 이러한 형식의 CREATE USER가 RDBMS 레벨에서 처리되지만, Replicat가 Oracle 10g 또는 11에 대해 실행되는 경우 RDBMS에서 이러한 폼을 처리하지 않습니다. Oracle 10g는 약한 검증자만 허용하지만, Oracle 11g는 S:SHA-1 및 약한 검증자만 허용합니다.

Oracle 12c에 연결된 Extract에 대해 생성된 CREATE USER DDL이 Oracle 10g 또는 11g에 연결된 Replicat에서 작동하도록 허용하려면 다음과 같이 이 매개변수를 사용하여 원하지 않는 검증자를 필터링할 수 있습니다.

WARNONLARGEDDL

이 옵션은 Extract에 적합합니다.

DDL가 BUFFER 크기를 초과하면 비정상 종료 없이 Extract에 대한 경고 메시지를 생성할 수 있습니다.

예제

예 1

다음은 소스 세션 스키마를 대상의 다른 스키마에 매핑할 수 있도록 MAPSESSIONSCHEMA가 작동하는 방식을 보여줍니다.

Extract 및 Replicat에서 다음 DDL 캡처 및 매핑 구성을 가정합니다.

추출:

DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;

Replicat:

DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST
DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1
MAP SRC.*, TARGET DST.*;
MAP SRC1.*, TARGET DST1.*;
DDL INCLUDE OBJNAME DST.* INCLUDE OBJNAME DST1.*

다음 DDL 문은 소스에서 로그인한 사용자에 의해 실행된다고 가정합니다.

ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;

Replicat는 다음과 같이 DDL를 수행합니다(설명은 각 코드 세그먼트 앞에 있음).

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to DST, per MAPSESSIONSCHEMA, so that AS SELECT succeeds.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the DST1.TAB table AS SELECT * FROM the first table (DST.TAB).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER

MAPSESSIONSCHEMA가 없으면 SELECT * FROM TAB는 존재하지 않는 SRC.TAB 테이블에서 선택을 시도하고 실패합니다. 기본값은 대상 DDL 문의 부적격 객체에 소스 스키마를 적용하는 것입니다. 이 경우 DDL 문은 다음과 같으며 실패합니다.

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to SRC, because TAB in the AS SELECT is unqualified-- and SRC is the source session schema.
ALTER SESION SET CURRENT_SCHEMA=SRC;
-- Create DST1.TAB AS SELECT * from SRC.TAB (SRC=current session schema).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- SRC.TAB does not exist.
-- Abend with an error unless the error is handled by a DDLERROR statement.

예 2

다음은 DEFAULTUSERPASSWORDALIAS를 사용하여 소스 명령문에 사용된 것과 복제된 {CREATE | ALTER} USER <name> IDENTIFIED BY <password> 명령문에 대해 다른 비밀번호를 지정하는 방법을 보여줍니다. 이 예에서 별칭 ddlalias은 인증서 저장소의 target 도메인에 있습니다.

DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target