์†Œ์Šค Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ

Database Migration Service๋Š” Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํฌํ•จ๋œ Oracle LogMiner API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๊ด€์ฒ˜๋ฆฌ๋œ ์žฌ์‹คํ–‰ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‹คํ–‰ ๋กœ๊ทธ ํŒŒ์ผ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ™œ๋™ ๊ธฐ๋ก ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Database Migration Service๊ฐ€ ์ด๋Ÿฌํ•œ ๋กœ๊ทธ ํŒŒ์ผ๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Oracle ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์†Œ์Šค Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ

Database Migration Service๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ INSERT, UPDATE, DELETE, RENAME ์ž‘์—…๊ณผ ๊ฐ™์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋„๋ก ๋ณด๊ด€์ฒ˜๋ฆฌ ๋กœ๊น…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ์Šคํ‚ค๋งˆ ๋ฐ ์ฝ”๋“œ ๊ฐ์ฒด์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ๊ณ„์ •์— ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    ๊ธฐ๋ณธ์ ์œผ๋กœ Database Migration Service๋Š” DBA_VIEWS๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๊ฐ์ฒด ์ •์˜์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. DBA_VIEWS์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์€ SELECT ANY DICTIONARY ๊ถŒํ•œ์œผ๋กœ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์—์„œ DBA ๋ทฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ Database Migration Service๋Š” ALL_VIEWS์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์š”๊ตฌ์‚ฌํ•ญ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ณด์•ˆ ๋ชจ๋ธ์„ ์ •์˜ํ•  ๋•Œ ์ตœ๋Œ€ํ•œ์˜ ์œ ์—ฐ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Database Migration Service๊ฐ€ ๊ฐ์ฒด ์ •์˜์˜ ํŠน์ • ํ•˜์œ„ ์ง‘ํ•ฉ์—๋งŒ ์•ก์„ธ์Šคํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์ด์ „ ์‚ฌ์šฉ์ž์—๊ฒŒ SELECT ANY DICTIONARY ๋Œ€์‹  ๋” ์„ธ๋ถ€์ ์ธ ๊ถŒํ•œ ๊ตฌ์„ฑ์ด ์žˆ๋Š” ์—ญํ• ์„ ๋ถ€์—ฌํ•˜์„ธ์š”.

  • ๋ณด๊ด€์ฒ˜๋ฆฌํ•  ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ๊ธฐ๊ฐ„, ๋ณด๊ด€ ๊ธฐ๊ฐ„์ด ๋‹ค ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ณด๊ด€ ๋˜๋Š” ์‚ญ์ œ ์—ฌ๋ถ€ ๋“ฑ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ์ •์ฑ…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

Database Migration Service๋Š” ๋‹ค์Œ ์œ ํ˜•์˜ Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ Amazon RDS ๊ตฌ์„ฑ

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ARCHIVELOG ๋ชจ๋“œ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    SELECT LOG_MODE FROM V$DATABASE;

    1. ๊ฒฐ๊ณผ๊ฐ€ ARCHIVELOG์ด๋ฉด c๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    2. ๊ฒฐ๊ณผ๊ฐ€ NOARCHIVELOG์ด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ARCHIVELOG ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    3. ๋ณด๊ด€์ฒ˜๋ฆฌ๋œ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด DB_RECOVERY_FILE_DEST_SIZE ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ ํŒŒ์ผ์— ์‚ฌ์šฉํ•  ์ด ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ ์ œํ•œ (๋ฐ”์ดํŠธ)์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ •๋ณด ๊ฐ€์šฉ์„ฑ๊ณผ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ท ํ˜•์ ์œผ๋กœ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    4. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ๊ธฐ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);

      ๋ฐฑ์—… ๋ฐ ๋ณด๊ด€์ฒ˜๋ฆฌ ๋กœ๊ทธ๋Š” ์ตœ์†Œ 4์ผ ๋™์•ˆ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๋ฉฐ, 7์ผ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

    5. Oracle ๋กœ๊ทธ ํŒŒ์ผ ๋ณด๊ด€ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ๋กœ๊ทธ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 512MB ์ดํ•˜๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ˆœํ™˜ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋กœ๊ทธ ํŒŒ์ผ ์ž‘์—…์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  2. ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ถ”๊ฐ€ ๋กœ๊น…์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

    ๊ทธ๋Ÿฐ ํ›„ ํŠน์ • ํ…Œ์ด๋ธ” ๋˜๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํŠน์ • ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊น…ํ•˜๋ ค๋ฉด ๋ณต์ œํ•˜๋ ค๋Š” ๊ฐ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • SCHEMA: ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋œ ์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • TABLE: ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊น…ํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€๋ถ€๋ถ„ ๋˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ๋ณต์ œํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    SQL ํ”„๋กฌํ”„ํŠธ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ๊ณ„์ •์— ํ•„์š”ํ•œ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','USER_NAME','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','USER_NAME','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ANY DICTIONARY TO USER_NAME;
    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

    ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ Oracle 12c ์ด์ƒ์ธ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    GRANT LOGMINING TO USER_NAME;

์ž์ฒด ํ˜ธ์ŠคํŒ… Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ARCHIVELOG ๋ชจ๋“œ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    SELECT LOG_MODE FROM V$DATABASE;

    1. ๊ฒฐ๊ณผ๊ฐ€ ARCHIVELOG์ด๋ฉด 2๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    2. ๊ฒฐ๊ณผ๊ฐ€ NOARCHIVELOG์ด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ARCHIVELOG ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    3. SYSDBA๋กœ ๋กœ๊ทธ์ธ๋œ ์ƒํƒœ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
    4. ๋ณด๊ด€์ฒ˜๋ฆฌ๋œ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด DB_RECOVERY_FILE_DEST_SIZE ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ ํŒŒ์ผ์— ์‚ฌ์šฉํ•  ์ด ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ ์ œํ•œ (๋ฐ”์ดํŠธ)์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ •๋ณด ๊ฐ€์šฉ์„ฑ๊ณผ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ท ํ˜•์ ์œผ๋กœ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ Oracle Recovery Manager (RMAN) ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ์ •์ฑ…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;

    ๋ฐฑ์—… ๋ฐ ๋ณด๊ด€์ฒ˜๋ฆฌ ๋กœ๊ทธ๋Š” ์ตœ์†Œ 4์ผ ๋™์•ˆ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๋ฉฐ, 7์ผ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

  3. Oracle ๋กœ๊ทธ ํŒŒ์ผ ์ˆœํ™˜ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋„๊ตฌ์˜ SQL ํ”„๋กฌํ”„ํŠธ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ตœ๋Œ€ ๋กœ๊ทธ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 512MB ์ดํ•˜๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  4. ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ถ”๊ฐ€ ๋กœ๊น…์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    ๊ทธ๋Ÿฐ ํ›„ ํŠน์ • ํ…Œ์ด๋ธ” ๋˜๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํŠน์ • ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊น…ํ•˜๋ ค๋ฉด ๋ณต์ œํ•˜๋ ค๋Š” ๊ฐ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • SCHEMA: ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋œ ์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • TABLE: ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊น…ํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€๋ถ€๋ถ„ ๋˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ๋ณต์ œํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ๊ณ„์ •์— ํ•„์š”ํ•œ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME;
    GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ANY DICTIONARY TO USER_NAME;
    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

    ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ Oracle 12c ์ด์ƒ์ธ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    GRANT LOGMINING TO USER_NAME;

์ž์ฒด ํ˜ธ์ŠคํŒ… Oracle ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์„œ๋น„์Šค๋Š” ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (CDB)์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (PDB)๊ฐ€ ํฌํ•จ๋œ Oracle ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ PDB(pluggable database)๋Š” ๊ณ ์œ ํ•œ ID์™€ ์ด๋ฆ„์ด ์žˆ๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฒด ํ˜ธ์ŠคํŒ… Oracle ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Database Migration Service์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ARCHIVELOG ๋ชจ๋“œ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด CDB$ROOT ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    SELECT LOG_MODE FROM V$DATABASE;

    1. ๊ฒฐ๊ณผ๊ฐ€ ARCHIVELOG์ด๋ฉด 2๋‹จ๊ณ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    2. ๊ฒฐ๊ณผ๊ฐ€ NOARCHIVELOG์ด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ARCHIVELOG ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    3. SYSDBA๋กœ ๋กœ๊ทธ์ธ๋œ ์ƒํƒœ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
    4. ๋ณด๊ด€์ฒ˜๋ฆฌ๋œ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด DB_RECOVERY_FILE_DEST_SIZE ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ ํŒŒ์ผ์— ์‚ฌ์šฉํ•  ์ด ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์—„๊ฒฉํ•œ ์ œํ•œ (๋ฐ”์ดํŠธ)์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ •๋ณด ๊ฐ€์šฉ์„ฑ๊ณผ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ท ํ˜•์ ์œผ๋กœ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. CDB$ROOT ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‹ค์Œ Oracle Recovery Manager(RMAN) ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ์ •์ฑ…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;

    ๋ฐฑ์—… ๋ฐ ๋ณด๊ด€์ฒ˜๋ฆฌ ๋กœ๊ทธ๋Š” ์ตœ์†Œ 4์ผ ๋™์•ˆ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๋ฉฐ, 7์ผ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

  3. Oracle ๋กœ๊ทธ ํŒŒ์ผ ์ˆœํ™˜ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋„๊ตฌ์˜ SQL ํ”„๋กฌํ”„ํŠธ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ตœ๋Œ€ ๋กœ๊ทธ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 512MB ์ดํ•˜๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  4. ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— CDB$ROOT ์ˆ˜์ค€์—์„œ ์ถ”๊ฐ€ ๋กœ๊น…์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    ๊ทธ๋Ÿฐ ํ›„ ํŠน์ • ํ…Œ์ด๋ธ” ๋˜๋Š” ์ „์ฒด ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํŠน์ • ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ๋กœ๊น…ํ•˜๋ ค๋ฉด PDB(pluggable database) ์ปจํ…Œ์ด๋„ˆ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ณต์ œํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”๋งˆ๋‹ค ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • SCHEMA: ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋œ ์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • TABLE: ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊น…ํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€๋ถ€๋ถ„ ๋˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ๋ณต์ œํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋กœ๊น…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์ถ”๊ฐ€ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. CDB$ROOT ์ปจํ…Œ์ด๋„ˆ์™€ PDB(pluggable database)์—์„œ๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์˜ ID๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๋ฃจํŠธ์™€ ๊ถŒํ•œ์ด ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋‚ด๋ถ€์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ C## ๋˜๋Š” c##์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•  ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. CDB$ROOT ์ปจํ…Œ์ด๋„ˆ์™€ PDB(pluggable database) ์ˆ˜์ค€์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • CDB$ROOT ์ปจํ…Œ์ด๋„ˆ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
      GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
      GRANT LOGMINING TO USER_NAME;
      GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    • PDB(pluggable database)์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ANY TABLE TO USER_NAME;
      GRANT SELECT ANY DICTIONARY TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
      GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
      GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
      GRANT SELECT ON DBA_EXTENTS TO USER_NAME;