Oracle Supplemental Logging 일반테이블 (NO) Supplemental Logging
#일반테이블 NO Supplemental Logging 과 Supplemental Logging 테스트
#일반테이블 NO Supplemental Logging
-- 테이블 생성
-- 일반 테이블 NO SUPPLEMENTAL
CREATE TABLE SCOTT.TEST1
(
NO NUMBER(10)
, NAME VARCHAR2(20)
, BASEDATE VARCHAR2(20)
);
archive log list
alter system switch logfile;
archive log list
데이터베이스 로그 모드 아카이브 로그 모드
자동 아카이브 사용
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 리두 시퀀스 164
아카이브할 다음 로그 시퀀스 166
현재 로그 시퀀스 166
System SWITCH이(가) 변경되었습니다.
데이터베이스 로그 모드 아카이브 로그 모드
자동 아카이브 사용
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 리두 시퀀스 165
아카이브할 다음 로그 시퀀스 167
현재 로그 시퀀스 167
-- 데이터삽입
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE ON EXPLAIN;
BEGIN
FOR i in 1..10000 LOOP
INSERT INTO SCOTT.TEST1 VALUES(i,DBMS_RANDOM.STRING('U', 20), (select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')from dual));
COMMIT;
END LOOP;
END;
/
PL/SQL 프로시저가 성공적으로 완료되었습니다.
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE TARCEONLY EXPLAIN;
UPDATE SCOTT.TEST1 SET NAME='HWP' WHERE NO > 50;
COMMIT;
9,950개 행 이(가) 업데이트되었습니다.
Plan hash value: 160929213
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 9737 | 237K| 22 (0)| 00:00:01 |
| 1 | UPDATE | TEST1 | | | | |
|* 2 | TABLE ACCESS FULL| TEST1 | 9737 | 237K| 22 (0)| 00:00:01 |
----------------------------------------------------------------------------
Predicate Information (identified by operation id):
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE TARCEONLY EXPLAIN;
DELETE FROM SCOTT.TEST1;
10,000개 행 이(가) 삭제되었습니다.
Plan hash value: 2642947686
--------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
--------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 1 | 22 (0)| 00:00:01 |
| 1 | DELETE | TEST1 | | | |
| 2 | TABLE ACCESS FULL| TEST1 | 1 | 22 (0)| 00:00:01 |
--------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
alter system switch logfile;
archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/arc/
Oldest online log sequence 166
Next log sequence to archive 168
Current log sequence 168
exec dbms_logmnr.add_logfile('/home/oracle/arc/167_1_915156033.arc', options=>dbms_logmnr.new);
PL/SQL procedure successfully complete
exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/dict');
PL/SQL procedure successfully completed
#일반테이블 Supplemental Logging 테스트
CREATE TABLE SCOTT.TEST3
(
NO NUMBER(10)
, NAME VARCHAR2(20)
, BASEDATE VARCHAR2(20)
);
----------------------------------------------------
| Id | Operation | Name | Cost (%CPU)|
----------------------------------------------------
| 0 | CREATE TABLE STATEMENT | | 0 (0)|
----------------------------------------------------
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA ;
Database add SUPPLEMENTAL이(가) 변경되었습니다.
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
YES
-- 로그마이너를 위한 로그파일 스위치
archive log list
alter system switch logfile;
archive log list
System SWITCH이(가) 변경되었습니다.
데이터베이스 로그 모드 아카이브 로그 모드
자동 아카이브 사용
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 리두 시퀀스 172
아카이브할 다음 로그 시퀀스 174
현재 로그 시퀀스 174
-- 데이터삽입
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE ON EXPLAIN;
BEGIN
FOR i in 1..10000 LOOP
INSERT INTO SCOTT.TEST3 VALUES(i,DBMS_RANDOM.STRING('U', 20), (select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')from dual));
COMMIT;
END LOOP;
END;
/
PL/SQL 프로시저가 성공적으로 완료되었습니다.
-- 데이터 변경
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE TARCEONLY EXPLAIN;
UPDATE SCOTT.TEST3 SET NAME='HWP' WHERE NO > 50;
COMMIT;
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 10017 | 244K| 22 (0)| 00:00:01 |
| 1 | UPDATE | TEST3 | | | | |
|* 2 | TABLE ACCESS FULL| TEST3 | 10017 | 244K| 22 (0)| 00:00:01 |
----------------------------------------------------------------------------
-- 데이터 삭제
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
SET AUTOTRACE TARCEONLY EXPLAIN;
DELETE FROM SCOTT.TEST3;
10,000개 행 이(가) 삭제되었습니다.
Plan hash value: 302043168
--------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
--------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 1 | 22 (0)| 00:00:01 |
| 1 | DELETE | TEST3 | | | |
| 2 | TABLE ACCESS FULL| TEST3 | 1 | 22 (0)| 00:00:01 |
--------------------------------------------------------------------
alter system switch logfile;
archive log list;
System SWITCH이(가) 변경되었습니다.
데이터베이스 로그 모드 아카이브 로그 모드
자동 아카이브 사용
아카이브 대상 USE_DB_RECOVERY_FILE_DEST
가장 오래된 온라인 리두 시퀀스 173
아카이브할 다음 로그 시퀀스 175
현재 로그 시퀀스 175
exec dbms_logmnr.add_logfile('/home/oracle/arc/173_1_915156033.arc', options=>dbms_logmnr.new);
exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/dict');
select * from V$LOGMNR_CONTENTS ;