ProSync ์ฌ์ฉ์๋ ์ ์ฉ ํ๋ก์ธ์ค์ ์ค์ ํ์ผ์์ DDL ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ ์ ์๋ค. DDL ํ๋ผ๋ฏธํฐ๋ ๋๊ธฐํ ํ DDL์ ๋ํ ์ค์ ์ด๋ค.
DDL ํ๋ผ๋ฏธํฐ๋ ํ๋ ์ด์์ DDL Rule ๋ฌธ์ฅ์ผ๋ก ๊ตฌ์ฑ๋๋ค. DDL Rule์๋ DDL ๋๊ธฐํ๋ฅผ ํฌํจ/๋ฐฐ์ ํ ๋์๊ณผ DDL ์ข ๋ฅ๋ฅผ ๋ช ์ํ ์ ์๋ค.
DDL=([SET] [RANGE], TYPE=('[DDL OPERATION] [DDL OBJECT]', ...))[SET]
INCLUDE ๋๋ EXCLUDE๋ฅผ ๋ช ์ํ ์ ์๋ค.
INCLUDE: ๊ธฐ์ ๋ ๊ท์น์ ๋ํด ๋๊ธฐํํ๋ค.
EXCLUDE: ๊ธฐ์ ๋ ๊ท์น์ ๋ํด ๋๊ธฐํํ์ง ์๋๋ค. ์ด๋ ํ INCLUDE๋ณด๋ค EXCLUDE๋ฅผ ์ฐ์ ์ํ๋ค.
๋ค์์ Source DB์ ๋ฐ๋ผ ์ค์ ๊ฐ๋ฅํ [DDL OPERATION]๊ณผ [DDL OBJECT]์ ์กฐํฉ์ด๋ค.
๋ค์์ ๋ชจ๋ ์คํค๋ง์ ๋ํด์ ๋ชจ๋ ์ข ๋ฅ์ DDL ๋๊ธฐํ๋ฅผ ํ์ง๋ง, ์คํค๋ง EXCLUDED_USR์ ๋ชจ๋ ํ ์ด๋ธ์ ๋ํ DDL ๋๊ธฐํ๋ ๋ฐฐ์ ํ๋ ์์ ์ด๋ค.
๋ค์์ ๋๊ธฐํ ๋์ ํ ์ด๋ธ์ ๋ํด TABLE์ ๋์์ผ๋ก ํ๋ DDL์ ๋๊ธฐํํ๊ณ , INCLUDED_USR์ ๋ชจ๋ ์ค๋ธ์ ํธ ์ด๋ฆ์ ๋ํด INDEX๋ฅผ ๋์์ผ๋ก ํ๋ DDL์ ๋๊ธฐํํ๋ค. ๋ฐ๋ฉด, ์ค๋ธ์ ํธ ์ด๋ฆ์ด EXCLUDED_USR.IDX1์ผ ๊ฒฝ์ฐ INDEX๋ฅผ ๋์์ผ๋ก ํ๋ DDL์ ๋๊ธฐํํ์ง ์๋๋ค.
๋ค์์ SRCUSR์ ๋ชจ๋ ํ ์ด๋ธ์ ๋ํด TYPE์ ํด๋น๋๋ DDL์ ๋๊ธฐํํ์ง๋ง, SRCUSR.T1์ ๋ํด์๋ DROP TABLE๊ณผ CREATE TABLE์ ํด๋น๋๋ DDL์ ๋๊ธฐํํ์ง ์๋๋ค.
DDL ๋ฌธ์ฅ ํฌ๊ธฐ ๋๊ธฐํ ํ DDL ๋ฌธ์ฅ์ ๊ฐ ์์๋ 128๊ธ์๋ฅผ ๋์ ์ ์๋ค.
์ค์ ์ ํ์ธ DDL ํ๋ผ๋ฏธํฐ์ ๋์๊ณผ, ๋๊ธฐํ ํ DDL ์ข ๋ฅ๊ฐ ์ ํํ์ง Wildcard๋ฅผ ๊ณ ๋ คํ์ฌ ํ์ธํ๊ณ ์ค์ ํ๋ค. ๋ค๋ฅธ DB๋ ๋์์๊ฒ ๋จผ์ ์ ์ฉํด๋ณด๊ณ ์ค์ ํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
CREATE TABLE ์ดํ ๋๊ธฐํ CREATE TABLE์ ๋ํ DDL ๋๊ธฐํ ํ ์์ฑ๋ ํ ์ด๋ธ์ DML ๋๊ธฐํ ํ๋ ค๋ฉด ์๋์ผ๋ก ๋๊ธฐํ ๋์ ์ถ๊ฐ๋ฅผ ํด์ผํ๋ค. ๋ฐ๋ฉด DDL์ Rule์ ์ํด ์์ฑ๋ ์งํ๋ถํฐ ๋๊ธฐํ ๋ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํ๋ค.
implicit DDL CREATE TABLE์ ๋ํ DDL ๋๊ธฐํ ์คํ ์ค ์ปฌ๋ผ์ PRIMARY KEY๋ก ์ธํด INDEX ์์ฑ์ด ๋๋ ๊ฒ์ฒ๋ผ ๋ช ์๋์ง ์์ DDL์ implicit DDL์ด๋ผ ํ๋ฉฐ, ๋๊ธฐํ ์ค์ ํ ๋ ์ด๋ฅผ ์ฃผ์ํ๋ค.
COMMENT ON
-
TRUNCATE
TABLE
RENAME ์ง์ DDL ์ค RENAME์ ์ง์ํ์ง ์๋๋ค. ALTER ... RENAME์ ์ด์ฉํ DDL ๊ตฌ๋ฌธ์ ALTER๋ฅผ ๋๊ธฐํ ์ค์ ํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
ORACLE LOGMNR Source DB๊ฐ Oracle, logmnr ๋ฅผ ์ฌ์ฉํ ๋ ๋๊ธฐํ ๋์์ ๋ํ DDL ๋๊ธฐํ๋ง ์ง์ํ๋ค.
INDEX / CONSTRAINTS ๊ด๋ จ ์ฃผ์์ฌํญ INDEX / CONSTRAINTS์ ๊ฒฝ์ฐ SRC/TAR DB์์ ์ด๋ฆ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ ๋๊ธฐํ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
DDL ์ค์ ์กฐํฉ ๋ณต์ ๊ฐ์ DDL ๋ฃฐ์ ๋ํ ์ค์ ์ ์๋์ ๊ฐ์ ํํ๋ก ๋ช ์ํ๋ค.
DDL=([SET] [RANGE], TYPE=('[DDL OPERATION] [DDL OBJECT]', ...)
[SET] [RANGE], TYPE=('[DDL OPERATION] [DDL OBJECT]', ...) ....)OBJECT ๋๊ธฐํ DDL ๋๊ธฐํ์ ๊ฒฝ์ฐ INCLUDE DEFAULT ์ฌ์ฉ ์ ์ค๋ธ์ ํธ์ ๋ํ DDL ๋๊ธฐํ๋ ์ํ๋์ง ์์ผ๋ฉฐ, ์ค๋ธ์ ํธ์ ๋ํ DDL ๋๊ธฐํ ์ํ์ ์ํ๋ ๊ฒฝ์ฐ ์ง์ ๋ช ์ํด์ผํ๋ค
์คํค๋ง ๋ฏธ๋ช ์ DDL ๊ตฌ๋ฌธ์ ๋๊ธฐํ ์ ํ DDL ๊ตฌ๋ฌธ์์ ๋์ ๊ฐ์ฒด์ ์คํค๋ง(Schema) ๊ฐ ๋ช ์๋์ง ์์ ๊ฒฝ์ฐ, ํด๋น ๊ตฌ๋ฌธ์ ๋๊ธฐํ๊ฐ ์ํ๋์ง ์๋๋ค. ๋ฐ๋ผ์ ์คํค๋ง๋ฅผ ๋ช ์ํ ํํ์ DDL ๊ตฌ๋ฌธ์ผ๋ก ์์ฑํด์ผ๋ง ๋๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
์์
CREATE TABLE TEST_TABLE2 (
c1 NUMBER,
CONSTRAINT fk_test FOREIGN KEY (c1) REFERENCES [์คํค๋ง๋ช
].TEST_TABLE1 (c1)
);SYS ์คํค๋ง DDL ๋๊ธฐํ ์ ์ฝ์ฌํญ ์คํค๋ง๊ฐ SYS์ธ ๊ฒฝ์ฐ, ํด๋น ์คํค๋ง๋ฅผ ๋์์ผ๋ก ์ํ๋๋ ๋ชจ๋ DDL์ ๋๊ธฐํ ์ Skip ์ฒ๋ฆฌ๋๋ค.
์คํค๋ง ๋น์ข ์ ๊ฐ์ฒด(Non-Schema Object) ๋๊ธฐํ ์ ์ฝ์ฌํญ
TABLESPACE, DIRECTORY, DATABASE LINK, ROLE, LIBRARY ๊ฐ์ฒด๋ ํน์ ์คํค๋ง์ ์ข ์๋์ง ์๋ ๊ฐ์ฒด๋ก, DDL ๋๊ธฐํ ์ INCLUDE ALL ์ต์ ์ด ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ๋๊ธฐํ๋ฅผ ์ง์ํ๋ค. INCLUDE DEFAULT์ธ ๊ฒฝ์ฐ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์๋๋ค.
Password ํฌํจ DDL ๋๊ธฐํ ์ ์ฝ์ฌํญ
CREATE ROLE, ALTER ROLE, CREATE PUBLIC DATABASE LINK ๋ฑ ๋น๋ฐ๋ฒํธ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์๋ DDL ๋ฌธ์ฅ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ช ์ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง DDL ๋๊ธฐํ๋ฅผ ์ง์ํ๋ค.
[RANGE]
ALL ๋๋ DEFAULT ์ค ํ๋๋ฅผ ๋ช ์ํ๊ฑฐ๋, DB์ ์ค๋ธ์ ํธ ์ด๋ฆ์ ์ง์ ๋ช ์ํ ์ ์๋ค.
ALL: ๋ชจ๋ ์คํค๋ง, ํ ์ด๋ธ์ ๋ํด ์ ์ฉ๋๋ค.
DEFAULT: ๋ชจ๋ ๋๊ธฐํ ๋์ ํ ์ด๋ธ์ ๋ํด ์ ์ฉ๋๋ค.
์ค๋ธ์ ํธ ์ด๋ฆ์ ์ง์ ๋ช ์: ๋์์ ๋ํด ์ ์ฉ๋๋ค.
TYPE
TYPE์ ํ๋ ์ด์์ DDL OPERATION๊ณผ DDL OBJECT ์์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์ง์ ๋์ด ์์ง ์๋ ๊ฒฝ์ฐ, Wildcard๋ก ์ฒ๋ฆฌํ๋ค.
[DDL OPERATION]
Rule์ ์ ์ฉํ DDL ์ข ๋ฅ๋ฅผ ๋ช ์ํ๋ค.
[DDL OBJECT]
Rule์ ์ ์ฉํ DDL ์ข ๋ฅ์ ๋ํ ๋์์ ๋ช ์ํ๋ค.
CREATE
ALTER
DROP
COMMENT ON
TABLE
INDEX
TRIGGER
SEQUENCE
VIEW
FUNCTION
PACKAGE
PACKAGE BODY
PROCEDURE
SYNONYM
PUBLIC SYNONYM
TRUNCATE
TABLE
CREATE
TABLE
INDEX
TRIGGER
SEQUENCE
VIEW
MVIEW
FUNCTION
PACKAGE
PACKAGE BODY
PROCEDURE SYNONYM
PUBLIC SYNONYM TABLESPACE DIRECTORY MLOG
ROLE (โ Password ํฌํจ DDL ๋๊ธฐํ ์ ์ฝ์ฌํญ ์ฐธ์กฐ)
PUBLIC DATABASE LINK (โ Password ํฌํจ DDL ๋๊ธฐํ ์ ์ฝ์ฌํญ ์ฐธ์กฐ)
LIBRARY TYPE TYPEBODY
ALTER
TABLE
INDEX
TRIGGER
SEQUENCE
VIEW
MVIEW
FUNCTION
PACKAGE
PACKAGE BODY
PROCEDURE SYNONYM
PUBLIC SYNONYM TABLESPACE DIRECTORY MLOG
ROLE (โ Password ํฌํจ DDL ๋๊ธฐํ ์ ์ฝ์ฌํญ ์ฐธ์กฐ) TYPE TYPEBODY
DROP
DDL=(
INCLUDE ALL, TYPE=('%')
EXCLUDE EXCLUDED_USR.%, TYPE=('%')
)DDL=(
INCLUDE DEFAULT, TYPE=('% TABLE')
INCLUDE INCLUDED_USR.%, TYPE=('% INDEX')
EXCLUDE EXCLUDED_USR.IDX1, TYPE=('% INDEX')
)DDL=(
INCLUDE SRCUSR.%, TYPE=('DROP TABLE', 'ALTER TABLE', 'TRUNCATE TABLE')
EXCLUDE SRCUSR.T1, TYPE=('DROP TABLE', 'CREATE TABLE')
)์ฃผ์ DDL=(INCLUDE ALL, TYPE=('%'))์ค์ ์, Source DB์ ๋ชจ๋ ์คํค๋ง์์ ์ํ๋๋ ๋ชจ๋ ํ์ ์ DDL์ด ๋๊ธฐํ๋๋ค. ๋๊ธฐํ ๋์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ DDL์ด ์ ์ฉ๋๋ฏ๋ก ์ฌ์ฉ ์ ์ฃผ์๊ฐ ํ์ํ๋ค. ์ถ๊ฐ์ ์ผ๋ก INCLUDE ALL๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ ์ค์น๋ Instance ๋ ๋จ์ผ Instance ๋ก ๊ตฌ์ฑ๋์ด์ผ ํ๋ค.
TABLE
INDEX
TRIGGER
SEQUENCE
VIEW
MVIEW
FUNCTION
PACKAGE
PACKAGE BODY
PROCEDURE
SYNONYM
PUBLIC SYNONYM TABLESPACE DIRECTORY MLOG
ROLE
DATABASE LINK
ํ ์ด๋ธ, ์ปฌ๋ผ ๋งคํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํ
ํ
์ด๋ธ, ์ปฌ๋ผ ๋งคํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ $PRS_HOME/config ๋๋ ํฐ๋ฆฌ์ Apply config file์ธ '[INST_ID]_apply1.cfg'๋ฅผ ์ค์ ํ๋ค.
๋ค์์ ์ค์ ํด์ผ ํ ํ๋ผ๋ฏธํฐ์ ๋ํ ์ค๋ช ์ด๋ค.
๊ธฐ๋ณธ MAP ํ๋ผ๋ฏธํฐ์ Source DB์ ํน์ ํ ์ด๋ธ์ Target DB์ ํน์ ํ ์ด๋ธ๋ก ๋๊ธฐํํ๊ธฐ ์ํ ๊ท์น์ ์ค์ ํ๋ค.
MAP=([SYNC OPTION] SOURCE_USER.SOURCE_TABLE [SOURCE_COLUMNS]
[COLUMN FILTERING OPTION],
[TARGET_DATABASE.]TARGET_USER.TARGET_TABLE [TARGET_COLUMNS]
[RESOLVE OPTION] [SKIP OPTION]))๋ค์์ MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํด์ ๋๊ธฐํ ๋์ ๋ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ ์ด๋ค.
๋ค์์ Source DB์ PROSYNC1 ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ Target DB์ PROSYNC2 ์ฌ์ฉ์์ T2 ํ ์ด๋ธ๋ก ๋๊ธฐํํ๋ ์์ ์ด๋ค.
๋ค์์ Source DB์ PROSYNC1 ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ ์ปฌ๋ผ C1, C2, C3๊ฐ ์๊ณ , ์ด์ค C1์ C2 ์ปฌ๋ผ๋ง Target DB์ PROSYNC2 ์ฌ์ฉ์์ T2 ํ ์ด๋ธ์ C1, C2 ์ปฌ๋ผ๊ณผ ๋๊ธฐํํ๋ ์์ ์ด๋ค.
๋ค์์ Source DB์ PROSYNC1 ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ ์ปฌ๋ผ C1, C2, C3๊ฐ ์๊ณ , ์ด์ค C1์ C2 ์ปฌ๋ผ๋ง Target DB์ PROSYNC2 ์ฌ์ฉ์์ T2 ํ ์ด๋ธ์ D1, D2 ์ปฌ๋ผ๊ณผ ๋๊ธฐํํ๋ ์์ ์ด๋ค.
๋๊ธฐํ ํ ์ด๋ธ ์ฌ์ฉ์ฌ๋ถ๋ฅผ ์ค์ ํ๋ค.
๋๊ธฐํ ํ ์ด๋ธ์ ์ง์ ํ๋ ๊ฒฝ์ฐ SYNC OPTION์ TABLE์ ์ค์ ํ๋ค.
๋๊ธฐํ ๋์์ด ์๋ ์ค๋ธ์ ํธ์ DDL ๋งคํ์ ์ง์ ํ๋ ๊ฒฝ์ฐ SYNC OPTION์ OBJECT๋ฅผ ์ค์ ํ๋ค.
๋๊ธฐํ ๋์ ํ ์ด๋ธ์ ๋ํด์๋ ์์ ์ค๋ช ํ TABLE ๊ท์น์ ๋ฐ๋ผ DDL ๋งคํ์ด ์ง์๋๋ฉฐ, TABLE ๊ท์น์ด ๋ช ์๋์ง ์์ ๊ฒฝ์ฐ ๋งคํ ์์ด ๋๊ธฐํ๋๋ค. ๋๊ธฐํ ๋์์ผ๋ก ์ค์ ํ ์ ์๋ INDEX ๋ฑ์ OBJECT๋ ๋๊ธฐํ ๋์์ด ์๋ ํ ์ด๋ธ์ ๋ํด์๋ง ํด๋น ๊ท์น์ผ๋ก ์ค์ ํ ์ ์๋ค. OBJECT ๊ท์น์ ๋ํด์๋ ๋ฐ๋์ ์์ ํํ๋ก๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. OBJECT_NAME์ ์์ผ๋ ์นด๋๋ก '%'๋ฅผ ์ ๋ ฅํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ [SOURCE_USER]์ ์์์ OBJECT [SOURCE_USER].[OBJECT_NAME]์ [TARGET_USER].[OBJECT_NAME]์ DDL ๋งคํํ์ฌ DDL์ ๋๊ธฐํํ๋ค.
๋๊ธฐํ๋ฅผ ์ ์ธํ ํ ์ด๋ธ์ ์ง์ ํ๋ ๊ฒฝ์ฐ SYNC OPTION์ EXCLUDE๋ฅผ ์ค์ ํ๋ค.
Source DB์ PROSYNC ์ฌ์ฉ์์ SKIP ํ ์ด๋ธ์ ์ ์ธํ๊ณ ๋๊ธฐํ ํ ๋ ๋ค์๊ณผ ๊ฐ์ด '[INST_ID]_apply1.cfg'์ MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ๋ค.
COLUMN FILTERING OPTION์ ์ฌ์ฉํ์ฌ ์ผ๋ถ ์ปฌ๋ผ์ ๋ํ ๋๊ธฐํ๋ฅผ ์ ๊ฑฐํ ์ ์๋ค. ๋ค๋ง Constraint๊ฐ ๊ฑธ๋ ค์๋ ์ปฌ๋ผ์ ๋ํด์๋ ํด๋น ์ต์ ์ ์ฌ์ฉํ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ด COLUMN FILTERING OPTION์ ์ฌ์ฉํ ์ ์๋ค.
Source DB์ PROSYNC1 ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ ์ปฌ๋ผ C1, C2, C3๊ฐ ์๊ณ , ์ด์ค C1 ์ปฌ๋ผ๋ง ์ ์ธํ๊ณ Target DB์ PROSYNC2 ์ฌ์ฉ์์ T2 ํ ์ด๋ธ์ C2, C3 ์ปฌ๋ผ๊ณผ ๋๊ธฐํํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด '[INST_ID]_apply1.cfg'์ MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ๋ค.
๋๊ธฐํ ์ ์ถฉ๋ ์ํฉ์์ Source DB์ ์ ํฉ์ฑ ๊ธฐ์ค์ ๋ง์ถ ์ง, Target DB์ ์ ํฉ์ฑ ๊ธฐ์ค์ ๋ง์ถ ์ง, ์๋๋ฉด ํน์ ์ปฌ๋ผ์ Min ํน์ Max ๊ฐ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๋ง์ถ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ต์ ์ด๋ค. ํ์ ์ต์ ์ ์๋๋ฉฐ ์ฃผ๋ก ์๋ฐฉํฅ ๋๊ธฐํ์ ์ฌ์ฉ๋๋ค.
์ ํด์ง Rule์ ๋ฐ๋ผ DML ๋ค์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ์๋ต ๋๋ค.
๋ค์์ RESOLVE OPTION์ ์ค์ ํ ์ ์๋ RESOLVE_RULE์ ์ข ๋ฅ์ด๋ค.
MAX์ MIN RESOLVE_RULE์ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ DEFAULT OPTION์ ์ค์ ํด์ผ ํ๋ค. ์ปฌ๋ผ ๊ฐ์ด null์ธ ๊ฒฝ์ฐ์ ์ค์ ํ DEFAULT ๊ฐ์ผ๋ก ๋น๊ตํ๋ค. ๋จ, ๋๊ธฐํ๋ ์ค์ ํ DEFAULT ๊ฐ์ด ์๋๋ผ ์ค์ ์ปฌ๋ผ ๊ฐ์ผ๋ก ์ํํ๋ค.
UPDATE์ ๋๊ธฐํํ๋ ๊ฒฝ์ฐ MIN, MAX Rule์ ์ฌ์ฉํ๋ค๋ฉด ๋น๊ต ๋์ ์ปฌ๋ผ์ ๋ณ๊ฒฝ ์ ๋ฌด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋น๊ต๋ฅผ ์ํํ๋ค. ๋น๊ต ๋์ ์ปฌ๋ผ์ด ๋ณ๊ฒฝ๋์๋ค๋ฉด ๋ณ๊ฒฝ๋ ๊ฐ, ๋ณ๊ฒฝ๋์ง ์์๋ค๋ฉด ๊ธฐ์กด ๊ฐ์ผ๋ก Target DB์ row์ ๋น๊ต๋ฅผ ์งํํ๋ค. ๋น๊ต ๋์ ์ปฌ๋ผ์ด NULL์ธ ์ํ์์ UPDATE๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋น๊ต๊ฐ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋น๊ต ์์ด Source DB ๊ฐ์ ์ฐ์ ์ผ๋ก DML์ ์ํํ๋ค.
์๋ฅผ ๋ค์ด DB1๊ณผ DB2๊ฐ์ ์๋ฐฉํฅ ๋๊ธฐํํ๋ ๊ฒฝ์ฐ DB1์ PROSYNC ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ DB2์ PROSYNC ์ฌ์ฉ์์ T1 ํ ์ด๋ธ๋ก ๋๊ธฐํํ๊ณ , column c3์ ๊ฐ์ด ๋ ํฐ ๊ฐ์ ์ฐ์ ํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ๋ง์ง๋ง์ผ๋ก INSERTํ ๋ DCR ์ปฌ๋ผ์ธ c3์ null์ด ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ 10์ผ๋ก ๋น๊ตํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ค.
SKIP OPTION์๋ ๋๊ธฐํํ์ง ์๊ธธ ์ํ๋ row๋ค์ ํน์ ํ๊ธฐ ์ํ ์กฐ๊ฑด์ ์ค์ ํ๋ค.
SKIP OPTION์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ค. SKIP_CONDITION์ด True์ธ Row๋ค์ ๋๊ธฐํํ์ง ์๋๋ค.
Source DB์ PROSYNC ์ฌ์ฉ์์ T1 ํ ์ด๋ธ์ Target DB์ PROSYNC ์ฌ์ฉ์์ T1 ํ ์ด๋ธ๋ก ๋๊ธฐํํ๊ณ , column c1์ ๊ฐ์ด 'example'์ด ์๋๋ฉด DML์ skipํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ๋ค.
์์ ์กฐ๊ฑด์ ์ถ๊ฐ๋ก Source DB์ PROSYNC ์ฌ์ฉ์์ T2 ํ ์ด๋ธ์ Target DB์ PROSYNC ์ฌ์ฉ์์ T2 ํ ์ด๋ธ๋ก ๋๊ธฐํํ๊ณ , column c2์ ๊ฐ์ด 'example2'์ด๋ฉด DML์ skipํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ๋ค.
SYNC OPTION
TABLE : ๋๊ธฐํ ํ ํ ์ด๋ธ์ ์ง์ ํ๋ ๊ฒฝ์ฐ ์ค์ ํ๋ค. OBJECT : ๋๊ธฐํ ๋์์ด ์๋ ์ค๋ธ์ ํธ์ DDL ๋งคํ์ ์ง์ ํ๋ ๊ฒฝ์ฐ ์ค์ ํ๋ค. EXCLUDE : ๋๊ธฐํ๋ฅผ ์ ์ธํ ํ ์ด๋ธ์ ์ง์ ํ๋ ๊ฒฝ์ฐ ์ค์ ํ๋ค.
SOURCE_USER
๋๊ธฐํ ํ Source DB ํ ์ด๋ธ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ค์ ํ๋ค.
SOURCE_TABLE
๋๊ธฐํ ํ Source DB ํ ์ด๋ธ์ ํ ์ด๋ธ ์ด๋ฆ์ ์ค์ ํ๋ค.
SOURCE_COLUMNS
๋๊ธฐํ ํ Source DB ํ ์ด๋ธ์ ์ปฌ๋ผ๋ค์ ์ค์ ํ๋ค. (Column1, Column2, Column3)๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ค์ ํ๋ค.
COLUMN FILTERING OPTION
MAP=(TABLE PROSYNC1.T1, PROSYNC2.T2)MAP=(TABLE PROSYNC1.T1(C1, C2), PROSYNC2.T2)MAP=(TABLE PROSYNC1.T1(C1, C2), PROSYNC2.T2(D1, D2))MAP=(TABLE [SOURCE_USER].[SOURCE_TABLE]... )MAP=(OBJECT [SOURCE_USER].[OBJECT_NAME], [TARGET_USER].[OBJECT_NAME])MAP=(EXCLUDE [SOURCE_USER].[SOURCE_TABLE]...)MAP=(TABLE DEFAULT EXCLUDE PROSYNC.SKIP TABLE TIBERO.T1)MAP=(... EXCEPT FOR ([COLUMN_NAME], ..., [COLUMN_NAME])...)MAP=(TABLE PROSYNC1.T1 EXCEPT FOR (C1), PROSYNC2.T2)MAP=(... RESOLVE BY [RESOLVE_RULE] ...)SOURCE
Source ํ ์ด๋ธ์ Row๋ฅผ ์ฐ์ ์ผ๋ก ํ๋ค.
TARGET
Target ํ ์ด๋ธ์ Row๋ฅผ ์ฐ์ ์ผ๋ก ํ๋ค.
MAX(COLUMN_NAME)
MAP=(... RESOLVE BY MAX(COLUMN_NAME) DEFAULT (COLUMN_VALUE) ...)MAP=(TABLE PROSYNC.T1, PROSYNC.T1 RESOLVE BY MAX(c3) DEFAULT (10))TIBERO
CHAR, VARCHAR, NUMBER, TIME, DATE, TIMESTAMP
ORACLE
CHAR, VARCHAR, NUMBER
POSTGRESQL
CHAR, VARCHAR
EQUAL (=), NOT_EQUAL (!=)
NUMBER, TIME, DATE, TIMESTAMP
EQUAL (=), NOT_EQUAL (!=), INEQUALITY (<, <=, >, >=)
MAP=(... SKIP=(SKIP_CONDITION))MAP=(TABLE PROSYNC.T1, PROSYNC.T1 SKIP=(c1!="example"))MAP=(TABLE PROSYNC.T1, PROSYNC.T1 SKIP=(c1!="example")
TABLE PROSYNC.T2, PROSYNC.T2 SKIP=(c2="example2"))์ฃผ์
๋ค์ ํค์๋๋ MAP Rule ์ ์์ฝ์ด์ด๋ฏ๋ก table ๋ฑ ๋์์ ๋ช ์ํ๋ ์ฉ๋๋ก ์ฌ์ฉ ๋ถ๊ฐํ๋ค.
"ALL" "BY" "DEFAULT" "EXCEPT FOR" "EXCLUDE" "FILTER" "INCLUDE" "MAX" "MIN" "RESOLVE" "SOURCE" "SKIP" "SYNC" "TABLE" "TARGET" "TYPE" "OBJECT" "INSERT" "DELETE" "UPDATE"
์ฃผ์
DB ๋ฒ์ , ๋นํ์ค ์ฟผ๋ฆฌ ๋ฑ์ผ๋ก ์ธํด DDL์ OBJECT์ ์ธ์์ด ๋ถ๊ฐ๋ฅํ ์ ์๋ค. ๋ฐ๋ผ์ MAP ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด์ DDL ๋งคํ์ ํ ๋ TABLE๊ณผ OBJECT์ schema๋ฅผ ๋ช ์ํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๋ํ, ๋๊ธฐํ ํ ์ด๋ธ T1์ ๋ํด DROP TABLE T1 ์คํ ํ CREATE TABLE T1๋ฅผ ์คํํ ๋ T1์ OBJECT๋ก์จ ๋งคํ๋ ๊ฒ์ด๊ณ , ์์ฑ๋ ์ปฌ๋ผ์ ๋๊ธฐํ ํ ์ด๋ธ ์ปฌ๋ผ MAP ํ๋ผ๋ฏธํฐ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
๋๊ธฐํํ์ง ์์ Source DB ํ ์ด๋ธ์ ์ปฌ๋ผ๋ค์ ์ค์ ํ๋ค.
TARGET_DATABASE
๋๊ธฐํ์ํฌ Target DB์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์ค์ ํ๋ค.
TARGET_USER
๋๊ธฐํ์ํฌ Target DB ํ ์ด๋ธ์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ค์ ํ๋ค.
TARGET_TABLE
๋๊ธฐํ์ํฌ Target DB ํ ์ด๋ธ์ ํ ์ด๋ธ ์ด๋ฆ์ ์ค์ ํ๋ค. ์ธ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฐ ์ ์ ์ค๋ช ์ ์ฐธ๊ณ ํ๋ค.
RESOLVE OPTION
๋๊ธฐํ์ํฌ Target DB ํ ์ด๋ธ์ ํ ์ด๋ธ ์ค DCR Rule๋ฅผ ์ ์ฉํ ํ ์ด๋ธ์ ์ด๋ฆ์ ์ค์ ํ๋ค. ์ธ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฐ ์ ์ ์ค๋ช ์ ์ฐธ๊ณ ํ๋ค.
SKIP OPTION
๋๊ธฐํ ํ ๋ ๋๊ธฐํ๋ฅผ ํ์ง ์์ row์ ์กฐ๊ฑด์ ์ค์ ํ๋ค.
TARGET_COLUMNS
๋๊ธฐํ์ํฌ Target DB ํ ์ด๋ธ์ ์ปฌ๋ผ๋ค์ ์ค์ ํ๋ค. SOURCE_COLUMNS์ ์์๋๋ก ๋งคํ๋๊ณ ์ปฌ๋ผ ๊ฐ์๋ ์ผ์นํด์ผ ํ๋ค. (Column1, Column2, Column3)๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ค์ ํ๋ค.
ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ๋ ํฐ Row๋ฅผ ์ฐ์ ์ผ๋ก ํ๋ค.
๋ฐ๋์ DEFAULT OPTION์ ์ค์ ํด์ผ ํ๋ค.
MIN(COLUMN_NAME)
ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ๋ ์์ Row๋ฅผ ์ฐ์ ์ผ๋ก ํ๋ค.
๋ฐ๋์ DEFAULT OPTION์ ์ค์ ํด์ผ ํ๋ค.
CHAR, VARCHAR, NUMBER
๋ณธ ์ฅ์์๋ Map ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์ค์ ํ ์ ์๋ Resolution Rule (DCR)๊ณผ Schema Mapping์ ์ํ DDL ์ค์ ์ ๋ํด ์์๋ณธ๋ค. Mapping์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์ด๋ธ๋ช , ์ปฌ๋ผ๋ช ์ ๋ํ Mapping์ ์ง์ํ๋ค.