DDL
유효 기간
추출 및 복제
주: DDL 복제는 Oracle에서 Oracle 데이터베이스로, 그리고 MySQL에서 MySQL 데이터베이스로만 지원됩니다.
설명
DDL 매개변수를 사용하여 다음을 수행할 수 있습니다.
-
DDL지원 사용으로 설정 -
DDL작업 필터링 -
DDL레코드를 기반으로 처리 작업 구성
옵션 없이 사용할 경우 DDL 매개변수는 필터링을 수행하지 않으며 다음과 같이 모든 DDL 작업이 전달됩니다.
-
Extract 매개변수는 지원되는 모든 데이터베이스 객체에 대해 생성되는 지원되는 모든
DDL작업을 캡처하여 트레일로 전송합니다. -
Replicat 매개변수는 Oracle GoldenGate 추적에서 모든
DDL작업을 복제하고 대상에 적용합니다. 이 파라미터가 없는 기본 동작과 동일합니다.
옵션과 함께 사용할 경우 DDL 매개변수는 다음을 기반으로 DDL 작업을 포함하거나 제외하는 필터링 에이전트 역할을 합니다.
-
범위
-
객체 유형
-
작업 유형입니다.
-
객체명
-
DDL명령 구문이나 주석 또는 둘 다의 문자열
하나의 DDL 매개변수만 매개변수 파일에 사용할 수 있지만 다중 포함 및 제외 옵션을 결합하여 DDL를 필수 레벨로 필터링할 수 있습니다.
-
DDL매개변수의 필터링 옵션은 트랜잭션 출처에서 수집하는 기본 추출에 적합하지만 데이터 펌프 추출에는 적합하지 않습니다. -
결합된 경우 여러 필터 옵션 사양이 논리적으로
AND문으로 연결됩니다. -
DDL문을 복제하려면 여러 옵션으로 지정된 모든 필터 조건을 충족해야 합니다. -
DDL매개변수 문에서 복합 필터링 조건을 사용하는 경우 운용 환경에서 사용하기 전에 테스트 환경에서 구성을 테스트하는 것이 좋습니다. -
자세한 내용은 예 1, "예"를 참조하십시오.
주: Extract 데이터 펌프에 DDL 매개변수를 사용하지 마십시오. 이러한 프로세스 유형은 DDL의 매핑 또는 변환을 허용하지 않으며 통과 모드에서 DDL 레코드를 자동으로 전파합니다. 소스 테이블(예: ALTER TABLE TableA...)에서 수행되는 DDL은 동일한 테이블 이름(ALTER TABLE TableA)으로 Replicat에 의해 적용됩니다. ALTER TABLE TableB로 매핑할 수 없습니다.
Oracle GoldenGate DDL 지원 사용 방법에 대한 자세한 내용은 Oracle GoldenGate Microservices Documentation에서 Oracle: DDL Replication 및 MySQL: DDL Replication을 참조하십시오.
구문
DDL [
{AUTOSCHEMA}
{INCLUDE | EXCLUDE}
[, ALLOWEMPTYOBJECT]
[, ALLOWEMPTYOWNER]
[, MAPPED | UNMAPPED | OTHER | ALL]
[, OPTYPE <type>]
[, OBJTYPE '<type>']
[, OBJNAME <name>]
[, INSTR '<string>']
[, INSTRWORDS '<word_list>']
[, INSTRCOMMENTS '<comment_string>']
[, INSTRCOMMENTSWORDS '<word_list>']
[, SOURCECATALOG <catalog> | ALLCATALOGS]
[, STAYMETADATA]
[, EVENTACTIONS (<action>)]
]
[...]
AUTOSCHEMA
MySQL에서 Oracle로, Oracle에서 MySQL로, MySQL에서 MySQL으로의 데이터 복제에 적합합니다.
DDL AUTOSCHEMA 매개변수 옵션은 자동 스키마 전개 기능을 사용으로 설정하는 데 사용됩니다. 기본적으로 이 옵션은 사용 안함으로 설정됩니다.
구문
DDL AUTOSCHEMA
MAPPED DDL 작업만 자동 스키마 전개와 관련이 있습니다. 따라서 포함/제외 기준에서 OBJNAME 절의 일부로 지정된 객체 이름은 소스 테이블 이름이 아닌 대상 테이블 이름과 일치해야 합니다.
Replicat 매개변수 파일에서 OBJNAME를 MAPPED와 함께 사용하는 경우 OBJNAME에 대한 값은 MAP 문의 TARGET 절로 지정된 이름을 참조해야 합니다.
자세한 내용은 자동 스키마 전개 사용을 참조하십시오.
INCLUDE | EXCLUDE
DDL 필터링 옵션
다음 구문 옵션을 사용하면 Oracle GoldenGate에 의해 복제된 DDL에서 필터링 및 작동할 수 있습니다. 이러한 옵션은 DDL 매개변수의 INCLUDE 및 EXCLUDE 절과 DDL 복제를 지원하는 기타 매개변수에 적용됩니다.
포함 또는 제외 절의 시작을 식별하려면 INCLUDE 또는 EXCLUDE를 사용합니다.
-
포함 절에는 이 매개변수가 영향을 줄
DDL를 식별하는 필터링 조건이 포함되어 있습니다. -
제외 절은 이 매개변수에서 특정
DDL를 제외하는 필터링 조건을 포함합니다.
포함 또는 제외 절은 INCLUDE 또는 EXCLUDE 키워드와 DDL 매개변수의 다른 필터링 옵션의 적합한 조합으로 구성되어야 합니다.
EXCLUDE를 사용하는 경우 해당 INCLUDE 절을 생성해야 합니다. 예를 들어, 다음 항목이 잘못되었습니다.
DDL EXCLUDE OBJNAME "hr".*
그러나 다음을 사용할 수 있습니다.
DDL INCLUDE ALL, EXCLUDE OBJNAME "hr"."*"
DDL INCLUDE OBJNAME fin.* EXCLUDE OBJNAME "fin.ss"
EXCLUDE는 동일한 조건이 포함된 INCLUDEs보다 우선합니다. 여러 포함 및 제외 절을 사용할 수 있습니다.
DDL 매개변수, TABLE 매개변수, MAP 매개변수 또는 TABLEEXCLUDE 또는 MAPEXCLUDE 매개변수에 설치된 Oracle GoldenGate DDL 객체를 포함하지 마십시오. 해당 매개변수의 와일드카드 사양에 Oracle GoldenGate에서 설치한 DDL 객체가 포함되지 않았는지 확인합니다. 이러한 객체는 Oracle GoldenGate 구성에 포함되지 않아야 하지만 Extract 프로세스는 해당 객체에 대한 작업을 인식해야 하며, 따라서 EXCLUDE, TABLEEXCLUDE 또는 MAPEXCLUDE 매개변수 문을 사용하여 구성에서 명시적으로 제외하면 안 됩니다.
ALLOWEMPTYOBJECT
ALLOWEMPTYOBJECT를 사용하여 OBJNAME 지정이 객체 이름을 포함하지 않는 DDL를 처리하도록 허용합니다. 예:
DDL INCLUDE OBJNAME sch.* ALLOWEMPTYOBJECT
ALLOWEMPTYOWNER
ALLOWEMPTYOWNER를 사용하여 OBJNAME 사양이 소유자 이름을 포함하지 않는 DDL를 처리하도록 허용합니다. 예:
DDL INCLUDE OBJNAME pdb.sch.* ALLOWEMPTYOWNER
EVENTACTIONS (action)
추출 또는 복제 프로세스가 트랜잭션 로그 또는 추적(이벤트 레코드라고 함)의 DDL 레코드를 기반으로 정의된 작업을 수행합니다. DDL 레코드가 Extract 또는 데이터 펌프에 의해 트레일에 기록되거나 DDL 매개변수의 다른 필터링 옵션에 의해 결정된 대로 Replicat에 의해 실행될 수 있는 경우 DDL 이벤트가 트리거됩니다. 이 시스템을 사용하여 데이터베이스 이벤트를 기반으로 처리를 사용자정의할 수 있습니다.
<action>의 경우 MAP 및 TABLE 매개변수 아래의 EVENTACTIONS를 참조하십시오.
DDL 레코드에서 EVENTACTIONS를 사용하기 위한 지침:
-
CHECKPOINTBEFORE: 각DDL레코드는 독립적이므로DDL레코드는 트랜잭션의 시작이 보장되므로DDL레코드에 대해CHECKPOINT BEFORE이벤트 작업이 암시됩니다. -
IGNORE: 이 옵션은DDL레코드에 대해 유효하지 않습니다.DDL작업은 독립적이므로 레코드를 무시하는 것은 전체 트랜잭션을 무시하는 것과 같습니다.
EVENTACTIONS는 파생된 객체이므로 다음 DDL 객체를 지원하지 않습니다.
-
인덱스
-
triggers
-
동의어
-
테이블의
RENAME및ALTER TABLE RENAME
MAPPED | UNMAPPED | OTHER | ALL
MAPPED, UNMAPPED, OTHER 및 ALL를 사용하여 DDL 작업 범위에 따라 INCLUDE 또는 EXCLUDE를 적용합니다.
-
MAPPED는MAPPED범위의DDL작업에INCLUDE또는EXCLUDE를 적용합니다.MAPPED필터링은 다른DDL매개변수 옵션으로 지정된 필터링 전에 수행됩니다. -
UNMAPPED는UNMAPPED범위의DDL작업에INCLUDE또는EXCLUDE를 적용합니다. -
OTHER는OTHER범위의DDL작업에INCLUDE또는EXCLUDE를 적용합니다. -
ALL는 모든 범위의DDL작업에INCLUDE또는EXCLUDE를 적용합니다.
DDL EXCLUDE ALL는 DDL 작업 자체의 복제를 차단하면서 Oracle GoldenGate에 대한 최신 객체 메타데이터를 유지 관리하는 특수 처리 옵션입니다. DDL EXCLUDE ALL는 Oracle GoldenGate 이외의 메소드를 사용하여 대상에 DDL를 적용할 수 있지만, Oracle GoldenGate가 대상 객체에 데이터 변경사항을 복제하도록 할 때 사용할 수 있습니다. 객체가 변경될 때 Oracle GoldenGate에 현재 메타데이터를 제공하므로 Oracle GoldenGate 프로세스를 정지 및 시작할 필요가 없습니다. DDL EXCLUDE ALL에는 다음과 같은 특수 조건이 적용됩니다.
-
DDL EXCLUDE ALL에는INCLUDE절을 사용할 필요가 없습니다. -
DDL EXCLUDE ALL를 사용할 때WILDCARDRESOLVE매개변수를IMMEDIATE로 설정하여 필요한 경우 즉시DML분석을 수행할 수 있습니다.
OBJNAME name
OBJNAME를 사용하여 객체의 전체 이름에 INCLUDE 또는 EXCLUDE를 적용합니다. 두 부분 및 세 부분 객체 이름과 와일드카드를 올바르게 지정하려면 명령 인수에 와일드카드 사용을 참조하십시오.
대소문자를 구분하는 객체 이름은 큰 따옴표로 묶습니다.
대소문자 비구분 예제:
DDL INCLUDE OBJNAME accounts.*
대소문자 구분 예제:
DDL INCLUDE OBJNAME accounts."cust"
OBJNAME에는 <owner.object> 또는 <container.owner.object>가 필요한 반면 USER에는 스키마만 있으므로 Oracle USER 객체에 OBJNAME를 사용하지 마십시오.
Replicat 매개변수 파일에서 OBJNAME를 MAPPED와 함께 사용하는 경우 OBJNAME에 대한 값은 MAP 문의 TARGET 절로 지정된 이름을 참조해야 합니다. 예를 들어, 다음 MAP 문이 제공된 경우 올바른 값은 OBJNAME fin2.*입니다.
MAP fin.exp_*, TARGET fin2.*;
다음 예제에서 CREATE TABLE 문은 <source>에서 다음과 같이 실행됩니다.
CREATE TABLE fin.exp_phone;
동일한 명령문이 대상에서 다음과 같이 실행됩니다.
CREATE TABLE fin2.exp_phone;
대상 소유자가 MAP 문에 지정되지 않은 경우 Replicat는 이를 USERIDALIAS 매개변수로 지정된 데이터베이스 사용자에게 매핑합니다.
트리거와 같은 파생 객체를 생성하는 DDL의 경우 OBJNAME의 값은 파생 객체의 이름이 아니라 기본 객체의 이름이어야 합니다.
예를 들어, 다음 DDL 문을 포함하려면 올바른 값은 hr.insert_trig가 아니라 hr.accounts입니다.
CREATE TRIGGER hr.insert_trig ON hr.accounts;
RENAME 작업의 경우 OBJNAME에 대한 값이 새 테이블 이름이어야 합니다. 예를 들어, 다음 DDL 문을 포함하려면 올바른 값은 hr.acct입니다.
ALTER TABLE hr.accounts RENAME TO acct;
OBJTYPE <type>
OBJTYPE를 사용하여 특정 유형의 데이터베이스 객체에 INCLUDE 또는 EXCLUDE를 적용합니다. <type>의 경우 데이터베이스에 적합한 객체 유형(예: TABLE, INDEX 및 TRIGGER)을 사용합니다. Oracle 구체화된 뷰 및 구체화된 뷰 로그의 경우 올바른 유형은 각각 snapshot 및 snapshot log입니다. 객체 유형의 이름을 작은 따옴표로 묶습니다. 예:
DDL INCLUDE OBJTYPE 'INDEX'
DDL INCLUDE OBJTYPE 'SNAPSHOT'
Oracle 객체 유형 USER의 경우 OBJNAME에는 owner.object 또는 <container.owner.object>가 필요하지만 USER에는 스키마만 있으므로 OBJNAME 옵션을 사용하지 마십시오.
OPTYPE <type>
OPTYPE를 사용하여 INCLUDE 또는 EXCLUDE를 CREATE, ALTER 및 RENAME와 같은 특정 유형의 DDL 작업에 적용합니다. <type>의 경우 데이터베이스에 적합한 DDL 명령을 사용합니다. 예를 들어, ALTER 연산을 포함하려면 올바른 구문은 다음과 같습니다.
DDL INCLUDE OPTYPE ALTER
INSTR string
INSTR를 사용하여 INCLUDE 또는 EXCLUDE를 명령 구문 자체 내에 특정 문자열이 포함되지만 설명 내에 포함되지 않는 DDL 문에 적용합니다. 예를 들어, 다음은 인덱스를 생성하는 DDL를 제외합니다.
DDL INCLUDE ALL EXCLUDE INSTR 'CREATE INDEX'
문자열을 작은 따옴표로 묶습니다. 문자열 검색은 대소문자를 구분하지 않습니다.
INSTR는 문자열 내에 있는 작은 따옴표(' ')를 지원하지 않으며 NULL 값을 지원하지 않습니다.
INSTRCOMMENTS comment_string
(Oracle에 적합) INSTRCOMMENTS를 사용하여 DDL 명령 자체가 아닌 주석 내에 특정 문자열이 포함된 DDL 문에 INCLUDE 또는 EXCLUDE를 적용합니다. INSTRCOMMENTS를 사용하여 설명을 필터링 에이전트로 사용할 수 있습니다.
예를 들어, 다음은 설명에 'source only' 문자열이 포함된 DDL 문을 제외합니다.
DDL INCLUDE ALL EXCLUDE INSTRCOMMENTS 'SOURCE ONLY'
이 예에서는 다음과 같은 DDL 문이 복제되지 않습니다.
CREATE USER john IDENTIFIED BY john /<source only>/;
문자열을 작은 따옴표로 묶습니다. 문자열 검색은 대소문자를 구분하지 않습니다. INSTR 및 INSTRCOMMENTS를 결합하여 명령 구문 및 동일한 DDL 문의 설명에서 문자열을 필터링할 수 있습니다.
INSTRCOMMENTS는 문자열 내에 있는 작은 따옴표(' ')를 지원하지 않으며 NULL 값을 지원하지 않습니다.
INSTRWORDS word_list
INSTRWORDS를 사용하여 지정된 단어가 포함된 DDL 문에 INCLUDE 또는 EXCLUDE를 적용합니다.
<word_list>의 경우 임의의 순서로 작은 따옴표 안에 단어를 제공합니다. 공백을 포함하려면 공백(및 해당하는 경우 단어)을 큰따옴표로 묶습니다. 큰따옴표를 사용하여 문장을 묶을 수도 있습니다.
INSTRWORDS를 적용하려면 지정된 모든 단어가 DDL에 있어야 합니다.
예제:
DDL INCLUDE OPTYPE ALTER OBJTEYP 'TABLE' INSTRWORDS 'ALTER CONSTRAINT " xyz"'
이 예에서는 다음 DDL 문과 일치합니다.
ALTER TABLE ADD CONSTRAINT xyz CHECK
ALTER TABLE DROP CONSTRAINT xyz
INSTRWORDS는 문자열 내에 있는 작은 따옴표(' ')를 지원하지 않으며 NULL 값을 지원하지 않습니다.
INSTRCOMMENTSWORDS word_list
(Oracle에 적합) INSTRWORDS와 동일한 방식으로 작동하지만 DDL 구문 자체가 아닌 DDL 문 내의 설명에만 적용됩니다. INSTRCOMMENTS를 사용하여 설명을 필터링 에이전트로 사용할 수 있습니다.
INSTRCOMMENTSWORDS는 문자열 내에 있는 작은 따옴표(' ')를 지원하지 않으며 NULL 값을 지원하지 않습니다.
INSTRWORDS 및 INSTRCOMMENTSWORDS를 결합하여 명령 구문 및 동일한 DDL 문의 설명에서 문자열을 필터링할 수 있습니다.
SOURCECATALOG catalog | ALLCATALOGS
다음 옵션을 사용하여 OBJNAME 절의 부적격 객체 이름이 올바른 컨테이너로 분석되는 방법을 지정합니다. 소스 데이터베이스가 Oracle 컨테이너 데이터베이스인 경우 이 옵션을 사용합니다.
SOURCECATALOG는 동일한 INCLUDE 또는 EXCLUDE 절에 지정된 모든 객체 이름에 대한 기본 컨테이너를 지정합니다. 적용하려면 SOURCECATALOG를 OBJNAME 사양보다 먼저 지정해야 합니다. 두 부분 이름이 포함된 명령문을 사용하는 것과 같은 자세한 내용은 "SOURCECATALOG"을 참조하십시오. 여기서 세 부분 객체 이름은 객체를 완전히 식별하는 데 필요합니다.
ALLCATALOGS는 동일한 INCLUDE 또는 EXCLUDE 절에 지정된 객체 이름을 분석할 때 데이터베이스의 모든 컨테이너를 고려하도록 지정합니다. ALLCATALOGS는 OBJNAME 사양 앞이나 뒤에 배치할 수 있습니다.
다음은 파라미터 파일에 다른 카탈로그 사양이 있을 때 제공되는 우선 순위입니다.
-
INCLUDE또는EXCLUDE절의ALLCATALOGS는INCLUDE또는EXCLUDE절과 매개변수 파일의 루트에 있는 모든SOURCECATALOG사양을 무효화하고,OBJNAME절에 있는 전체 객체 이름의 컨테이너 사양을 무효화합니다. -
OBJNAME절의 명시적 카탈로그 지정은ALLCATALOGS가 아닌SOURCECATALOG의 모든 인스턴스를 무효화합니다. -
INCLUDE또는EXCLUDE절의SOURCECATALOG는TABLE또는MAP문의 루트에 지정된 전역SOURCECATALOG매개변수를 무효화합니다. -
INCLUDE또는EXCLUDE절이SOURCECATALOG또는ALLCATALOGS를 지정하지 않은 경우 전역SOURCECATALOG매개변수는OBJNAME절의 부적격 객체 이름에 적용됩니다. -
위의 파라미터가 없으면 모든 카탈로그가 고려됩니다.
STAYMETADATA
(Oracle의 경우 적합합니다). 메타데이터가 Extract에 의해 캡처되거나 Replicat에 의해 적용되지 않도록 합니다.
Extract가 테이블에서 DML를 처음 발견하면 해당 테이블의 메타데이터가 검색됩니다. 해당 테이블에서 DDL가 발견되면 이전 메타데이터가 무효화됩니다. 해당 테이블의 다음 DML는 새 메타데이터와 일치하므로 대상 테이블 구조는 항상 소스의 구조와 최신 상태입니다.
그러나 특정 DDL 작업이 테이블의 메타데이터에 영향을 주지 않는다는 것을 알고 있는 경우 현재 메타데이터가 검색되거나 복제되지 않도록 STAYMETADATA를 사용할 수 있습니다. 이와 같이 성능이 향상되어 임포트 및 익스포트와 같은 작업에 도움이 됩니다. 이러한 작업에서는 DDL를 자르고 제약 조건을 사용 안함으로 설정하는 경우가 많습니다. 이러한 작업은 후속 데이터 복제의 무결성과 관련이 있으므로 테이블 구조에 영향을 주지 않으므로 이러한 경우에는 무시해도 됩니다. 예를 들어, ALTER TABLE ADD FOREIGN KEY는 테이블 메타데이터에 영향을 주지 않습니다.
이를 선택적으로 적용할 수 있는 방법의 예는 다음과 같습니다.
DDL INCLUDE ALL INCLUDE STAYMETADATA OBJNAME xyz
이 예에서는 모든 DDL가 복제에 포함되지만 xyz 객체에서 작동하는 DDL만 STAYMETADATA에 적용됨을 나타냅니다.
STAYMETADATA도 EXCLUDE 절에서 동일한 방법으로 사용할 수 있습니다.
STAYMETADATA는 메타데이터 무결성을 보장하기 위해 소스 및 대상에서 동일한 방식으로 사용해야 합니다.
STAYMETADATA를 사용 중인 경우 보고서 파일에 메시지가 추가됩니다. DDL 보고는 REPORT 옵션을 사용하여 DDLOPTIONS 매개변수로 제어됩니다.
이 동일한 기능은 @ddl_staymetadata 스크립트를 사용하여 소스에서 발생하는 모든 DDL에 전역적으로 적용할 수 있습니다.
-
@ddl_staymetadata_on는 전역적으로 메타데이터 버전 지정을 해제합니다. -
@ddl_staymetadata_off는 전역적으로 메타데이터 버전 지정을 다시 사용으로 설정합니다.
이 옵션은 Oracle GoldenGate 기술 지원 직원의 지원과 함께 사용해야 합니다. DDL가 객체 메타데이터에 영향을 미치는 것이 항상 분명하지는 않을 수 있기 때문입니다. 부적절하게 사용되는 경우 복제 환경의 무결성이 손상될 수 있습니다.
예제
다음은 다양한 사용 사례의 몇 가지 예입니다.
예제 1: DDL AUTOSCHEMA 사용
-
예제 A:
소스 스키마
atssrc및 대상 스키마atstgt의 모든 테이블에 대해AUTOSCHEMA를 사용으로 설정하려면 다음과 같이 하십시오.DDL AUTOSCHEMA INCLUDE ALL MAP atssrc.*, TARGET atstgt.*; -
예제 B:
DDL AUTOSCHEMA INCLUDE/EXCLUDE OPTYPE 절을 사용하여 DDL 유형을 기반으로 필터링(예제 1에 표시된 것과 유사)을 사용으로 설정할 수도 있습니다.
예를 들어, hr 스키마에 대해 AUTOSCHEMA를 사용으로 설정하지만 finance 스키마를 제외하려면 다음 스크립트를 사용합니다.
DDL AUTOSCHEMA &
INCLUDE OBJNAME hr.* &
EXCLUDE OBJNAME finance.*
MAP hr.*, TARGET hr.*;
MAP finance.*, TARGET finance.*;
-
예제 C:
모든 테이블에 대해
AUTOSCHEMA를 사용으로 설정하고 사용자정의TYPEMAP를 사용하여 모든 테이블에 적용 가능한 모든 소스int유형 열에 대해 대상 테이블에서bigint를 사용합니다.DDL AUTOSCHEMA INCLUDE ALL AUTOSCHEMAOPTIONS TYPEMAP 'int'= 'bigint' MAP atssrc.*, TARGET atstgt.tgt_* -
예제 D:
모든 테이블에 대해
AUTOSCHEMA를 사용으로 설정하고 사용자정의TYPEMAP를 사용하여 모든 테이블에 적용할 수 있는 모든 소스int유형 열에 대해 대상 테이블에서bigint를 사용하지만,smallint를 소스int에 대한 대상 열 유형으로 사용하려면 재무 스키마 아래의 모든 테이블을 입력합니다.DDL AUTOSCHEMA INCLUDE ALL AUTOSCHEMAOPTIONS TYPEMAP 'int'= 'bigint' MAP hr.*, TARGET hr.*; MAP finance.*, TARGET finance.*, AUTOSCHEMAOPTIONS (TYPEMAP 'smallint'='bigint');<–>
예제 2: DDL 매개변수 옵션 결합
다음은 DDL 매개변수의 옵션을 결합하는 방법의 예입니다.
DDL &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE 'table' &
OBJNAME users.tab* &
INCLUDE MAPPED OBJNAME * &
EXCLUDE MAPPED OBJNAME temporary.tab
이 명령문의 결합된 필터 조건은 다음을 지정합니다.
-
INCLUDETABLE또는MAP문(UNMAPPED범위)으로 매핑되지 않지만 해당 테이블이users소유이고 이름이tab로 시작하는 경우에만 해당 테이블에 대한 모든ALTER TABLE문 -
INCLUDETABLE또는MAP문(MAPPED범위)으로 매핑된 모든 테이블에 대한 모든DDL작업 유형 -
EXCLUDE범위 내MAPPED인 모든 테이블에 대한 모든DDL작업 유형(해당 테이블이temporary에서 소유하고 이름이tab로 시작하는 경우에만 해당)
예 3: 이벤트 작업 포함
다음 예에서는 모든 DDL 레코드에 대해 REPORT의 이벤트 작업을 지정합니다.
DDL INCLUDE ALL EVENTACTIONS (REPORT)
예 4: DDL의 하위 세트에서 이벤트 작업 사용
다음 예에서는 DDL의 하위 세트에서 EVENTACTIONS를 사용하는 방법을 보여줍니다. 모든 DDL는 복제되지만 명시적으로 이름이 지정된 객체에서 실행되는 DDL만 REPORT 및 LOG의 이벤트 작업을 트리거할 수 있습니다.
DDL INCLUDE ALL &
INCLUDE OBJNAME sales.t* EVENTACTIONS (REPORT) &
INCLUDE OBJNAME fin.my_tab EVENTACTIONS (LOG INFO)
예제 5: <source> Oracle 컨테이너 데이터베이스의 객체에 대해 실행되는 DDL에 대해 <catalog> 이름을 지정하는 다양한 방법
다음 예제는 소스 Oracle 컨테이너 데이터베이스의 객체에 대해 실행되는 DDL에 대한 카탈로그 이름을 지정하는 다양한 방법을 보여줍니다.
- 다음은
DDL처리를 위한pdb1.sch1.obj1및pdb2.sch2.obj2입니다.
SOURCECATALOG pdb1
DDL INCLUDE OBJNAME sch1.obj1 INCLUDE SOURCECATALOG pdb2 OBJNAME sch2.obj2
- 다음은
DDL처리를 위해 모든 카탈로그에서 이름이sch.obj인 모든 객체를 포함합니다.
DDL INCLUDE ALLCATALOGS OBJNAME sch.obj
ALLCATALOGS는 다른 카탈로그 사양을 대체하므로DDL처리를 위해 카탈로그에 이름이sch.obj인 모든 객체를 포함합니다.
DDL INCLUDE ALLCATALOGS OBJNAME pdb.sch.obj
예제 6: ALLOWEMPTYOBJECT 및 ALLOWEMPTYOWNER의 조합된 사용을 보여줍니다.
다음은 ALLOWEMPTYOBJECT 및 ALLOWEMPTYOWNER의 결합된 사용을 보여줍니다.
DDL INCLUDE pdb.*.* ALLOWEMPTYOWNER ALLOWEMPTYOBJECT