Oracle/Oracle DBMS

Oracle Supplemental Logging 일반테이블 (NO) Supplemental Logging

의미와의미 2017. 11. 7. 08:24
반응형

#일반테이블 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 ;



반응형