728x90
# UNDO DATA
- undo data가 지원하는 내용
1. rollback
2. flashback 기능
- flashback query : 특정 테이블의 과거 data를 쿼리
- flashback table
3. undo 데이터를 위해 DBA가 관리해야할 파라미터
# undo_management : auto로 관리
# undo_retention : commit을 했어도 데이터를 복구할 수 있는 시간
# undo_tablespace :
- undo segment 를 저장한다.
- undo_tablespace는 retention 시간을 보장하지 않기 때문에 retention 크기를 늘렸으 면 tablespace 공간도 늘려줘야 한다.
- DML 너무작은 undo tablespace는 DML 작업을 수행하지 못하게 한다
n flashback query SQL> delete from emp; SQL> select * from emp as of timestamp(systimestamp - interval '5' minute); - emp 테이블을 지운 후 5분전의 값을 확인할 수 있다 - 현재시간에서 5분을 뺀 시점을 조회 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-MAY-81 2450 10 7566 JONES MANAGER 7839 01-APR-81 2975 20 7654 MARTIN SALESMAN 7698 10-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 11-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 21-AUG-81 1500 0 30 7900 JAMES CLERK 7698 11-DEC-81 950 30 7521 WARD SALESMAN 7698 23-FEB-81 1250 500 30 7902 FORD ANALYST 7566 11-DEC-81 3000 20 7369 SMITH CLERK 7902 09-DEC-80 800 20 7788 SCOTT ANALYST 7566 22-DEC-82 3000 20 7876 ADAMS CLERK 7788 15-JAN-83 1100 20 7934 MILLER CLERK 7782 11-JAN-82 1300 10 |
n systimestamp 는 현재시간을 의미한다 SQL> select systimestamp from dual; SYSTIMESTAMP --------------------------------------------------------------------------- 11-JUL-14 02.12.50.988084 PM +09:00 |
n flashback 복구 : 방금 구행했던 쿼리인 delete의 반대로 수행하기 떄문에 insert를 다시 한다. SQL> alter table emp enable row movement; - flashback 이 가능하도록 활성화 시킴 SQL> flashback table emp to timestamp (systimestamp - interval '10' minute); - flashback 으로 10분 뒤로 복구 SQL> commit; |
문제82. undo_retention 을 3600 초로 변경하시오
ALTER SYSTEM SET undo_retention=900 SCOPE=both;
show parameter undo
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 |
문제83. undo_management 를 auto 로 두는 것과 manual로 두는 것의 차이가 무엇인가?
auto – undo segment 관리를 오라클이 자동으로 함
manual – undo segment 관리를 수동으로 한다. 내가 직접 취소할 데이터를 담을 세그먼트를 만들어서 관리해야 한다(10g 버전 이전)
문제84. 현재 활설화 되어 있는 undo segment 가 몇 개인지 확인하시오
SQL> select * from v$rollname; USN NAME ---------- ------------------------------ 0 SYSTEM 1 _SYSSMU1_592353410$ 2 _SYSSMU2_967517682$ 3 _SYSSMU3_1204390606$ 4 _SYSSMU4_1003442803$ 5 _SYSSMU5_538557934$ 6 _SYSSMU6_2897970769$ 7 _SYSSMU7_3517345427$ 8 _SYSSMU8_3901294357$ 9 _SYSSMU9_1735643689$ 10 _SYSSMU10_4131489474$ |
문제85. undo_management 를 manual 로 변경하고 db를 내렸다 올리시오
SQL> alter system set undo_management=manual scope=spfile; SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string MANUAL undo_retention integer 3600 undo_tablespace string UNDOTBS1 SQL> select * from v$rollname; - undo segment 가 11개에서 1개만 남은 것을 확인할 수 있다 USN NAME ---------- ------------------------------ 0 SYSTEM |
SQL> create rollback segment rbs01; SQL> alter rollback segment rbs01 online; SQL> select * from v$rollname; - manual 로 변경하면 수동으로 segment를 생성해야 한다 USN NAME ---------- ------------------------------ 0 SYSTEM 11 RBS01 |
문제86. 테이블 스패이스 리스트를 조회해서 undo tablepsace 이름이 무엇인지 조회하시오
SQL> SELECT tablespace_name, CONTENTS FROM dba_tablespaces; - contests가 undo로 되어있는 테이블이 복구용 테이블 스패이스이다 TABLESPACE_NAME CONTENTS ------------------------------ --------- SYSTEM PERMANENT SYSAUX PERMANENT UNDOTBS1 UNDO TEMP TEMPORARY USERS PERMANENT EXAMPLE PERMANENT DATA01 PERMANENT |
문제87. undotbs3 란 이름으로 undo tablespace 를 생성하시오
SQL> create undo tablespace undotbs3
datafile '/home/oracle/undotbs03.dbf' size 100m;
문제88. 현재 사용하고 있는 undo segment가 저장되어 있는 undo tablespace가 무엇인지 조회하시오
SQL> select segment_name, status, tablespace_name from dba_rollback_segs; - undotbs3는 오프라인이고 나머지는 온라인으로 되어있다 SEGMENT_NAME STATUS TABLESPACE_NAME ------------------------------ ---------------- ------------------------------ RBS01 OFFLINE SYSTEM SYSTEM ONLINE SYSTEM _SYSSMU10_4131489474$ ONLINE UNDOTBS1 _SYSSMU9_1735643689$ ONLINE UNDOTBS1 _SYSSMU8_3901294357$ ONLINE UNDOTBS1 _SYSSMU7_3517345427$ ONLINE UNDOTBS1 _SYSSMU6_2897970769$ ONLINE UNDOTBS1 _SYSSMU5_538557934$ ONLINE UNDOTBS1 _SYSSMU4_1003442803$ ONLINE UNDOTBS1 _SYSSMU3_1204390606$ ONLINE UNDOTBS1 _SYSSMU2_967517682$ ONLINE UNDOTBS1 _SYSSMU1_592353410$ ONLINE UNDOTBS1 _SYSSMU21_2953536696$ OFFLINE UNDOTBS3 _SYSSMU20_411699934$ OFFLINE UNDOTBS3 _SYSSMU19_3590386750$ OFFLINE UNDOTBS3 _SYSSMU18_1605625091$ OFFLINE UNDOTBS3 _SYSSMU17_3917235633$ OFFLINE UNDOTBS3 _SYSSMU16_2960619271$ OFFLINE UNDOTBS3 _SYSSMU15_1310993138$ OFFLINE UNDOTBS3 _SYSSMU14_312169738$ OFFLINE UNDOTBS3 _SYSSMU13_850975623$ OFFLINE UNDOTBS3 _SYSSMU12_943526448$ OFFLINE UNDOTBS3 |
문제89. undo_tablespace 파라미터 값을 undotbs3로 변경하시오
SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 3600 undo_tablespace string UNDOTBS1 SQL> alter system set undo_tablespace=undotbs3 scope=both; SQL> show parameter undo - undotbs3로 바꾼 것을 확인할 수 있다 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 3600 undo_tablespace string UNDOTBS3 |
문제90. 다시 undotbs1로 변경하시오
SQL> alter system set undo_tablespace=undotbs1 scope=both; SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 3600 undo_tablespace string UNDOTBS1 |
문제93. guarantee 로 retention 시간을 보장하시오
SQL> alter tablespace undotbs1 retention guarantee; - 이명령어로 어떤일이 있어도 그 시간을 보장하도록 한다 SQL> select tablespace_name, retention from dba_tablespaces; TABLESPACE_NAME RETENTION ------------------------------ ----------- SYSTEM NOT APPLY SYSAUX NOT APPLY UNDOTBS1 GUARANTEE TEMP NOT APPLY USERS NOT APPLY EXAMPLE NOT APPLY DATA01 NOT APPLY TS02 NOT APPLY TS03 NOT APPLY TS20 NOT APPLY TS50 NOT APPLY TS700 NOT APPLY TS_EMP_RATE NOT APPLY UNDOTBS3 NOGUARANTEE |
문제95. guarantee 를 해제하시오
alter tablespace undotbs1 retention noguarantee;
'빅데이터과정 > WORKSHOP 1 ' 카테고리의 다른 글
#21_140711_WSHOP_AUDIT (0) | 2014.07.15 |
---|---|
#21_140711_WSHOP_최소 권한의 원칙 적용 (0) | 2014.07.15 |
#21_140711_WSHOP_ DEAD LOCK (0) | 2014.07.15 |
#21_140711_WSHOP_LOCK충돌 (0) | 2014.07.15 |
#21_140711_WSHOP_임시테이블 (0) | 2014.07.15 |