All pages
1 of 8

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

๋Œ€์šฉ๋Ÿ‰ ์ด๊ด€

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ด๊ด€ ๋ฐฉ๋ฒ• ๋ฐ ๊ณ ๋ ค์‚ฌํ•ญ, ์˜ˆ์ œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ๊ฐœ์„ ์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

์ด๊ธฐ์ข… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด๊ด€ํ•  ๋•Œ ๋Œ€์šฉ๋Ÿ‰ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด ์ด๊ด€ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ์‚ฌ์˜ ํ™˜๊ฒฝ(๋„คํŠธ์›Œํฌ, Disk I/O, ๋ฐ์ดํ„ฐ ์†์„ฑ)์„ ๊ณ ๋ คํ•˜์—ฌ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์ด๊ด€ ๋ฐฉ๋ฒ•๋“ค์˜ ํŠน์ง•์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์ด๊ด€ ๋ฐฉ๋ฒ•
ํŠน์ง•

T-UP

  • GUI ๊ธฐ๋ฐ˜์˜ ํด๋ผ์ด์–ธํŠธ (๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์„œ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๊ด€ํ•  ๊ฒฝ์šฐ ๋ฏธ๊ถŒ์žฅ)

  • DPL์„ ์ง€์›

์•„๋ž˜๋Š” ๊ฐ ๋ฐ์ดํ„ฐ ์ด๊ด€ ๋ฐฉ๋ฒ•๋“ค์ด ์ง€์›ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

๋ฐฉ์‹
T-UP
Table Migrator
DB Lin
tbLoader

์•„๋ž˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๊ด€ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  • ์ถฉ๋ถ„ํ•œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

  • IO ๋Œ€์—ญ์„ ๊ณ ๋ คํ•˜์—ฌ ์Šค์ผ€์ค„ ๋˜๋Š” DOP๋ฅผ ์ ์šฉํ•œ๋‹ค. DPL, Parallel DPL์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • DPL, Parallel DPL์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ์—๋Š” CPL์„ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. (Multi Insert)

  • Index, Constraint, Trigger ๋“ฑ์€ ๋ฐ์ดํ„ฐ ์ด๊ด€์ด ๋๋‚œ ๋‹ค์Œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Parallel DPL์˜ ๊ฒฝ์šฐ Tibero 5 r69848 ์ดํ›„๋ถ€ํ„ฐ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • SUBPARTITIONED TABLE์€ DPL ๋˜๋Š” Parallel DPL์„ ๋ฏธ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • IOT๋Š” DPL ๋˜๋Š” Parallel DPL์„ ๋ฏธ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Partitioned INDEX์˜ ๊ฒฝ์šฐ Normal Index๋งŒ DPL์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ณธ ๋ฌธ์„œ๋Š” ์ด 2๊ฐœ์˜ ์žฅ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ด๊ด€ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์ œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž

๊ฐ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž

LONG ์ปฌ๋Ÿผ์ด ํฌํ•จ๋œ 255๊ฐœ ์ด์ƒ์˜ Column์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์€ DPL์„ ๋ฏธ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • LOB ๊ณ„์—ด์˜ ์ปฌ๋Ÿผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ DPL๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • INDEX๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ DPL๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Table Migrator

    • ํ…Œ์ด๋ธ” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๋Š”๋ฐ ์ตœ์ ํ™”๋œ ํˆด

    • SELECT ์˜ต์…˜์˜ CONDITION, PARTITION์„ ์ง€์›

    • DPL, P-DPL์„ ์ง€์›

    DB Link + DPI

    • SOURCE DB์— ๋งž๋Š” Gateway๋ฅผ ์„ค์น˜ํ•˜๊ณ  DB LINK๋ฅผ ์„ค์ •

    • APPEND ํžŒํŠธ๋ฅผ ํ†ตํ•ด DPI๋ฅผ ์ง€์›

    SAM ํŒŒ์ผ + tbLoader

    • ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด SAM ํŒŒ์ผ๋กœ ๋‚ด๋ ค tbLoader๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ

    • DPL, P-DPL์„ ์ง€์›

    • External Table + DPI ์ด์šฉ๊ฐ€๋Šฅ

    Parallel Processing

    O

    O

    O

    ๋ฐ์ดํ„ฐ ์ด๊ด€ ์ง€์› ๋ฐฉ์‹

    ๋ฐ์ดํ„ฐ ์ด๊ด€ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ

    ์ฃผ์š” ์šฉ์–ด

    CPL (Conventional Path Loading) ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์ปฌ๋Ÿผ ๋ฐฐ์—ด์— ๋‹ด๊ณ  ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    DPL (Direct Path Loading) ํŠน์ • ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ปฌ๋Ÿผ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋งŒ๋“  ๋‹ค์Œ ๋ธ”๋ก ํ˜•์‹๊ธฐ๋ฅผ ๊ฑฐ์ณ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ œ์•ฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    DOP (Degree Of Parallelism) ๋ณ‘๋ ฌ๋„๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‹จ์ผ ๋ณ‘๋ ฌ ์ž‘์—…์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ‘๋ ฌ ์‹คํ–‰ ์„œ๋ฒ„์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

    ์•ˆ๋‚ด์„œ ๊ตฌ์„ฑ

    ๋ฌธ์„œ ๋‹ค์šด๋กœ๋“œ

    ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ด๊ด€ ์˜ˆ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ
    ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ• ๋ฐ”๋กœ๊ฐ€๊ธฐ
    Tibero_7_๋Œ€์šฉ๋Ÿ‰ ์ด๊ด€ ๊ฐ€์ด๋“œ.pdf
    PDF ยท 1MB
    Open

    O

    Select Condition

    X

    O

    O

    X

    Direct Path Load

    O

    O

    O

    O

    Multi Thread

    O

    O

    X

    O

    Rows Per Commit

    X

    X

    X

    O

    ์ „ํ™˜

    ํƒ€ DB, ๋Œ€์šฉ๋Ÿ‰ DB ๋“ฑ์„ Tibero DBMS ์ „ํ™˜ ์ด๊ด€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

    ์ˆ˜ํ–‰ ๋ฐฉ๋ฒ•

    DB ์ „ํ™˜ ์ „ ๊ณ ๋ ค์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    1. ์••์ถ• ํŒŒ์ผ ํ•ด์ œ

    table_migrator.zip ๋ฐ”์ด๋„ˆ๋ฆฌ ์••์ถ• ํŒŒ์ผ์„ ํ•ด์ œํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ํŒŒ์ผ
    ์„ค๋ช…

    migrator_cli.jar

    Table Migrator ํด๋ž˜์Šค

    toolcom.jar


    UNIX ๊ณ„์—ด์ธ ๊ฒฝ์šฐ migrator.sh, Windows ๊ณ„์—ด์ธ ๊ฒฝ์šฐ๋Š” migrator.bat ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

    classpath ์„ค์ •์— Source DB์˜ JDBC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์—†์„ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


    ์•„๋ž˜๋Š” Table Migrator๋ฅผ ์‹คํ–‰ํ•˜๋Š” 2๊ฐ€์ง€ ์˜ˆ๋กœ UNIX ๊ณ„์—ด์ธ ๊ฒฝ์šฐ migrator.sh, Windows ๊ณ„์—ด์ธ ๊ฒฝ์šฐ๋Š”migrator.bat ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ์ปจํŠธ๋กค ํŒŒ์ผ์— ์„ค์ •ํ•œ ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•

    ์ƒํ™ฉ๋ณ„ DBMS ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    Tibero ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์ •ํ•œ ํฌ๊ธฐ๋งŒํผ ๋ฐ”์ธ๋”ฉ๋˜๊ธฐ ์ „๊นŒ์ง€ ์„œ๋ฒ„๋กœ ์—…๋กœ๋“œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋Œ€์šฉ๋Ÿ‰ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    tbLoader์—์„œ ์ œ๊ณตํ•˜๋Š” ์•„๋ž˜์˜ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ต์…˜
    ์„ค๋ช…

    Tibero ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ณตํ†ต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

    internal-jdbc-16.jar

    Tibero JDBC ๋“œ๋ผ์ด๋ฒ„

    migrator.bat

    Windows ๊ณ„์—ด ์‹คํ–‰ ํŒŒ์ผ

    migrator.sh

    POSIX ๊ณ„์—ด ์‹คํ–‰ ํŒŒ์ผ

    migrator.properties.eg

    Table Migrator ์ปจํŠธ๋กคํŒŒ์ผ

    msllogger-14.jar

    ๋กœ๊ทธ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค

    antlr-4.3-complete.jar

    ๋ฌธ์ž์—ด ํŒŒ์‹ฑ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค

    postgresql-42.2.27.jre6.jar

    PostgreSQL JDBC ๋“œ๋ผ์ด๋ฒ„

    ์‹คํ–‰์— ํ•„์š”ํ•œ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ toolcom.jar, internal-jdbc-16.jar๋Š” Target DB(Tibero)์˜ ๋ฒ„์ „์— ๋งž๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ต์ฒดํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋ณธ ์œ„์น˜ : $TB_HOME/client/lib/jar)

    2. migrator.sh ์ˆ˜์ • (๋˜๋Š” .bat)

    3. Table Migrator ์ˆ˜ํ–‰

    ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • ์‹คํ–‰

    ์ปจํŠธ๋กค ํŒŒ์ผ ์ง€์ • ์‹คํ–‰

    ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์ด ๋™์‹œ์— ์ปจํŠธ๋กค ํŒŒ์ผ๊ณผ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์— ์„ค์ •๋œ ๊ฒฝ์šฐ, ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ์ง€์ •ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์šฐ์„ ์ˆœ์œ„๋กœ ํ•ฉ๋‹ˆ๋‹ค.

    java -classpath migrator_cli.jar:ojdbc6.jar:postgresql-42.2.27.jre6.jar:msllogger-
    14.jar:toolcom.jar:internal-jdbc-16.jar:antlr-4.3-complete.jar com.m.migrator.Main "$@โ€
    sh migrator.sh SOURCE_TYPE=ORACLE \
    SOURCE_URL=jdbc:oracle:thin:@127.0.0.1:1521:orcl \
    SOURCE_USER=system SOURCE_PASSWORD=manager SOURCE_LOGIN_AS=NORMAL \
    SOURCE_SCHEMA=scott SOURCE_TABLE=emp \
    TARGET_URL=jdbc:internal:thin:@127.0.0.2:8629:t7 \
    TARGET_USER=dbtech TARGET_PASSWORD=dbtech
    sh migrator.sh PROPERTY_FILE=migrator.properties

    Direct Path Load ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ๋•Œ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ MULTI INSERT ๋ฐฉ์‹๊ณผ FAST BUILD ๋ฐฉ์‹ ์ค‘์— ํ•˜๋‚˜ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•˜๋Š” ์ปจํŠธ๋กค ํŒŒ์ผ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    rows

    ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ Commit์„ ์ˆ˜ํ–‰ํ•  ๋ ˆ์ฝ”๋“œ ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๋‹จ, tbLoader๋Š” ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ ์ง€์ •ํ•œ ๋ ˆ์ฝ”๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ๋งž์ถฐ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ง€๋Š” ์•Š์Œ)

    Conventional Path Load ๋ฐฉ์‹์œผ๋กœ ์ด๊ด€ํ•  ๊ฒฝ์šฐ

    bindsize

    ๋ฐฐ์—ด์— ์‚ฌ์šฉ๋  ์ตœ๋Œ€ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : 64KB)

    MULTI INSERT INDEXES

    ์ธ๋ฑ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„๋กœ ์ตœ์ ํ™” ํ•˜์—ฌ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ

    FAST BUILD INDEXES

    ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋กœ๋“œํ•˜์—ฌ ๋‹ค์‹œ ์ƒ์„ฑ

    ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ Uploadํ•  ๊ฒฝ์šฐ

    tbLoader ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋Œ€์ƒ ํ…Œ์ด๋ธ”์— ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์œผ๋ฉด MULTI INSERT ๋ฐฉ์‹์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๊ณ  ๊ทธ ์™ธ๋Š” FAST BUILD ๋ฐฉ์‹์ด ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

    (๋‹จ, tbLoader ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DPLํ•  ๋•Œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋“ฑ์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ธ๋ฑ์Šค๊ฐ€ Unusable ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

    # MULTI INSERT INDEXES ์ ์šฉ
    $cat control.ctl 
    LOAD DATA
    ...
    MULTI INSERT INDEXES
    ... 
    (...)
    
    # FAS BUILD INDEXES ์ ์šฉ
    $cat control.ctl 
    LOAD DATA
    ...
    FAST BUILD INDEXES
    ... 
    (...)

    SQL ๋ณ€ํ™˜ ๋ฐ ์ „ํ™˜

    ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Tibero DBMS๋กœ ์ „ํ™˜ํ•˜๋Š” Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐœ์š”

    ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Tibero๋กœ ์ „ํ™˜ํ•˜๋Š” Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

    ํ•ด๋‹น ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” TechNet์˜ T-UP ์—์„œ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŠน์ง•

    Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ํŠน์ง• ์ž…๋‹ˆ๋‹ค.

    • Command ๊ธฐ๋ฐ˜์ด๋ฉฐ, ๋‚ด๋ถ€์ ์œผ๋กœ JAVA์˜ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ DBMS์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ณ„๋„ ์ปดํ“จํ„ฐ(ํด๋ผ์ด์–ธํŠธ)๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ Source ๋˜๋Š” Target ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    • ์ „์ฒด, ์‚ฌ์šฉ์ž๋ณ„ ์ด๊ด€์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ Table ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ด๊ด€๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์Šคํ‚ค๋งˆ ๊ฐ์ฒด ๋ฐ Table์— ์ •์˜๋œ ๊ฐ์ข… ์ œ์•ฝ์กฐ๊ฑด์€ ์ „ํ™˜๋˜์ง€ ์•Š์Œ)

    • ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (SELECT ์˜ต์…˜, DPL, P-DPL ์ง€์›)

    ์•„๋ž˜๋Š” Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‹คํ–‰ ์ „ ์ค€๋น„์‚ฌํ•ญ ์ž…๋‹ˆ๋‹ค.

    • JRE 1.6 ์ด์ƒ ์„ค์น˜

    • Table Migrator ์„ค์น˜ ์ „ ์•„๋ž˜์˜ ํŒŒ์ผ์ด ์ค€๋น„์—ฌ๋ถ€ ํ™•์ธ

      - table_migrator.zip : Table Migrator ๋ฐ”์ด๋„ˆ๋ฆฌ

      - Source DB์˜ JDBC ๋“œ๋ผ์ด๋ฒ„

    DBMS
    JDBC ๋“œ๋ผ์ด๋ฒ„

    • Table Migrator ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ Source DB ๋˜๋Š” Target DB(Tibero)์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๊ด€ ๋Œ€์ƒ Table์„ ์ƒ์„ฑ DDL์„ ์ด์šฉํ•˜์—ฌ Target DB(Tibero)์— ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ•ญ์— ์œ ์˜ํ•ฉ๋‹ˆ๋‹ค.

    • Source DB์˜ Table์„ ์ด๊ด€ํ•  ๊ฒฝ์šฐ Target DB(Tibero)์— Tablespace, User, Table์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑ ํ›„ TableMigrator๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • DBMS ์ ‘์† ๊ณ„์ •์— DBA ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ๋งŒ์•ฝ, ๊ณ ๊ฐ์‚ฌ์˜ ์ •์ฑ…์ƒ DBA ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ์ด๊ด€ ์ž‘์—…์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž๋ณ„ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ๊ณ„์ •
    ๊ถŒํ•œ
    • long, longraw ์ปฌ๋Ÿผ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • index๊ฐ€ ์กด์žฌํ•˜๋Š” Table์ผ ๊ฒฝ์šฐ DPL ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

    ๋ณธ ๋ฌธ์„œ๋Š” ์ด 3๊ฐœ์˜ ์žฅ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ”Ž

    ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • ๊ณผ์ •์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    ๐Ÿ”Ž

    ํƒ€์‚ฌ DB์—์„œ Tibero DB๋กœ ์ „ํ™˜์— ๋Œ€ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

    ๐Ÿ”Ž

    Oracle

    ojdbc6.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    MSSQL

    sqljdbc4.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    DB2

    Oracle (SOURCE DB)

    CONNECT, SELECT ANY TABLE, SELECT ANY DICTIONARY, ALTER SESSION

    Tibero (TARGET DB)

    CONNECT, SELECT ANY TABLE, SELECT ANY DICTIONARY, RESOURCE, ALTER SESSION

    ์‚ฌ์ „ ์ค€๋น„์‚ฌํ•ญ

    ์œ ์˜์‚ฌํ•ญ

    ์•ˆ๋‚ด์„œ ๊ตฌ์„ฑ

    ๋ฌธ์„œ ๋‹ค์šด๋กœ๋“œ

    ์ˆ˜ํ–‰ ๋ฐฉ๋ฒ• ๋ฐ”๋กœ๊ฐ€๊ธฐ
    ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • ๋ฐ”๋กœ๊ฐ€๊ธฐ
    ์ˆ˜ํ–‰ ์˜ˆ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ
    T-UP ํŒŒ์ผ
    Tibero_7_์ „ํ™˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ฐ€์ด๋“œ.pdf
    PDF ยท 995KB
    Open

    db2jcc.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    MYSQL

    mysql-connector-java-5.1.4.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    PostgreSQL

    postgresql-42.2.27.jre6.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    Sybase ASE

    jconn3.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    Informix

    ifxjdbc.jar (Source DB ๋ฒ„์ „์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„ ์‚ฌ์šฉ)

    ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ด๊ด€ ์˜ˆ์ œ

    ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ด๊ด€ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์ œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฐ์ดํ„ฐ ์ด๊ด€์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋กœ ์ธํ•ด ์ˆ˜ํ–‰ ์†๋„๋ฅผ ์ตœ์ ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹จ, ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์ด๊ด€๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ Object์— ๋Œ€ํ•œ ์ด๊ด€์€ ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ” ์ •๋ณด์ž…๋‹ˆ๋‹ค.

    CREATE TABLE DBTECH.LINEITEM ( 
    L_ORDERKEY NUMBER,
    L_PARTKEY NUMBER, 
    L_SUPPKEY NUMBER, 
    L_LINENUMBER NUMBER, 
    L_QUANTITY NUMBER(15,2),
    L_EXTENDEDPRICE NUMBER(15,2), 
    L_DISCOUNT NUMBER(15,2), 
    L_TAX NUMBER(15,2), 
    L_RETURNFLAG CHAR(1), 
    L_LINESTATUS CHAR(1), 
    L_SHIPDATE DATE,
    L_COMMITDATE DATE, 
    L_RECEIPTDATE DATE, 
    L_SHIPINSTRUCT CHAR(25), 
    L_SHIPMODE CHAR(10), 
    L_COMMENT VARCHAR(44)
    ) NOLOGGING;


    Table Migrator ์˜ˆ์ œ

    Table Migrator ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๊ด€ํ•˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

    1. migrator.properties ํŒŒ์ผ์— ์†์„ฑ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    $ cat migrator.properties
    
    
    #######################
    # Source DB Connection 
    #######################
    
    # Source DB type (Optional, generic | default | ORACLE) 
    # ORACLE option needs SOURCE_LOGIN_AS property
    # GENERIC option needs SOURCE_DRIVER property
    SOURCE_TYPE=ORACLE
    
    # Source DB JDBC driver class name
    # Use with SOURCE_TYPE=GENERIC option 
    SOURCE_DRIVER=oracle.jdbc.OracleDriver 
    #SOURCE_DRIVER=com.mysql.jdbc.Driver
    
    # Source DB JDBC connection URL (Optional, 
    Default=jdbc:oracle:thin:@localhost:1521:orcl) 
    SOURCE_URL=jdbc:oracle:thin:@localhost:1539:orcl 
    #SOURCE_URL=jdbc:mysql://127.0.0.1:3306/mysql
    # Source DB login ID (Optional, Default=sys) 
    #SOURCE_USER="user1"
    SOURCE_USER=tibero
    
    # Source DB login password (Optional, Default=oracle)
    SOURCE_PASSWORD=tmax
    
    
    # Oracle source DB login option (Optional, Default=sysdba) 
    # Use with SOURCE_TYPE=ORACLE option 
    SOURCE_LOGIN_AS=NORMAL
    
    # Source table schema (Optional)
    # Default value is the same with SOURCE_USER 
    #SOURCE_SCHEMA=SCOTT
    #SOURCE_SCHEMA="dbo" 
    #SOURCE_SCHEMA=
    
    # Source table name (Mandatory) 
    #SOURCE_TABLE=tableName1 
    #SOURCE_TABLE="tableName2" 
    #SOURCE_TABLE=bt_scen_tran 
    SOURCE_TABLE=t1
    
    # Ignore deadlock error that occur during migration for the tables created using the dedup option
    # Use when BATCH_THRESHOLD=1
    # If not, Data integrity is not guaranteed 
    SOURCE_TABLE_DEDUPLICATE=N
    
    #######################
    # Target DB Connection 
    #######################
    
    # Target DB type (Optional, DEFAULT)
    TARGET_TYPE=DEFAULT
    
    # Target DB JDBC driver class name 
    #TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver 
    TARGET_DRIVER=com.m.internal.jdbc.MInternalDriver
    
    # Target DB JDBC connection URL (Optional, 
    Default=jdbc:internal:thin:@localhost:8629:tibero) 
    #TARGET_URL=jdbc:tibero:thin:@192.1.5.63:39208:tibero 
    TARGET_URL=jdbc:internal:thin:@localhost:59166:tibero
    
    # Target DB login ID (Optional, Default=sys) 
    #TARGET_USER="user1"
    TARGET_USER=tibero
    
    # Target DB login password (Optional, Default=tibero)
    TARGET_PASSWORD=tmax
    
    # Target table schema (Optional)
    # Default value is the same with TARGET_USER 
    # TARGET_SCHEMA=TIBERO
    
    # Target table name (Optional)
    # Default value is the same with SOURCE_TABLE 
    # TARGET_TABLE=t1
    
    #################
    # Data Extractor 
    #################
    # Use parallel Extracting (Optional, Y | N Default=N)
    EXTRACT_PARALLEL=N
    
    # Number of data extractor thread (Optional, Default=1)
    EXTRACT_THREAD_COUNT=1
    
    # Use TSN(or SCN) option (Optional) 
    #SELECT_TSN=17322052
    
    # Where conditions (Optional)
    # ex. column1 > 10 AND column2 = 'abc' 
    #SELECT_CONDITION= c1>1
    
    # Fetch size of source table cursor (Optional, Default=1024) 
    # Some DB is not supported this feature. 
    #SELECT_FETCH_SIZE=1024
    
    # Source table partition name (Optional) 
    #SELECT_PARTITION=
    
    # Source table subpartition name (Optional) 
    #SELECT_SUBPARTITION=subpar1 
    #SELECT_SUBPARTITION="subpart2" 
    #SELECT_SUBPARTITION=
    
    # Ignore source/target DB character set (Optional, y | N )
    SELECT_AS_BYTE=N
    
    # db_file_multiblock_read_count (Optinal, Option for Oracle), Defalut=-1)
    DB_FILE_MULTIBLOCK_READ_COUNT=-1
    
    # Use parallel excution of SQL statements (Optinal, Option for Oracle), Defalut=N)
    USE_PARALLEL_HINT=N
    
    # Use with USE_PARALLEL_HINT=Y (Defalut=-1)
    PARALLEL_HINT_CNT=-1
    
    ##############
    # Data Loader 
    ##############
    
    # Use direct path loading (Optional, cpl | DPL) 
    # CPL means conventional path loading
    # DPL means direct path loading I
    NSERT_METHOD=dpl
    
    # Use commit size option(Optinal, Default = commit once after loading) 
    # Use with INSERT_METHOD=CPL option
    # set commit_size-1 to commit only once 
    COMMIT_SIZE=-1
    
    # Use index disable option(Optional, Default = N, Y/N)
    INDEX_DISABLE=N
    
    # Use batch insert (Optional, Y | n) 
    # Use with INSERT_METHOD=CPL option 
    INSERT_BATCH=Y
    
    # batch threshold size (Optional, Default=32)
    BATCH_THRESHOLD=128
    
    # Use parallel loading (Optional, Y | n)
    INSERT_PARALLEL=N
    
    # Number of data loader thread (Optional, Default=4) 
    # Use with INSERT_PARALLEL=Y option 
    INSERT_THREAD_COUNT=1
    
    # Target table partition name (Optional) 
    #INSERT_PARTITION=
    
    # Specifies whether to keep the column names of the source table case-sensitive. 
    (Optional, Y | n )
    # If set to Y, the original column name format will be preserved by enclosing it in 
    double quotes.
    # If set to N, the column name format will follow the database naming rules.
    INSERT_COLUMN_NAME_CASE_SENSITIVE=N
    
    # Use zero length string data migration as null (Optional, Y | n, Default=Y, Option ignored for Oracle)
    # If set to N, the zero length data will be inserted as ' '. 
    INSERT_ZERO_LENGTH_STRING_AS_NULL=Y
    
    # Trim leading and trailing pad character of CHAR type data. (Optional, Y | n, Default=N)
    #TRIM=
    
    ##############
    # Common 
    ##############
    
    # Use MetaData Checking for DPL. (Optional, Default=Y)
    CHECK_COLUMN_METADATA=N
    
    
    # Log 
    LOG_LEVEL=INFO
    LOG_FILE_NAME=tableMigrator.log 
    #LOG_DIR=

    ์ „์ฒด ๊ฑด์ˆ˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.(SELECT_CONDITION ๋ถ€๋ถ„์— ์„ค์ •)

    ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์ด ์žˆ๋Š” ๊ฒฝ์šฐ SQL๋ฌธ์„ ๋‚˜๋ˆˆ ํ›„์— ๋ณ‘๋ ฌ ์„ธ์…˜(ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ)์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉฐ Temp์™€ Undo Tablespace ์‚ฌ์šฉ๋Ÿ‰์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    1. Background Process๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์œผ๋กœ migrator๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ์™€ ๋กœ๊ทธ ํŒŒ์ผ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


    DB Link๋กœ insert ... select ... ๊ตฌ๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ parallel ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด select๋Š” serialํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ , insert์ผ ๋•Œ๋งŒ parallel๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ DB Link ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ์„œ๋ฒ„์˜ ์‚ฌ์–‘์ด ์ข‹์„ ๊ฒฝ์šฐ parallel ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ view๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น view๋ฅผ Tibero์—์„œ selectํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๊ด€ํ•˜๋ฉด ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” DB Link ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๊ด€ํ•˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

    1. ์ „์ฒด ๊ฑด์ˆ˜๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

    ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์ด ์žˆ๋Š” ๊ฒฝ์šฐ SQL๋ฌธ์„ ๋‚˜๋ˆˆ ํ›„์— ๋ณ‘๋ ฌ ์„ธ์…˜(ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ)์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ฉฐ Temp์™€ Undo Tablespace ์‚ฌ์šฉ๋Ÿ‰์˜ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    1. SQL๋ฌธ์— append, parallel ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    append Insertํ•˜๋Š” ๋Œ€์ƒ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ nologging ์˜ต์…˜์ด ์ ์šฉ๋˜์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    parallel ํžŒํŠธ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์„ธ์…˜์— parallel dml ์˜ต์…˜์„ enableํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” ์„ธ์…˜์ด 2๊ฐœ์ผ ๊ฒฝ์šฐ DB Link๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

    ์„ธ์…˜ 1์ˆ˜ํ–‰ L_LINESTATUS๊ฐ€ '0'์— ๋Œ€ํ•ด์„œ Insertํ•ฉ๋‹ˆ๋‹ค.

    ์„ธ์…˜ 2์ˆ˜ํ–‰ L_LINESTATUS๊ฐ€ 'F'์— ๋Œ€ํ•ด์„œ Insertํ•ฉ๋‹ˆ๋‹ค.

    COMMIT๋œ ๋ฐ์ดํ„ฐ ํ™•์ธ


    Loadํ•  SAM ํŒŒ์ผ์„ n๋“ฑ๋ถ„ํ•˜๊ณ  ์ง์ ‘ ๋กœ๋”ฉ๊ณผ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์„ ๋™์‹œ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋””์Šคํฌ์—์„œ wait๋งŒ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ตœ์ ์˜ ์ˆ˜ํ–‰ ์†๋„๊ฐ€ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” tbLoader ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๊ด€ํ•˜๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

    1. Unload(spool ๋˜๋Š” unload ์œ ํ‹ธ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ unload) ๋ฐ SAM ํŒŒ์ผ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

    2. Loadํ•  SAM ํŒŒ์ผ์„ n๋“ฑ๋ถ„ ํ•˜์—ฌ n๊ฐœ์˜ SAM ํŒŒ์ผ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

    3. ๊ฐ SAM ํŒŒ์ผ์„ ์ฝ๋Š” n๊ฐœ์˜ ์ปจํŠธ๋กค ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ , ์ž‘์„ฑํ•  ๋•Œ append ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” 2๊ฐœ์˜ ์ปจํŠธ๋กค ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    1. Background Process๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์œผ๋กœ tbloader๋ฅผ ์‹คํ–‰ํ•˜๊ณ , tbloder ๋ช…๋ น์–ด์— 'direct=y dpl_parallel=y' ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜๋Š” 2๊ฐœ์˜ SAM ํŒŒ์ผ ๋ฐ ์ปจํŠธ๋กค ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  tbLoader๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

    ์„ธ์…˜ 1 ์ˆ˜ํ–‰

    ์„ธ์…˜ 2 ์ˆ˜ํ–‰

    ์ˆ˜ํ–‰ ์˜ˆ์ œ

    Table Migrator ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ Oracle(Source DB)์—์„œ Tibero(Target DB)๋กœ DBMS ์ „ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

    Oracle์— ํ…Œ์ŠคํŠธ Table, ๋ฐ์ดํ„ฐ, ์ ‘์†ํ•  ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.


    Oracle์— ํ…Œ์ŠคํŠธ Table, ๋ฐ์ดํ„ฐ, ์ ‘์†ํ•  ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    DB Link ์˜ˆ์ œ

    ์„ธ์…˜์ด 2๊ฐœ์ผ ๊ฒฝ์šฐ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    Selectํ•˜๋Š” ๋ถ€๋ถ„์— ๋ณ‘๋ ฌ ์ˆ˜ํ–‰์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DB Link์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ parallel์„ ์ ์šฉํ•œ View๋ฅผ ๋งŒ ๋“ค์–ด ์กฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    tbLoader ์˜ˆ์ œ

    Loader ๋ฐฉ๋ฒ• ์‚ฌ์šฉ ์‹œ Source ๋ฐ์ดํ„ฐ์˜ unload ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œSource ์„œ๋ฒ„์—์„œ Tartget ์„œ๋ฒ„๋กœ ํŒŒ์ผ ์ „์†ก ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

    dpl_parallel ์˜ต์…˜์€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์‹ฑ์œผ๋กœ tbloader๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ Tibero5r70450 ์ดํ›„ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    1. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

    2. ์ „ํ™˜ ์ˆ˜ํ–‰

    $ cat run.sh
    # dbtech.lineitem ํ…Œ์ด๋ธ” (์กฐ๊ฑด l_linestatus='0'์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ) 
    nohup migrator.sh SOURCE_TYPE=ORACLE \
    SOURCE_URL=jdbc:oracle:thin:@localhost:1521:ORCL \ 
    SOURCE_USER=dbtech SOURCE_PASSWORD=dbtech SOURCE_LOGIN_AS=NORMAL \
    SOURCE_SCHEMA=dbtech SOURCE_TABLE=lineitem \ 
    TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero \
    TARGET_USER=dbtech TARGET_PASSWORD=dbtech SELECT_CONDITION="l_linestatus='O'" >
    migrator_a_set.log &
    
    # dbtech.lineitem ํ…Œ์ด๋ธ” (์กฐ๊ฑด l_linestatus='F'์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ) 
    nohup migrator.sh SOURCE_TYPE=ORACLE \
    SOURCE_URL=jdbc:oracle:thin:@localhost:1521:ORCL 
    \ SOURCE_USER=dbtech SOURCE_PASSWORD=dbtech SOURCE_LOGIN_AS=NORMAL \
    SOURCE_SCHEMA=dbtech SOURCE_TABLE=lineitem \ 
    TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero \
    TARGET_USER=dbtech TARGET_PASSWORD=dbtech SELECT_CONDITION="l_linestatus='F'" > 
    migrator_b_set.log &
    # dbtech.lineitem ํ…Œ์ด๋ธ”์˜ ์กฐ๊ฑด l_linestatus='0' migrator ์ˆ˜ํ–‰ ๋กœ๊ทธ ํ™•์ธ
    $ cat migrator_a_set.log
    === Parameters ===
    
    PROPERTY_FILE=migrator.properties 
    SOURCE_TYPE=ORACLE
    SOURCE_URL=jdbc:oracle:thin:@localhost:1521:ORCL
    SOURCE_USER=dbtech 
    SOURCE_PASSWORD=************ 
    SOURCE_LOGIN_AS=NORMAL
    SOURCE_SCHEMA=dbtech
    SOURCE_TABLE=lineitem 
    TARGET_TYPE=DEFAULT
    TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero
    TARGET_USER=dbtech 
    TARGET_PASSWORD=************ 
    SELECT_CONDITION=l_linestatus='F' 
    SELECT_FETCH_SIZE=1024 
    SELECT_AS_BYTE=N 
    INSERT_METHOD=DPL
    INSERT_BATCH=Y 
    INSERT_PARALLEL=Y 
    INSERT_THREAD_COUNT=4
    
    ==================
    
    
    [E0]1373322363068	- STARTED
    [L0]1373322363189	Loader started
    [L1]1373322363192	Loader started
    [L2]1373322363196	Loader started
    [L3]1373322363198	Loader started
    [L1]	1000
    [L0]	1000
    [L3]	1000
    [L2]	1000
    ... ์ค‘๋žต ...		
    [E0]1373322793890	- TOTAL Extracted ROWS: 3004998
    [L3]1373322793913	  TOTAL Loaded ROWS:	617366
    [L0]1373322793921	  TOTAL Loaded ROWS:	893541
    [L1]1373322793924	  TOTAL Loaded ROWS:	898889
    [L2]1373322793935	  TOTAL Loaded ROWS:	595202
    Loading is ended.		
    Elapsed Time : 431636 
    ADD BATCH : 0 
    EXECUTE BATCH : 0
    [VERIFICATION] Source Info : dbtech.lineitem: 3004998 Rows, Target Info :
    dbtech.lineitem : 3004998 Rows [OK]
    
    # dbtech.lineitem ํ…Œ์ด๋ธ”์˜ ์กฐ๊ฑด l_linestatus='F' migrator ์ˆ˜ํ–‰ ๋กœ๊ทธ ํ™•์ธ
    $ cat migrator_b_set.log
    === Parameters === 
        PROPERTY_FILE=migrator.properties
    SOURCE_TYPE=ORACLE
    SOURCE_URL=jdbc:oracle:thin:@localhost:1521:ORCL 
    SOURCE_USER=dbtech
    SOURCE_PASSWORD=************ 
    SOURCE_LOGIN_AS=NORMAL
    SOURCE_SCHEMA=dbtech 
    SOURCE_TABLE=lineitem 
    TARGET_TYPE=DEFAULT
    TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero 
    TARGET_USER=dbtech
    TARGET_PASSWORD=************ 
    SELECT_CONDITION=l_linestatus='O' 
    SELECT_FETCH_SIZE=1024 
    SELECT_AS_BYTE=N 
    INSERT_METHOD=DPL
    INSERT_BATCH=Y 
    INSERT_PARALLEL=Y 
    INSERT_THREAD_COUNT=4
    
    ==================
    
    [E0]1373322363042	- STARTED
    [L0]1373322363168	Loader started
    [L1]1373322363172	Loader started
    [L2]1373322363176	Loader started
    [L3]1373322363215	Loader started
    [L1]	1000
    [L0]	1000
    [L3]	1000
    [L2]	1000
    ...(์ค‘๋žต)		
    [E0]1373322795287     - TOTAL Extracted ROWS:   2996217
    [L1]1373322795290	TOTAL Loaded ROWS:	767331
    [L3]1373322795303	TOTAL Loaded ROWS:	759888
    [L2]1373322795312	TOTAL Loaded ROWS:	739667
    [L0]1373322795314       TOTAL Loaded ROWS:	729331
    Loading is ended.	
    Elapsed Time : 432951 
    ADD BATCH : 0 
    EXECUTE BATCH : 0
    [VERIFICATION] Source Info : dbtech.lineitem: 2996217 Rows, Target Info :
    dbtech.lineitem : 2996217 Rows [OK]
    -- nologging ํ…Œ์ด๋ธ” ํ™•์ธ
    select logging from user_tables where table_name = 'LINEITEM';
    
    -- DB Link๋ฅผ ํ†ตํ•ด ITAS ์ˆ˜ํ–‰ (appned)
    insert /*+ append */ into dbtech.lineitem b
    select * from lineitem@olink where l_linestatus='O';
    -- dml ๋ณ‘๋ ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™œ์„ฑํ™”
    alter session enable parallel dml;
    
    -- DB Link๋ฅผ ํ†ตํ•ด ITAS ์ˆ˜ํ–‰ (parallel)
    insert /*+ parallel(b 4) */ into dbtech.lineitem b 
    select * from lineitem@olink where l_linestatus='O';
    -- ์„ธ์…˜1๊ณผ ์„ธ์…˜2์—์„œ ์ž…๋ ฅํ•œ ์ตœ์ข… ๋ฐ์ดํ„ฐ
    SQL> select l_linestatus, count(*) from dbtech.lineitem@olink group by l_linestatus;
    
    
    L_LINESTATUS COUNT(*)
    ------------ --------
    F            2996217
    O            3004998
    
    2 rows selected
    SQL> set timing on
    SQL> alter session enable parallel dml;
    
    Session altered.
    
    Total elapsed time 00:00:00.005235
    
    SQL> insert /*+ append parallel(b 4) */ into dbtech.lineitem b 
    select * from lineitem@olink where l_linestatus='O';
    
    3004998 rows inserted.
    
    Total elapsed time 00:07:07.806974
    
    SQL> commit;
    
    Commit completed.
    
    Total elapsed time 00:00:00.000307
    SQL> set timing on
    SQL> alter session enable parallel dml;
    
    Session altered.
    
    Total elapsed time 00:00:00.005235
    
    SQL> insert /*+ append parallel(b 4) */ into dbtech.lineitem b 
    select * from lineitem@olink where l_linestatus='F';
    
    2996217 rows inserted.
    
    Total elapsed time 00:07:01.692934
    
    SQL> commit;
    
    Commit completed.
    
    Total elapsed time 00:00:00.000307
    SQL> select count(*) from dbtech.lineitem;
    
    COUNT(*)
    -----------
    6001215
    
    1 row selected.
    # SAM ํŒŒ์ผ์„ ํŠน์ • ๊ธฐ์ค€์œผ๋กœ N๊ฐœ๋กœ ํŒŒ์ผ์„ ๋‚˜๋ˆˆ๋‹ค.
    # ๋‚˜๋ˆˆ ํŒŒ์ผ ๋งˆ๋‹ค tbLoader Control ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.
    
    # aa ์ปจํŠธ๋กค ํŒŒ์ผ
    $ cat lineitem.ctl.aa 
    load data
    infile 'lineitem.tbl.aa' 
    logfile 'lineitem.tbl.aa.log' 
    badfile 'lineitem.tbl.aa.bad' 
    append
    into table lineitem 
    fields terminated by '|' 
    (L_ORDERKEY,
    L_PARTKEY, 
    L_SUPPKEY, 
    L_LINENUMBER, 
    L_QUANTITY, 
    L_EXTENDEDPRICE, 
    L_DISCOUNT, 
    L_TAX,
    L_RETURNFLAG, 
    L_LINESTATUS, 
    L_SHIPDATE, 
    L_COMMITDATE, 
    L_RECEIPTDATE, 
    L_SHIPINSTRUCT, 
    L_SHIPMODE, 
    L_COMMENT)
    
    # ab ์ปจํŠธ๋กค ํŒŒ์ผ
    $ cat lineitem.ctl.ab 
    load data
    infile 'lineitem.tbl.ab' 
    logfile 'lineitem.tbl.ab.log' 
    badfile 'lineitem.tbl.ab.bad' 
    append
    into table lineitem 
    fields terminated by '|' 
    (L_ORDERKEY,
    L_PARTKEY, 
    L_SUPPKEY, 
    L_LINENUMBER, 
    L_QUANTITY, 
    L_EXTENDEDPRICE, 
    L_DISCOUNT, 
    L_TAX, 
    L_RETURNFLAG, 
    L_LINESTATUS, 
    L_SHIPDATE, 
    L_COMMITDATE, 
    L_RECEIPTDATE, 
    L_SHIPINSTRUCT, 
    L_SHIPMODE, 
    L_COMMENT)
    $ cat run.sh
    # aa ํŒŒ์ผ tbLoader ๋ช…๋ น
    nohup tbloader userid=dbtech/dbtech@tibero control=lineitem.ctl.aa 
    direct=y dpl_parallel=y &
    
    # ab ํŒŒ์ผ tbLoader ๋ช…๋ น
    nohup tbloader userid=dbtech/dbtech@tibero control=lineitem.ctl.ab 
    direct=y dpl_parallel=y &
    -- lineitem.tbl.aa.log:
    
    
    tbLoader 7
    
    
    TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
    
    
    Data File : lineitem.tbl.aa
    Bad File : lineitem.tbl.aa.bad Discard File : lineitem.tbl.aa.dsc
    
    Table 'LINEITEM' was loaded from the data file.
    
    COLUMN_NAME		POSITION	DATATYPE
    ---------------------  -----------      -----------------
    L_ORDERKEY			1	CHARACTER
    L_PARTKEY			2	CHARACTER
    L_SUPPKEY			3	CHARACTER
    L_LINENUMBER			4	CHARACTER
    L_QUANTITY			5	CHARACTER
    L_EXTENDEDPRICE			6	CHARACTER
    L_DISCOUNT			7	CHARACTER
    L_TAX			        8	CHARACTER
    L_RETURNFLAG			9	CHARACTER
    L_LINESTATUS			10	CHARACTER
    L_SHIPDATE			11	DATE
    L_COMMITDATE			12	DATE
    L_RECEIPTDATE			13	DATE
    L_SHIPINSTRUCT			14	CHARACTER
    L_SHIPMODE			15	CHARACTER
    L_COMMENT			16	CHARACTER
    
    Table LINEITEM :					
    ------------------
          0        Rows were skipped.
    3000608        Rows were requested to load. 
    3000608        Rows were loaded successfully.
          0        Rows were failed to load because of some errors
          0        Rows were discarded.
    
    0 Rows were failed to load because of some errors
    
    Elapsed time was: 00:00:33.670898
    -- lineitem.tbl.ab.log:
    
    tbLoader 7
    
    TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
    
    Data File : lineitem.tbl.ab 
    Bad File : lineitem.tbl.ab.bad
    Discard File : lineitem.tbl.ab.dsc
    
    Table 'LINEITEM' was loaded from the data file.
    
    COLUMN_NAME			POSITION	DATATYPE
    -----------------------------  -----------     -----------
    L_ORDERKEY			1		CHARACTER
    L_PARTKEY			2		CHARACTER
    L_SUPPKEY			3		CHARACTER
    L_LINENUMBER			4		CHARACTER
    L_QUANTITY			5		CHARACTER
    L_EXTENDEDPRICE			6		CHARACTER
    L_DISCOUNT			7		CHARACTER
    L_TAX			        8		CHARACTER
    L_RETURNFLAG			9		CHARACTER
    L_LINESTATUS			10		CHARACTER
    L_SHIPDATE			11		DATE
    L_COMMITDATE			12		DATE
    L_RECEIPTDATE			13		DATE
    L_SHIPINSTRUCT			14		CHARACTER
    L_SHIPMODE			15		CHARACTER
    L_COMMENT			16		CHARACTER
    
    Table LINEITEM :					
    ------------------
    
          0 Rows were skipped.
    3000607 Rows were requested to load. 
    3000607 Rows were loaded successfully.
          0 Rows were failed to load because of some errors
          0 Rows were discarded.
    
    0 Rows were failed to load because of some errors
    
    Total Elapsed Time: 00:00:33.795058
    --DBTECH ๊ณ„์ •์— Tablespace, User, Table, Table Data ์ƒ์„ฑ
    SQL> create tablespace DBTECH_TBS
    2 datafile 'dbtech_tbs01.dtf' size 50M
    3 AUTOEXTEND ON NEXT 20M MAXSIZE 5G
    4 EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
    
    Tablespace created.
    
    SQL> create user dbtech identified by dbtech
    2 default tablespace DBTECH_TBS;
    
    User created.
    
    SQL> grant connect, resource to dbtech;
    
    Grant succeeded.
    
    CONNECT dbtech/dbtech;
    
    SQL> create table board (no number,
    2 empno number(4),
    3 title varchar(20),
    4 contents clob,
    5 regdate date default sysdate,
    6 hit number default 0)
    7 PCTFREE 10
    8 INITRANS 2;
    
    Table created.
    
    SQL> INSERT INTO BOARD VALUES
    (1, 7369, 'introduction', 'Hello, my name is SMITH.', sysdate, 0);
    
    1 row created.
    
    SQL> INSERT INTO BOARD VALUES
    (2, 7499, 'introduction', 'Hello, my name is ALLEN.', sysdate, 0);
    
    1 row created.
    
    SQL> INSERT INTO BOARD VALUES
    (3, 7521, 'introduction', 'Hello, my name is WARD.', sysdate, 0);
    
    1 row created.
    
    SQL> INSERT INTO BOARD VALUES
    (4, 7566, 'introduction', 'Hello, my name is JONES.', sysdate, 0);
    
    1 row created.
    
    SQL> INSERT INTO BOARD VALUES
    (5, 7654, 'introduction', 'Hello, my name is MARTIN.', sysdate, 0);
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    --Migrationํ•  ๋•Œ ์ ‘์†ํ•  ๊ณ„์ •(DBTECH_TEST) ์ƒ์„ฑ
    SQL> CONNECT /as sysdba
    Connected.
    
    SQL> create user dbtech_test identified by dbtech_test
    2 default tablespace DBTECH_TBS;
    
    User created.
    
    --DBTECH_TEST ๊ณ„์ •์— ๊ถŒํ•œ ๋ถ€์—ฌ(connect)
    SQL> grant connect to dbtech_test;
    
    Grant succeeded.
    
    --DBTECH_TEST ๊ณ„์ •์— Table ์กฐํšŒ ๊ถŒํ•œ ๋ถ€์—ฌ(select on dbtech.board)
    SQL> grant select on dbtech.board to dbtech_test;
    
    Grant succeeded.
    
    --DBTECH_TEST ๊ณ„์ •์— ๊ถŒํ•œ ๋ถ€์—ฌ(select any dictionary)
    SQL> grant select any dictionary to dbtech_test;
    
    Grant succeeded.
    SQL> create tablespace DBTECH_TBS
       2 datafile 'dbtech_tbs01.dtf' size 50M
       3 AUTOEXTEND ON NEXT 20M MAXSIZE 5G
       4 EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
    
    Tablespace 'DBTECH_TBS' created.
    
    SQL> create user dbtech identified by dbtech
       2 default tablespace DBTECH_TBS;
    
    User 'DBTECH' created.
    
    SQL> grant connect, resource, select any dictionary to dbtech;
    
    Granted.
    
    SQL> conn dbtech/dbtech
    Connected to Tibero.
    
    SQL> create table board (no number, 
       2                     empno number(4),
       3                     title varchar(20),
       4                     contents clob,
       5                     regdate date default sysdate,
       6                     hit number default 0)
       7 PCTFREE 10
       8 INITRANS 2;
    
    Table 'BOARD' created.
    
    SQL> exit
    Disconnected.
    
    $ ls -lrt
    -rw-r--r--. 1 tibero dba 1340431 Nov 15 15:29 antlr-4.3-complete.jar
    -rw-r--r--. 1 tibero dba    1376 Nov 15 15:29 ANTLR4_License.txt
    -rw-r--r--. 1 tibero dba 1604783 Nov 15 15:29 internal-jdbc-16.jar
    -rw-r--r--. 1 tibero dba     167 Nov 15 15:29 migrator.bat
    -rw-r--r--. 1 tibero dba    8313 Nov 15 15:29 migrator.properties.eg
    -rw-r--r--. 1 tibero dba     170 Nov 15 15:29 migrator.sh
    -rw-r--r--. 1 tibero dba  167137 Nov 15 15:29 migrator_cli.jar
    -rw-r--r--. 1 tibero dba  352917 Nov 15 15:29 msllogger-14.jar
    -rw-r--r--. 1 tibero dba    1320 Nov 15 15:29 pgjdbc_License.txt
    -rw-r--r--. 1 tibero dba  850563 Nov 15 15:29 postgresql-42.2.27.jre6.jar
    -rw-r--r--. 1 tibero dba    4054 Nov 15 15:29 readme.txt
    -rw-r--r--. 1 tibero dba  123556 Nov 15 15:29 toolcom.jar
    -rwxr-xr-x. 1 tibero dba 4210517 Nov 16 13:54 ojdbc6.jar
    
    $sh migrator.sh SOURCE_TYPE=ORACLE SOURCE_URL=jdbc:oracle:thin:@localhost:1525:oraclesb SOURCE_USER=dbtech_test SOURCE_PASSWORD=dbtech_test SOURCE_LOGIN_AS=NORMAL SOURCE_SCHEMA=dbtech SOURCE_TABLE=board TARGET_URL=jdbc:internal:thin:@localhost:6213:JSH_T7_DB TARGET_USER=dbtech TARGET_PASSWORD=dbtech TARGET_SCHEMA=dbtech TARGET_TABLE=board 
    SOURCE_USER=dbtech_test SOURCE_PASSWORD=dbtech_test SOURCE_LOGIN_AS=NORMAL
    SOURCE_SCHEMA=dbtech SOURCE_TABLE=board
    TARGET_URL=jdbc:internal:thin:@localhost:6213:JSH_T7_DB TARGET_USER=dbtech 
    TARGET_PASSWORD=dbtech TARGET_SCHEMA=dbtech TARGET_TABLE=board
    INFO[16:51:45,676][main]TableMigrator.initAndDoMigrate()(1429) 
    ********************************************************************************
    *
    * Start Log for table migrator.
    *     Vendor:  tibero
    *     Product: table migrator
    *     Version: 263750
    *
    * Trace is started on 16:51:45.675
    *     Log level: INFO
    *
    ********************************************************************************
    
     INFO[16:51:45,679][main]TableMigrator.initAndDoMigrate()(1431) 
    === Parameters ===
    SOURCE_TYPE=ORACLE
    SOURCE_DRIVER=oracle.jdbc.OracleDriver
    SOURCE_URL=jdbc:oracle:thin:@localhost:1525:oraclesb
    SOURCE_USER=DBTECH_TEST
    SOURCE_PASSWORD=************
    SOURCE_LOGIN_AS=NORMAL
    SOURCE_SCHEMA=dbtech
    SOURCE_SCHEMAORIGN=dbtech
    SOURCE_TABLE=board
    SELECT_SUBPARTITION=
    BATCH_THRESHOLD=128
    EXTRACT_PARALLEL=N
    EXTRACT_THREAD_COUNT=1
    SOURCE_TABLE_DEDUPLICATE=N
    USE_PARALLEL_HINT=N
    PARALLEL_HINT_CNT=-1
    USE_OBJECT_PARALLEL_HINT=N
    TARGET_TYPE=DEFAULT
    TARGET_DRIVER=com.m.internal.jdbc.MInternalDriver
    TARGET_URL=jdbc:internal:thin:@localhost:6213:JSH_T7_DB
    TARGET_USER=DBTECH
    TARGET_PASSWORD=************
    TARGET_SCHEMA=dbtech
    TARGET_TABLE=board
    COMMIT_SIZE=-1
    INDEX_DISABLE=N
    SELECT_FETCH_SIZE=1024
    SELECT_AS_BYTE=N
    DB_FILE_MULTIBLOCK_READ_COUNT=-1
    INSERT_METHOD=dpl
    INSERT_BATCH=Y
    INSERT_PARALLEL=N
    INSERT_THREAD_COUNT=1
    INSERT_ZERO_LENGTH_STRING_AS_NULL=Y
    DPL_LOG_UNIT=500
    LOG_FILE_NAME=tableMigrator.log
    LOG_LEVEL=INFO
    CHECK_COLUMN_METADATA=N
    ==================
     INFO[16:51:45,784][TabMig[16:51:45.680]]TbCmdConnection.connect()(58) Connect To The Source- URL : jdbc:oracle:thin:@localhost:1525:oraclesb ID : DBTECH_TEST
     INFO[16:51:45,983][TabMig[16:51:45.680]]TbCmdConnection.connect()(58) Connect To The Target- URL : jdbc:internal:thin:@localhost:6213:JSH_T7_DB ID : DBTECH
     INFO[16:51:46,228][TabMig[16:51:45.680]]TableMigrator.migrate()(256) SOURCE_TYPE : ORACLE
     INFO[16:51:46,228][TabMig[16:51:45.680]]TableMigrator.migrate()(257) SOURCE_SCHEMA : dbtech
     INFO[16:51:46,228][TabMig[16:51:45.680]]TableMigrator.migrate()(275) SOURCE_TABLE : board
     INFO[16:51:46,229][TabMig[16:51:45.680]]TableMigrator.migrate()(277) TARGET_TYPE : DEFAULT
     INFO[16:51:46,229][TabMig[16:51:45.680]]TableMigrator.migrate()(278) TARGET_SCHEMA : dbtech
     INFO[16:51:46,229][TabMig[16:51:45.680]]TableMigrator.migrate()(293) TARGET_TABLE : board
     INFO[16:51:46,236][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(52)  SELECT column_name, data_type, virtual_column, hidden_column FROM DBA_TAB_COLS WHERE OWNER=? AND TABLE_NAME=? order by column_id
     INFO[16:51:46,292][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(55) setString(1) : DBTECH
     INFO[16:51:46,292][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(58) setString(2) : BOARD
     INFO[16:51:46,308][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(125) SELECT iot_type FROM dba_tables WHERE OWNER = ? and TABLE_NAME = ?
     INFO[16:51:46,309][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(128) setString(1) : DBTECH
     INFO[16:51:46,309][TabMig[16:51:45.680]]OracleTableInfo.getTableInfo()(131) setString(2) : BOARD
     INFO[16:51:46,311][TabMig[16:51:45.680]]TableMigrator.migrate()(375) start extracting thread...
     INFO[16:51:46,315][TabMig[16:51:45.680].E0]OracleDataExtractor.run()(86) run
     INFO[16:51:46,315][TabMig[16:51:45.680].E0]DataExtractor.loggingTabAndColInfo()(531) Extract Information
     INFO[16:51:46,316][TabMig[16:51:45.680].E0]DataExtractor.loggingTabAndColInfo()(532) table name : DBTECH.BOARD
     INFO[16:51:46,316][TabMig[16:51:45.680].E0]DataExtractor.loggingTabAndColInfo()(538) columns [6] - "NO" "EMPNO" "TITLE" "REGDATE" "HIT" "CONTENTS" 
     INFO[16:51:46,318][TabMig[16:51:45.680].E0]OracleDataExtractor.run()(93) TabMig[16:51:45.680].E0 - sql : SELECT '0', t."NO", t."EMPNO", t."TITLE", t."REGDATE", t."HIT", t."CONTENTS" FROM DBTECH.BOARD t
     INFO[16:51:46,327][TabMig[16:51:45.680]]TableMigrator.migrate()(536) start loading thread...
     INFO[16:51:46,328][TabMig[16:51:45.680]]DataLoader.setRemainThr()(85) Set Remain Threads [0], to [1]
     INFO[16:51:46,332][L0]TbDPLDataLoader.setDirPathStream()(525) DPL Loading Information
     INFO[16:51:46,332][L0]TbDPLDataLoader.setDirPathStream()(526) table name : dbtech.board
     INFO[16:51:46,332][L0]TbDPLDataLoader.setDirPathStream()(532) columns [6] - "NO" "EMPNO" "TITLE" "REGDATE" "HIT" "CONTENTS" 
     INFO[16:51:46,337][TabMig[16:51:45.680].E0]OracleDataExtractor.run()(282) 
      Total Extract Time : 20ms
      Time For Putting Row on Queue : 0ms
      Time For Executing Query Time : 12ms
      Time For Executing Fetch Time : 4ms
      Percentage of Query and Fetch => 80.00%
     INFO[16:51:46,337][TabMig[16:51:45.680].E0]OracleDataExtractor.run()(283) TOTAL Extracted ROWS: 5 (source schema = DBTECH, source table = BOARD)
     INFO[16:51:46,338][TabMig[16:51:45.680]]TableMigrator.migrate()(580) Extractor termFlag : [true], isError : [false]
     INFO[16:51:46,338][TabMig[16:51:45.680].E0]DataExtractor.setTermFlag()(543) Set termFlag and isError : [false]
     INFO[16:51:46,338][TabMig[16:51:45.680].E0]DataExtractor.setTermFlag()(544) complete
     INFO[16:51:46,354][L0.TbDPLDataLoader0]DataLoaderManager.run()(47) run
     INFO[16:51:46,361][L0.TbDPLDataLoader0]DataLoaderManager.run()(240)  Total Insert Time : 29ms
      Time For Taking Row From Queue: 0ms
      Time For Executing Batch : 4ms
      Time For Executing Commit : 2ms
      Percentage of Batch and Commit Time => 20.69%
     INFO[16:51:46,361][L0.TbDPLDataLoader0]DataLoaderManager.run()(242) [L0.TbDPLDataLoader0]1700121106361 TOTAL Loaded ROWS: 5 (target schema = dbtech, target table = board)
     INFO[16:51:46,374][TabMig[16:51:45.680]]TableMigrator.migrate()(613) Loader remainThr : [0], isError : [false]
     INFO[16:51:46,374][L0.TbDPLDataLoader0]DataLoader.finish()(80) Decrement remainThr : [0] and isError : [false]
     INFO[16:51:46,375][TabMig[16:51:45.680]]TableMigrator.resetThrs()(1359) terminate extract thread...1
     INFO[16:51:46,375][TabMig[16:51:45.680]]TableMigrator.resetThrs()(1373) terminate loader thread...1
     INFO[16:51:46,375][TabMig[16:51:45.680]]TableMigrator.migrate()(627) [VERIFICATION] Source Info : dbtech.board : 5 Rows, Target Info : dbtech.board : 5 Rows [OK]
     INFO[16:51:46,375][TabMig[16:51:45.680]]TableMigrator.migrate()(686) extract conneciton close
     INFO[16:51:46,377][TabMig[16:51:45.680]]TableMigrator.migrate()(695) loader connection close
     INFO[16:51:46,377][TabMig[16:51:45.680]]TableMigrator.migrate()(705) Elapsed Time (milliseconds) : 697
     INFO[16:51:46,377][TabMig[16:51:45.680]]TableMigrator.migrate()(707) End Migration

    DB ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ •

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • ๊ณผ์ •์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์ปจํŠธ๋กค ํŒŒ์ผ์€ ๊ธฐ๋ณธ์œผ๋กœ migrator.properties ํŒŒ์ผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

    ํŒŒ๋ผ๋ฏธํ„ฐ ์˜ˆ์‹œ

    (migrator.properties ํŒŒ์ผ์— ์„ค์ •)

    SOURCE_TYPE=ORACLE
    SOURCE_DRIVER=oracle.jdbc.OracleDriver
    SOURCE_URL=jdbc:oracle:thin:@localhost:1539:orcl
    SOURCE_USER=sys
    SOURCE_PASSWORD=oracle
    SOURCE_LOGIN_AS=sysdba
    SOURCE_SCHEMA=SCOTT
    SOURCE_TABLE=t1
    SOURCE_TABLE_DEDUPLICATE=N
    TARGET_TYPE=DEFAULT
    TARGET_DRIVER=com.m.internal.jdbc.MInternalDriver
    TARGET_URL=jdbc:internal:thin:@localhost:59166:tibero
    TARGET_USER=tibero
    TARGET_PASSWORD=tmax
    TARGET_SCHEMA=TIBERO
    TARGET_TABLE=t1
    EXTRACT_PARALLEL=N
    EXTRACT_PARALLEL_RANGE_BY_ROWID=N
    EXTRACT_THREAD_COUNT=1
    SELECT_TSN=17322052
    SELECT_CONDITION= c1>1
    SELECT_FETCH_SIZE=1024
    SELECT_PARTITION=part1
    SELECT_SUBPARTITION=subpar1
    SELECT_AS_BYTE=N
    DB_FILE_MULTIBLOCK_READ_COUNT=-1
    OPTIMIZER_HINT=/*+ FULL(t) PARALLEL(t, 4) */
    USE_PARALLEL_HINT=N
    USE_OBJECT_PARALLEL_HINT=N
    PARALLEL_HINT_CNT=-1
    INSERT_METHOD=dpl
    COMMIT_SIZE=-1
    INDEX_DISABLE=N
    INSERT_BATCH=Y
    BATCH_THRESHOLD=128
    DPL_LOG_UNIT=500
    INSERT_PARALLEL=N
    INSERT_THREAD_COUNT=1
    INSERT_PARTITION=
    INSERT_ZERO_LENGTH_STRING_AS_NULL=Y
    TRIM=
    BYTEA_TO_BLOB=N
    TEXT_TO_CLOB=N                              
    MONITORING_LOG=N
    MONITORING_LOG_UNIT=500
    MONITORING_SESS_STAT=CPU used by this session;parse time cpu;parse count(hard)
    CHECK_COLUMN_METADATA=N
    ROW_QUEUE_TYPE=ARRAY(10240)
    VERIFY_TABLE=N
    VERIFY_TABLE_NAME=VERIFY_TBL
    LOG_LEVEL=INFO
    LOG_FILE_NAME=tableMigrator.log
    LOG_DIR=

    ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Source ์ ‘์† ์ •๋ณด ๊ด€๋ จ

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    ํŒŒ๋ผ๋ฏธํ„ฐ
    ์„ค๋ช…

    SOURCE_TYPE

    Source DB์˜ ํƒ€์ž…์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ โ€“ ORACLE(๊ธฐ๋ณธ๊ฐ’) : Source DB๊ฐ€ Oracle์ผ ๋•Œ ์„ค์ •ํ•˜๋ฉฐ SOURCE_LOGIN_AS ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์„ค์ •์ด ํ•„์š” โ€“ GENERIC : Source DB๊ฐ€ ์ผ๋ฐ˜ DB์ผ ๋•Œ ์„ค์ •ํ•œ๋‹ค. ํŠน์ • ๋ฒค๋”๋ณ„ API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ‘œ์ค€ JDBC API๋งŒ์„ ์ด์šฉํ•˜์—ฌ ๋™์ž‘ํ•˜๋ฉฐ SOURCE_DRIVER ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์„ค์ •์ด ํ•„์š” โ€“ DEFAULT : Source DB๊ฐ€ Tibero์ผ ๋•Œ ์„ค์ •

    SOURCE_DRIVER

    Source DB์— ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” JDBC Driver ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ SOURCE_TYPE=GENERIC์ผ ๊ฒฝ์šฐ ์„ค์ •์ด ํ•„์š” โ€“ Oracle(๊ธฐ๋ณธ๊ฐ’) : oracle.jdbc.OracleDriver โ€“ MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDriver โ€“ DB2 : com.ibm.db2.jcc.DB2Driver โ€“ MYSQL : com.mysql.jdbc.Driver โ€“ PostgreSQL : org.postgresql.Driver โ€“ Sybase ASE : com.sybase.jdbc3.jdbc.SybDriver โ€“ Informix : com.informix.jdbc.IfxDriver

    SOURCE_URL

    Source DB์˜ JDBC ์—ฐ๊ฒฐ URL์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ โ€“ Oracle(๊ธฐ๋ณธ๊ฐ’) : jdbc:oracle:thin:@localhost:1521:orcl โ€“ MSSQL : jdbc:sqlserver://127.0.0.1:1433;databaseName=master โ€“ DB2 : jdbc:db2://127.0.0.1:50000/logdb โ€“ MYSQL : jdbc:mysql://127.0.0.1:3306/mysql โ€“ PostgreSQL : jdbc:postgresql://127.0.0.1:5432/postgres โ€“ Sybase ASE : jdbc:sybase:Tds:127.0.0.1:7100?ServiceName=sybase โ€“ Informix : jdbc:informix-sqli://127.0.0.1:18220/informix:INFORMIXSERVER=informix

    SOURCE_USER

    Source DB์— ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๋ฉฐ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : sys)

    SOURCE_PASSWORD

    Source DB์— ๋กœ๊ทธ์ธ ํ•˜๋Š” ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : oracle)

    SOURCE_LOGIN_AS

    Oracle์— ์ ‘์†ํ•  ๋•Œ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ SOURCE_TYPE=ORACLE์ธ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ • โ€“ SYSDBA(๊ธฐ๋ณธ๊ฐ’) โ€“ NORMAL

    SOURCE_SCHEMA

    Source DB์—์„œ ์ด๊ด€ํ•˜๋Š” Table์˜ ์‹ค์ œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๋ฉฐ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : SOURCE_USER์—์„œ ์„ค์ •ํ•œ ์‚ฌ์šฉ์ž ์ด๋ฆ„)

    SOURCE_TABLE

    Source DB์—์„œ ์ด๊ด€ํ•˜๋Š” Table ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๋ฉฐ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ

    (ํ•„์ˆ˜ ์ž…๋ ฅ)

    SOURCE_TABLE_DEDUPLICATE

    dedup ์˜ต์…˜์ด ์‚ฌ์šฉ๋œ ํ…Œ์ด๋ธ”์˜ ์ด๊ด€ ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” deadlock ์—๋Ÿฌ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    BATCH_THRESHOLD=2 ์ด์ƒ์ผ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ BATCH_THRESHOLD=1์ธ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ • - Y - N

    TARGET_TYPE

    Target DB์˜ ํƒ€์ž…์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ โ€“ DEFAULT : Target DB๊ฐ€ Tibero์ผ ๋•Œ ์„ค์ •

    TARGET_DRIVER

    Target DB์— ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” JDBC Driver ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : com.m.internal.jdbc.MInternalDriver)

    TARGET_URL

    EXTRACT_PARALLEL

    SOURCE DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” Thread์˜ parallel ๋™์ž‘ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ SOURCE_TYPE์ด Oracle, default, postgresql์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    row๊ฐ€ rowid Hashing์„ ํ†ตํ•ด ๋‚˜๋ˆ ์ง€๋ฏ€๋กœ ์ด๊ด€ ๋™์•ˆ rowid ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    EXTRACT_PARALLEL_RANGE_BY_ROWID

    rowid์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ row๋ฅผ ๋‚˜๋ˆ„๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    SOURCE_TYPE=Oracle, EXTRACT_PARALLEL=Y์ธ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ • ๊ฐ€๋Šฅora_hash function์„ ์ง€์›ํ•˜์ง€์•Š๋Š” Oracle 9๋ฒ„์ „ ์ดํ•˜์—์„œ ์„ฑ๋Šฅ์  ์ด์  ์กด์žฌ

    IOT ํ…Œ์ด๋ธ”์€ ํ•ด๋‹น ์˜ต์…˜ ์‚ฌ์šฉ๋ถˆ๊ฐ€ - Y - N

    EXTRACT_THREAD_COUNT

    INSERT_METHOD

    ๋ฐ์ดํ„ฐ์˜ INSERT ๋ฐฉ์‹์„ ์ง€์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    โ€“ DPL(๊ธฐ๋ณธ๊ฐ’) : DIRECT PATH LOADING โ€“ CPL : CONVENTIONAL PATH LOADING

    COMMIT_SIZE

    TARGET_DB์— ๋ฐ์ดํ„ฐ๋ฅผ commitํ•˜๋Š” ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    INSERT_METHOD=cpl์ธ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ํ•˜๋ฉฐ COMMIT_SIZE=-1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ธ commit only once๋กœ ๋™์ž‘ (๊ธฐ๋ณธ๊ฐ’ : commit once after loading)

    INDEX_DISABLE

    BYTEA_TO_BLOB

    bytea ํƒ€์ž…์„ blob ํƒ€์ž…์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y - N(๊ธฐ๋ณธ๊ฐ’)

    TEXT_TO_CLOB

    text ํƒ€์ž…์„ clob ํƒ€์ž…์œผ๋กœ ์ „ํ™”ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y - N(๊ธฐ๋ณธ๊ฐ’)

    MONITORING_LOG

    ๋ชจ๋‹ˆํ„ฐ๋ง ๋กœ๊ทธ ์ถœ๋ ฅ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ์ด๊ด€์— ์‚ฌ์šฉ๋œ ๋™์ž‘์— ๋Œ€ํ•œ ํ‰๊ท  ์‹œ๊ฐ„ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    MONITORING_LOG_UNIT

    ๋ชจ๋‹ˆํ„ฐ๋ง ๋กœ๊ทธ์—์„œ ์‹œ๊ฐ„์„ ํ‰๊ท  ๋‚ผ ๋•Œ ์‚ฌ์šฉํ•  ๋กœ์šฐ์˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : 500)

    MONITORING_SESS_STAT

    Target ์ ‘์† ์ •๋ณด ๊ด€๋ จ

    ๋ฐ์ดํ„ฐ Extractor ๊ด€๋ จ

    ๋ฐ์ดํ„ฐ Loader ๊ด€๋ จ

    POSTGRESQL ๊ด€๋ จ

    ์ผ๋ฐ˜ ์„ค์ •

    Target DB์˜ JDBC ์—ฐ๊ฒฐ URL์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : jdbc:internal:thin:@localhost:8629:tibero)

    TARGET_USER

    Target DB์— ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๋ฉฐ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : sys)

    TARGET_PASSWORD

    Target DB์— ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž ํŒจ์Šค์›Œ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : tibero)

    TARGET_SCHEMA

    Target DB์— ์ด๊ด€ ๋ฐ›๋Š” Table์˜ ์‹ค์ œ ์‚ฌ์šฉ์ž ์ด๋ฆ„

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๊ณ  ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : TARGET_USER์—์„œ ์„ค์ •ํ•œ ์‚ฌ์šฉ์ž ์ด๋ฆ„)

    TARGET_TABLE

    Target DB์— ์ด๊ด€ ๋ฐ›๋Š” Table ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ธ์‹๋˜๊ณ  ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : SOURCE_TABLE์—์„œ ์„ค์ •ํ•œ Table ์ด๋ฆ„)

    ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” Thread์˜ ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    EXTRACT_PARALLEL_RANGE_BY_ROWID ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์˜ extent ์ˆ˜์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๊ฐ’์œผ๋กœ ์„ค์ • (๊ธฐ๋ณธ๊ฐ’ : 1)

    SELECT_TSN

    ํŠน์ • TSN (Oacle์—์„œ๋Š” SCN) ์‹œ์  ์ดํ›„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ)

    SELECT_CONDITION

    Table ๋ฐ์ดํ„ฐ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์กฐ๊ฑด์ ˆ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ)

    SELECT_FETCH_SIZE

    Source DB์—์„œ ์ถ”์ถœํ•ด์˜จ ๊ฒฐ๊ณผ set์„ fetch ํ•ด์˜ค๋Š” ๋‹จ์œ„ (row ์ˆ˜)๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : 1024)

    SELECT_PARTITION

    ํŒŒํ‹ฐ์…˜ Table์—์„œ ์ง€์ •ํ•œ ํŒŒํ‹ฐ์…˜์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ)

    SELECT_SUBPARTITION

    ํŒŒํ‹ฐ์…˜ Table์—์„œ ์ง€์ •ํ•œ ์„œ๋ธŒ ํŒŒํ‹ฐ์…˜์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ SELECT_PARTITION ์˜ต์…˜๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ SELECT_PARTITION ์˜ต์…˜์ด ์ ์šฉ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ)

    SELECT_AS_BYTE

    Table์˜ char, varchar์™€ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—ด์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •๊ณผ ๋‹ค๋ฅธ ์บ๋ฆญํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ๋ฌธ์ž์—ด์ด ์ €์žฅ๋˜๋ฉด ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์‹œ ๋ฌธ์ž์—ด์˜ ์ •์ƒ์  ๋ฐฐ์—ด ๋ถˆ๊ฐ€

    ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ Tibero์— ์˜ฎ๊ธฐ๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    DB_FILE_MULTIBLOCK_READ_COUNT

    ์ด๊ด€ ์ „ ํ•ด๋‹น ์„ธ์…˜์— ๋Œ€ํ•œ DB_FILE_MULTBLOCK_READ_COUNT ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    SOURCE_TYPE=Oracle์ธ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ’์„ -1๋กœ ์„ค์ • ์‹œ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ (๊ธฐ๋ณธ๊ฐ’ : -1)

    OPTIMIZER_HINT

    SOURCE DB๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ SELECT ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํžŒํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ํ…Œ์ด๋ธ” ์ด๋ฆ„์€ 't'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ SOURCE_TYPE=Oracle, SOURCE_TYPE=Default์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋งŒ์•ฝ USE_PARALLEL_HINT ์˜ต์…˜๊ณผ ๋™์‹œ์— ์‚ฌ์šฉ๋œ๋‹ค๋ฉด, OPTIMIZER_HINT ์˜ต์…˜์ด ์šฐ์„ ์ ์œผ๋กœ ์ ์šฉ - ์˜ˆ : OPTIMIZER_HINT=/*+ FULL(t) PARALLEL(t, 4)

    USE_PARALLEL_HINT

    SOURCE DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ SELECT ํ•  ๋•Œ PARALLEL ํžŒํŠธ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ SOURCE_TYPE=Oracle, SOURCE_TYPE=Default์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    USE_OBJECT_PARALLEL_HINT

    PARALLEL ํžŒํŠธ ์‚ฌ์šฉ ์‹œ Table ์ด๋ฆ„์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ํ•ด๋‹น ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” USE_PARALLEL_HINT=Y ์„ค์ •์ด ํ•„์š”, SOURCE_DB๊ฐ€ Default, Oracle์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    PARALLEL_HINT_CNT

    PARALLEL ํžŒํŠธ ์‚ฌ์šฉ ์‹œ DOP๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ํ•ด๋‹น ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” USE_PARALLEL_HINT=Y ์„ค์ •์ด ํ•„์š”

    (๊ธฐ๋ณธ๊ฐ’ : -1)

    TARGET_TABLE์˜ INDEX๋ฅผ ์ž๋™์œผ๋กœ DISABLE ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    INSERT_BATCH

    Table์˜ ๋ฐ์ดํ„ฐ๋ฅผ Batch Insert ๋ฐฉ์‹์œผ๋กœ load ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    INSERT_METHOD=CPL์ธ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ - Y - N

    BATCH_THRESHOLD

    TARGET_DB์— Batch๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‹จ์œ„(row ์ˆ˜)๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    INSERT_METHOD=CPL, INSERT_BATCH=Y ์ธ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ํ•˜๋ฉฐ -1 ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฏธ ๋™์ž‘ (๊ธฐ๋ณธ๊ฐ’ : 32)

    DPL_LOG_UNIT

    ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” row์˜ ๋กœ๋”ฉ ๋‹จ์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    INSERT_METHOD=DPL์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ๊ฐ€ ๋ฏธ ์ถœ๋ ฅ (๊ธฐ๋ณธ๊ฐ’ : 500)

    INSERT_PARALLEL

    ๋ฐ์ดํ„ฐ๋ฅผ loadํ•˜๋Š” Thread์˜ parallel ๋™์ž‘ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y(๊ธฐ๋ณธ๊ฐ’) - N

    INSERT_THREAD_COUNT

    ๋ฐ์ดํ„ฐ loader thread ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ INSERT_PARALLEL=Y์ธ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ (๊ธฐ๋ณธ๊ฐ’ : 4)

    INSERT_PARTITION

    ์ง€์ •ํ•œ ํŒŒํ‹ฐ์…˜์— ์ด๊ด€ํ•  ๊ฒฝ์šฐ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ)

    INSERT_ZERO_LENGTH_STRING_AS_NULL

    ๊ธธ์ด๊ฐ€ 0์ธ String ํƒ€์ž… ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๊ด€ ์‹œ NULL๋กœ ๋“ค์–ด๊ฐ€๋„๋ก ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ INSERT_ZERO_LENGTH_STRING_AS_NULL=N์œผ๋กœ ์„ค์ • ์‹œ ๊ธธ์ด๊ฐ€ 0์ธ ๋ฐ์ดํ„ฐ๋Š” ๊ณต๋ฐฑ('')์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉฐ SOURCE_TYPE=Oracle์ธ ๊ฒฝ์šฐ ์„ค์ •์ด ๋ฌด์‹œ - Y(๊ธฐ๋ณธ๊ฐ’) - N

    TRIM

    CHAR ํƒ€์ž… ๋ฐ์ดํ„ฐ์˜ ์„ ํ–‰, ํ›„ํ–‰์— ์žˆ๋Š” pad ๋ฌธ์ž ์ œ๊ฑฐ - Y - N(๊ธฐ๋ณธ๊ฐ’)

    ๋ชจ๋‹ˆํ„ฐ๋งํ•  stat์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

    ์—ฌ๋Ÿฌ๊ฐœ์˜ stat์„ ์„ค์ •ํ•  ๊ฒฝ์šฐ ;๋กœ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉฐ ํ•ด๋‹น ์˜ต์…˜์€ SOURCE_TYPE=ORACLE์ธ ๊ฒฝ์šฐ์—๋งŒ ์„ค์ • ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’ : ๋ฏธ์‚ฌ์šฉ) - ์˜ˆ : MONITORING_SESS_STAT=CPU used by this session;parse time cpu;parse count (hard)

    CHECK_COLUMN_METADATA

    INSERT_METHOD=dpl์ธ ๊ฒฝ์šฐ ์ด๊ด€ํ•˜๊ธฐ ์ „์— SOURCE DB table๊ณผ TARGET DB table์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ์˜ต์…˜ - Y(๊ธฐ๋ณธ๊ฐ’) - N

    ROW_QUEUE_TYPE

    ์ถ”์ถœํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” queue ํƒ€์ž…์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ EXTRACT_PARALLEL=Y, INSERT_PARALLEL=Y ์ธ ๊ฒฝ์šฐ SYNCHRO ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ƒ ์ข‹์œผ๋ฉฐ ARRAY ํƒ€์ž…์€ ์‚ฌ์ด์ฆˆ ํŠน์ • ๊ฐ€๋Šฅ - ARRAY (๊ธฐ๋ณธ๊ฐ’ : 10240) - SYNCHRO

    VERIFY_TABLE

    ์ด๊ด€ ๊ฒ€์ฆ ํ…Œ์ด๋ธ” ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ - Y - N (๊ธฐ๋ณธ๊ฐ’)

    VERIFY_TABLE_NAME

    ๊ฒ€์ฆ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : VERIFY_TBL)

    LOG_LEVEL

    ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : INFO)

    LOG_FILE_NAME

    ๋กœ๊ทธ ํŒŒ์ผ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : tableMigrator.log)

    LOG_DIR

    ๋กœ๊ทธ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (๊ธฐ๋ณธ๊ฐ’ : Migrator ์‹คํ–‰ ๊ฒฝ๋กœ)