All pages
1 of 4

Loading...

Loading...

Loading...

Loading...

Sequential Access Method (SAM)

ProSync๋Š” ๋™๊ธฐํ™” ๊ณผ์ • ์ค‘์— ์ „๋‹ฌํ•˜๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํŒŒ์ผ์— ์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. APPLY ํ”„๋กœ์„ธ์Šค์—์„œ Target DB์— ๋ฐ˜์˜ํ•˜๋Š” STATEMENT ๋ฅผ ํŒŒ์ผ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ SAM ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋‹ค์Œ์€ SAM ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค.

๊ตฌ๋ถ„
์ง€์› ํƒ€์ž…

Tibero

NUMBER, CHAR, VARCHAR, DATE, TIME, TIMESTAMP, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND, CLOB, TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE, BINARY_FLOAT, BINARY_DOUBLE

[INST_ID]_apply1.cfg ํŒŒ์ผ์— ๋‹ค์Œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

Parameter
์„ค๋ช…

๋ณธ ์ ˆ์—์„œ๋Š” TX_SAM_TEMPLATE, STMT_SAM_TEMPLATE, COL_SAM_TEMPLATE ํŒŒ๋ผ๋ฏธํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ํ…œํ”Œ๋ฆฟ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„œ์ˆ ํ•œ๋‹ค.

ํ…œํ”Œ๋ฆฟ ๊ตฌ์„ฑ์š”์†Œ๋Š” '% + ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜(๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„)"์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋œ ํ‘œํ˜„๊ฐ’์„ ์น˜ํ™˜ํ•˜์—ฌ Sam File์— ์ถœ๋ ฅํ•œ๋‹ค.

ํ•ญ๋ชฉ
ํ‘œํ˜„๊ฐ’
์˜๋ฏธ

ํ•ญ๋ชฉ
ํ‘œํ˜„๊ฐ’
์„ค๋ช…

ํ•ญ๋ชฉ
ํ‘œํ˜„๊ฐ’
์„ค๋ช…

History

ProSync์—๋Š” DML ์ด๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋‹ค. configํŒŒ์ผ์—์„œ ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ 5๋ ˆ๋ฒจ๋กœ ๋†’์ด๋ฉด, ๋ฐ˜์˜ํ•˜๊ณ  ์žˆ๋Š” SQL๊ณผ Bindํ•  Value๋“ค์ด byte array ํ˜•ํƒœ๋กœ ๋‚จ๊ฒŒ ๋œ๋‹ค. ๋‹ค๋งŒ ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ๋ฐ˜๋“œ์‹œ ๋†’์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ ๊ณผ, bind value๋“ค์ด ๋ณ„๋„๋กœ ๋‚จ์œผ๋ฏ€๋กœ ์‹ค์ œ SQL๋กœ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋ณธ ์žฅ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” SAM(Sequential Access Method) ํŒŒ์ผ ๊ธฐ๋Šฅ๊ณผ DML ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ์˜ report ํŒŒ์ผ, DML ์ด๋ ฅ ํ™•์ธ ๊ธฐ๋Šฅ ๋“ฑ์— ๋Œ€ํ•˜์—ฌ ๊ธฐ์ˆ ํ•œ๋‹ค.

Oracle

NUMBER, CHAR, VARCHAR, DATE, TIME, TIMESTAMP, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND, CLOB

PostgreSQL

SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, DOUBLE PRECISION, CHARACTER, CHARACTER VARYING, DATE, TIMESTAMP WITHOUT TIMEZONE

APPLY_TO_SAM=[Y|N]
SAM_BIND_VALUE=[Y|N]
SAM_LOG_PREFIX=[Y|N]

SAM_DIR=sam_dir_path
SAM_FILE_SIZE=file_size(1M-1G)
SAM_BACKUP_DIR=sam_backup_dir_path
SAM_BACKUP_SIZE=file_size(0-128G)

SQL_REDO_MODE=[Y|N]
TX_SAM_TEMPLATE=tx_template_file_path
STMT_SAM_TEMPLATE=stmt_template_file_path
COL_SAM_TEMPLATE=col_template_file_path

APPLY_TO_SAM

APPLY ํ”„๋กœ์„ธ์Šค์—์„œ DB๋กœ ๋ฐ˜์˜ํ•˜๋Š” STATEMENT๋ฅผ SAM ํŒŒ์ผ๋กœ ๋‚จ๊ธธ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•œ๋‹ค. (Y/N)

SAM_BIND_VALUE

SAM ํŒŒ์ผ์— ๋‚จ๊ฒจ์ง€๋Š” Query ์˜ Value ๊ฐ’ ์ €์žฅ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•œ๋‹ค. (Y/N)

  • Y : Value ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’)

  • N : Value ๊ฐ’์„ '?' ๋กœ ์น˜ํ™˜ํ•œ๋‹ค.

SAM_LOG_PREFIX

*transaction template file ์„ค์ •*
tx {
xid: %X
stmt count: %C
commit tsn: %T
}

*EXT SAM FILE ์ถœ๋ ฅ ์˜ˆ์ œ*
tx {
xid: 655403
stmt count:
commit tsn: 26362351
}

*APPLY SAM FILE ์ถœ๋ ฅ ์˜ˆ์ œ*
tx {
xid: 655403
stmt count: 100
commit tsn: 26362351
}

xid

%X

ํŠธ๋žœ์žญ์…˜์˜ xid

statement count

%C

*statement template file ์„ค์ •*
stmt {
    op: %O
    op code: %o
    owner: %W
    table name: %N
    sgmt id: %I
    tsn: %T
    wrap no: %R
    log seq: %L
    set: %s
    where: %w
    values: %v
    ddl/dml string: %D
}

*column template file ์„ค์ •*
col {
    name: %N
    values: %V
    column count: %n
}

*INSERT STATEMENT ๊ฒฐ๊ณผ ์˜ˆ์ œ*
INSERT)
stmt {
    op:INSERT
    op code:0
    owner:PRS_TEST
    table name:VARCHAR_T
    sgmt id:26424
    tsn:26362394
    wrap no:43
    log seq:2102
    set:
    where:
    values:
        col {
            name:C1
            values:1
            column count:0
        }
        col {
            name:VCHAR_COL
            values:VARCHAR
            column count:1
        }
    ddl/dml string:INSERT INTO "PRS_TEST"."VARCHAR_T" ("C1", "VCHAR_COL") VALUES
               (1, VARCHAR)
}

*UPDATE STATEMENT ๊ฒฐ๊ณผ ์˜ˆ์ œ*
UPDATE)
stmt {
    op:UPDATE
    op code:2
    owner:PRS_TEST
    table name:NVARCHAR_T
    sgmt id:26436
    tsn:26362421
    wrap no:87
    log seq:2103
    set:
        col {
            name:NVCHAR_COL
            values:NVARCHAR2
            column count:1
        }
    where:
        col {
            name:C1
            values:10
            column count:0
        }
        col {
            name:NVCHAR_COL
            values:NVCHAR
            column count:1
        }
    values:
    ddl/dml string:UPDATE "PRS_TEST"."NVARCHAR_T" SET NVCHAR_COL = NVARCHAR2
               WHERE C1 = 10 AND NVCHAR_COL = NVCHAR
}

*DELETE STATEMENT ๊ฒฐ๊ณผ ์˜ˆ์ œ*
DELETE)
stmt {
    op:DELETE
    op code:1
    owner:PRS_TEST
    table name:NVARCHAR_T
    sgmt id:26436
    tsn:26362437
    wrap no:175
    log seq:2103
    set:
    where:
        col {
            name:C1
            values:10
            column count:0
        }
        col {
            name:NVCHAR_COL
            values:NVARCHAR2
            column count:1
        }
    values:
    ddl/dml string:DELETE FROM "PRS_TEST"."NVARCHAR_T" WHERE C1 = 10 AND
               NVCHAR_COL = NVARCHAR2
}

*DDL STATEMENT ๊ฒฐ๊ณผ ์˜ˆ์ œ*
DDL)
stmt {
    op:DDL
    op code:9
    owner:PRS_TEST
    table name:NVARCHAR_T
    sgmt id:
    tsn:26362654
    wrap no:332
    log seq:2103
    set:
    where:
    values:
    ddl/dml string:truncate table nvarchar_t
}        

op(string)

%O

dml : INSERT, UPDATE, DELETE, ddl : DDL

op code

%o

column name

%N

column ์ด๋ฆ„

column value

%V

SAM ๊ธฐ๋Šฅ์— ์‚ฌ์šฉ๋˜๋Š” Parameters

Parameters ์„ค๋ช…

์ฃผ์˜

SAM_BIND_VALUE ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SAM ํŒŒ์ผ์— Query์˜ value ๊ฐ’์„ ์ €์žฅํ•  ์‹œ, ๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰์ค‘์ธ table์˜ column ์œ ํ˜•์— ๋”ฐ๋ผ SAM ํŒŒ์ผ์˜ ๊ณผ๋„ํ•œ ์šฉ๋Ÿ‰ ์ฆ๊ฐ€๋ฅผ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

SAM FILE TEMPLATE ์„ค์ •

TX_SAM_TEMPLATE

STMT_SAM_TEMPLATE, COL_SAM_TEMPLATE

STMT_SAM_TEMPLATE

COL_SAM_TEMPLATE

ํ•ด๋‹น Query๊ฐ€ ์ˆ˜ํ–‰๋œ ์‹œ๊ฐ„๊ณผ ์Šค๋ ˆ๋“œ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ SAM ํŒŒ์ผ row์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ถ™์ด๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. (Y|N)

  • Y : ํ•ด๋‹น ์ •๋ณด๋ฅผ row์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ฒจ๋ถ€ํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’)

  • N : ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.

SAM_DIR

ํ”„๋กœ์„ธ์Šค์˜ SAM ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

SAM_FILE_SIZE

ํ”„๋กœ์„ธ์Šค๋ณ„ SAM ํŒŒ์ผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

SAM ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ SAM_FILE_SIZE๋ฅผ ๋„˜์œผ๋ฉด SAM_BACKUP_DIR๋กœ ์˜ฎ๊ธด ํ›„ ์ƒˆ๋กœ์šด SAM ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 100MB, ๋ฒ”์œ„: 1MB ~ 1GB)

SAM_BACKUP_DIR

SAM ํŒŒ์ผ์˜ ๋ฐฑ์—… ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.

SAM_BACKUP_SIZE

SAM_BACKUP_SIZE๋Š” SAM_BACKUP_DIR์— ๋ฐฑ์—…๋˜๋Š” SAM ํŒŒ์ผ๋“ค์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 0 (์ œํ•œ์—†์Œ), ๋ฒ”์œ„: 0 ~ 128GB)

SQL_REDO_MODE

SQL_REDO_MODE ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Sam File์— ์ ํžˆ๋Š” ๋‚ด์šฉ์„ full dml/ddl๋กœ ์ ์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. (Y|N)

  • Y : sam file์— row by row๋กœ DML์ด ๋‚จ๊ฒŒ ๋œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’)

  • N : sam file์— row by row๋กœ DML์ด ๋‚จ์ง€ ์•Š๋Š”๋‹ค.

TX_SAM_TEMPLATE

TX_SAM_TEMPLATE ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํŠธ๋žœ์žญ์…˜์„ Sam File์— ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•  user_defined_template ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. SQL_REDO_MODE๊ฐ€ N์ธ ๊ฒฝ์šฐ์— ๋™์ž‘ํ•œ๋‹ค.

ProSync๋Š” ํŠธ๋žœ์žญ์…˜์ด commit์„ ๋งŒ๋‚  ๋•Œ๋งˆ๋‹ค ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒฝ๋กœ์— ์žˆ๋Š” ํ…œํ”Œ๋ฆฟ์„ ์ฝ์–ด ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ ํ˜•์‹๋Œ€๋กœ sam file์— ํŠธ๋žœ์žญ์…˜ ๋‚ด์šฉ์„ ๋‚จ๊ธด๋‹ค.

STMT_SAM_TEMPLATE

STMT_SAM_TEMPLATE ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” statement(dml/ddl) ๋‚ด์šฉ์„ Sam File์— ๋‚จ๊ฒจ์ค„ ๋•Œ ์‚ฌ์šฉํ•  user_defined_template ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. SQL_REDO_MODE๊ฐ€ N์ธ ๊ฒฝ์šฐ์— ๋™์ž‘ํ•œ๋‹ค.

ProSync๋Š” DDL๊ณผ DML ๋‚ด์šฉ์„ Sam File์— ๋‚จ๊ฒจ์ค„ ๋•Œ ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒฝ๋กœ์— ์žˆ๋Š” ํ…œํ”Œ๋ฆฟ์„ ์ฝ์–ด ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ ํ˜•์‹๋Œ€๋กœ sam file์— DDL, DML ๋‚ด์šฉ์„ ๋‚จ๊ธด๋‹ค.

COL_SAM_TEMPLATE

COL_SAM_TEMPLATE ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” DML์„ ์ถœ๋ ฅํ•  ๋•Œ ์ปฌ๋Ÿผ ๋‚ด์šฉ์„ ๋‚จ๊ธธ ๋•Œ ์‚ฌ์šฉํ•  user_defined_template ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. SQL_REDO_MODE๊ฐ€ N์ธ ๊ฒฝ์šฐ์— ๋™์ž‘ํ•œ๋‹ค.

ProSync๋Š” DML์„ ํŒŒ์ผ์— ๋‚จ๊ฒจ์ค„ ๋•Œ COL_SAM_TEMPLATE์— ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์ •์˜๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ ํ˜•์‹๋Œ€๋กœ sam file์— ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๋‚จ๊ธด๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ statement(dml) ๊ฐœ์ˆ˜, ext sam์—์„œ๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

commit tsn

%T

ํŠธ๋žœ์žญ์…˜์˜ commit tsn

insert, update, delete, ddl์— ๋Œ€ํ•œ opcode

owner

%W

statement์˜ user name

name

%N

statement์˜ table name

sgmt id

%I

ํ•ด๋‹น object์˜ segment id

tsn

%T

statement๊ฐ€ ์‹คํ–‰๋œ tsn

wrap no

%R

statement์˜ wrap number

log seq

%L

statement๊ฐ€ ๊ธฐ๋ก๋œ log sequence number

set

%s

update ๊ตฌ๋ฌธ์˜ set ์ ˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ (insert์™€ delete์˜ ๊ฒฝ์šฐ empty string์œผ๋กœ ์น˜ํ™˜)

where

%w

update, delete ๊ตฌ๋ฌธ์˜ where ์ ˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ (insert์˜ ๊ฒฝ์šฐ empty string์œผ๋กœ ์น˜ํ™˜)

values

%v

insert ๊ตฌ๋ฌธ์˜ values ์ ˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ (update, delete์˜ ๊ฒฝ์šฐ empty string์œผ๋กœ ์น˜ํ™˜)

ddl/dml string

%D

statement์˜ full dml/ddl string

column ๊ฐ’

column count

%n

column count

DML History

APPLY ํ”„๋กœ์„ธ์Šค์—์„œ DML ๋ฐ˜์˜ ์‹œ MAP ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ง€์ •ํ•œ History ํ…Œ์ด๋ธ”์— ๋ฐ˜์˜๋œ history ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์กด ProSync ๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ธ์Šคํ„ด์Šค ์ด์™ธ์— DML History ๊ธฐ๋Šฅ ์ž‘๋™์„ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•˜๋‚˜ ๋” ํ•„์š”ํ•˜๋‹ค.

์ฐธ๊ณ 

๋‹ค์Œ์˜ ํƒ€์ž…๋“ค์— ๋Œ€ํ•ด์„  ์ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

์•„๋ž˜์˜ ํƒ€์ž…์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ์—๋Š” ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด NULL๋กœ ๊ธฐ๋ก๋œ๋‹ค.

  • LONG

APPLY ํ”„๋กœ์„ธ์Šค์˜ config ํŒŒ์ผ์ธ [inst_id]_apply1.cfg ํŒŒ์ผ์— ๋‹ค์Œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

Parameter
์„ค๋ช…

RECORD_HISTORY

์ถ”๊ฐ€์ ์œผ๋กœ ๋™๊ธฐํ™” ๋Œ€์ƒ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€์ ์ธ column๋“ค์ด ํ•„์š”ํ•˜๋‹ค.

column
์„ค๋ช…

DML Error Report

APPLY ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™๊ธฐํ™” ์ง„ํ–‰ ์ค‘ DML ๋ฐ˜์˜์„ ์‹คํŒจ ๋˜๋Š” ์žฅ์•  ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ผ์ • ํšŸ์ˆ˜๋ฅผ ์žฌ์‹œ๋„ ํ•œ ๋’ค report ํŒŒ์ผ๋กœ writeํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

DML์— ๊ด€ํ•ด์„œ๋งŒ ๊ธฐ๋ก์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, APPLY ํ”„๋กœ์„ธ์Šค์˜ config ํŒŒ์ผ์ธ [inst_id]_apply1.cfg ํŒŒ์ผ์— ๋‹ค์Œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

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

  • ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์—์„œ DML history ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ํ•  ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. (Y|N)

    • Y : MAP RULE ๋กœ ์ง€์ •๋œ history ํ…Œ์ด๋ธ”์— row by row๋กœ DML์ด ๋‚จ๊ฒŒ ๋œ๋‹ค.

    • N : MAP RULE ๋กœ ์ง€์ •๋œ history ํ…Œ์ด๋ธ”์— row by row๋กœ DML์ด ๋‚จ์ง€ ์•Š๋Š”๋‹ค. (๊ธฐ๋ณธ๊ฐ’)

    ํ•ด๋‹น ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ Y ๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ, MAP ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ history ๋ฅผ ๋‚จ๊ธธ ํ…Œ์ด๋ธ”๋กœ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋ฉฐ, DDL ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฒฝ์šฐ exclude all ๋กœ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    LEADING_PRS_USER

    DML history ๊ธฐ๋Šฅ์— ์˜ํ•ด์„œ history๋ฅผ ๊ธฐ๋กํ•  ์„ ํ–‰๋˜๋Š” PRS_USER๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.

    ์„ ํ–‰๋˜๋Š” ์ธ์Šคํ„ด์Šค์— ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผ DML history๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. 3์ดˆ์”ฉ 10๋ฒˆ ์ด 30์ดˆ ๋™์•ˆ ๋ฐ”๋ผ๋ณด๋ฉฐ, ๊ทธ ์•ˆ์— ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ history๋Š” ๋‚จ์ง€ ์•Š๋Š”๋‹ค.

    OLD_{์ปฌ๋Ÿผ ๋ช…}

    ํ•ด๋‹น column์˜ ๊ฒฝ์šฐ UPDATE, DELETE ๊ฐ™์€ column์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ ๋  ๋•Œ์˜ ๊ฐ’์ด ๋‚จ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ์ปฌ๋Ÿผ๊ณผ ๋˜‘๊ฐ™์€ ํƒ€์ž…์œผ๋กœ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    HIST_NO

    NUMBER ์ด๋ฉฐ, ์ˆœ์ฐจ ์ฑ„๋ฒˆ์„ ์œ„ํ•œ column์ด๋‹ค. Target DB SYS User ์— SQ_{HISTORY_TABLE} ์˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ sequence์˜ ์ƒ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค. ์ด ๋•Œ Sequence table ์€ MIN 1 MAX 99999999 ์„ ๊ฐ€์ง€๋ฉฐ, cycle ๋กœ ์ˆœํ™˜๋˜์–ด์•ผ ํ•œ๋‹ค.

    IUD_FLAG

    APPLY_TO_REPORT

    Dml Error Report ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. (Y|N)

    • Y : report file์— row by row๋กœ DML์ด ๋‚จ๊ฒŒ ๋œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’)

    • N : report file์— row by row๋กœ DML์ด ๋‚จ์ง€ ์•Š๋Š”๋‹ค.

    VARCHAR(6) ์ด๋ฉฐ, History ๊ฐ€ ๋‚จ์„ DML ์˜ ์œ ํ˜•์„ ๋œปํ•˜๋Š” column์ด๋‹ค. INSERT / UPDATE / DELETE๊ฐ€ ๋‚จ๋Š”๋‹ค.

    IUD_TIME

    TIMESTAMP ์ด๋ฉฐ, DML ์ด ์ˆ˜ํ–‰ ๋˜์–ด history ๊ฐ€ ๋‚จ์€ ์‹œ๊ฐ„์„ ๋œปํ•œ๋‹ค.

    APPLY_DML_ERR_REPORT_CNT

    Dml Error Report ๊ธฐ๋Šฅ์— ์˜ํ•ด์„œ report file write๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „ ์žฌ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 20)

    APPLY_REPORT_DIR

    report ํŒŒ์ผ์ด ๋‚จ๊ฒจ์งˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: [prosync_directory]/var/[inst_id]/dml_err)

    APPLY_REPORT_FILE_SIZE

    ๊ฐ ํ”„๋กœ์„ธ์Šค ๋ณ„ DML error report ํŒŒ์ผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. report ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ APPLY_REPORT_FILE_SIZE๋ฅผ ๋„˜์œผ๋ฉด APPLY_REPORT_BACKUP_DIR๋กœ ์˜ฎ๊ธด ํ›„ ์ƒˆ๋กœ์šด report ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 100MB, ๋ฒ”์œ„: 1MB ~ 1GB)

    APPLY_REPORT_BACKUP_DIR

    DML error report ํŒŒ์ผ์˜ ๋ฐฑ์—… ํŒŒ์ผ์ด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.

    APPLY_REPORT_BACKUP_SIZE

    APPLY_REPORT_BACKUP_DIR ๋ฐฑ์—…๋˜๋Š” report ํŒŒ์ผ๋“ค์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ๋ฐฑ์—…๋œ ์ด report ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ APPLY_REPORT_BACKUP_SIZE๋ฅผ ๋„˜์œผ๋ฉด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŒŒ์ผ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ญ์ œํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 0, ๋ฒ”์œ„: 0 ~ 128GB)

    ์ฐธ๊ณ 

    ๋‹ค์Œ์˜ ํƒ€์ž…๋“ค์— ๋Œ€ํ•ด์„  ์ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

    ์•„๋ž˜์˜ ํƒ€์ž…์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ์—๋Š” ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด NULL๋กœ ๊ธฐ๋ก๋œ๋‹ค.

    • NCHAR

    • NVARCHAR

    • LONG

    • BLOB

    • CLOB