테마
야간 체인 ①(T_ORD_BIG 재적재) 앞에는 「재적재 전 보관본」 단계가 있다. 재적재가 잘못되면 되돌릴 수 있도록 지금의 T_ORD_BIG을 T_ORD_BIG_BAK에 통째로 떠 둔다. 연습 DB에서 /*+ APPEND */를 붙이자 redo가 0.2MB로 줄었는데, 운영에 반영하니 47.9MB가 그대로 나왔다.
오과장: "그래서 NOLOGGING도 붙였어요. 그런데 숫자가 하나도 안 바뀌어요." 운영 DBA는 일요일 밤 아카이브 로그가 평일의 세 배라며 줄여 달라고 한다.
T_ORD_BIG: 1,000,000행 · 5,826블록(약 46MB)T_ORD_BIG_BAK 보관본(문제 설정, T_ORD_BIG과 같은 컬럼): 매주 비우고 다시 채운다. 인덱스, 제약, 트리거는 없고, 재적재가 실패했을 때만 읽는다.ARCHIVELOG이고 FORCE_LOGGING은 NO다. 연습 DB는 NOARCHIVELOG다. 운영 백업은 매일 06:00 RMAN 증분 백업이다.-- 일요일 21:50 · 재적재 전 보관본 (오과장 · 지난주 수정)
TRUNCATE TABLE T_ORD_BIG_BAK;
INSERT /*+ APPEND */ INTO T_ORD_BIG_BAK NOLOGGING
SELECT * FROM T_ORD_BIG;
COMMIT;
[실행계획 — 운영]
------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
------------------------------------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | | 0 |00:00:02.84 | 6140 |
| 1 | LOAD AS SELECT | T_ORD_BIG_BAK | 1 | | 0 |00:00:02.84 | 6140 |
| 2 | OPTIMIZER STATISTICS GATHERING | | 1 | 1000K| 1000K|00:00:00.41 | 5826 |
| 3 | TABLE ACCESS FULL | T_ORD_BIG | 1 | 1000K| 1000K|00:00:00.18 | 5826 |
------------------------------------------------------------------------------------------------------------
[세션 통계 — 같은 문장 · 두 DB]
연습 DB (NOARCHIVELOG) 운영 (ARCHIVELOG)
redo size 0.2 MB 47.9 MB
undo change vector size 0.04 MB 0.04 MB
physical writes direct 5,872 5,872
경과 0.3 초 2.8 초
[운영 딕셔너리]
V$DATABASE LOG_MODE = ARCHIVELOG · FORCE_LOGGING = NO
USER_TABLES T_ORD_BIG_BAK · LOGGING = YES