iWiz ShareBase

IT Specialist 윤태현의 iWiz ShareBase는 IT뿐 아니라 각종 잡다한 지식들을 함께 나누는 지식공유 커뮤니티입니다.

iWiz,ShareBase,윤태현,Java,JSP,EJB,IT,정보기술,웹프로그래밍,PHP,ASP,DBMS,MySQL,서버,네트워크,server,network,WAS,웹애플리케이션,블로그,blog,웹서버,DB,오라클,oracle,mysql,JRun,웹로직,톰캣,tomcat,아파치,자동차,EF쏘나타,로또 6/45

갤러리 Pixelgrapher.com | 로또 6/45 번호생성 및 통계 데이터 | 전체기사보기 | 전체글 #1 | 전체글 #2 | 전체글 #3 | 전체글 #4 | 전체글 #5 | 전체글 #6 | 전체글 #7 | 전체글 #8 | 전체글 #9 | 전체글 #10 |
HOME iWiz
ShareBase
Remember 0523 & 0818
지식은 나눌수록 커집니다 - iWiz's ShareBase
데이터베이스 데이터베이스(DBMS)에 관련된 각종 자료들입니다.


  박쥐(2004-04-06 11:55:32, Hit : 8667, Vote : 38

오라클의 Undo Segment


1. Undo Segment란

    데이타베이스에서 프로세스가 데이타를 변경할 때, old value값을 저장하기 위해 사용되는 것으로, Transaction

    Rollback, Transaction Recovery, Read Consistency를 위해 사용된다.

 

2. Undo Segment의 타입

    크게 SYSTEM Undo Segment와 Non-SYSTEM Undo Segment로 나눌 수 있다.

    1) SYSTEM Unod Segment : 데이타베이스가 만들어 질 때 SYSTEM 테이블스페이스에 만들어지는 것으로, 시스템

                                                테이블스페이스의 오브젝트에 대한 change값을 저장하기 위해 사용된다.

    2) Non-SYSTEM Undo Segment :

 

3. Automatic Undo Segment

    1) 개념 : 오라클 서버는 undo data를 UNDO테이블스페이스를 사용하여 자동으로 관리할 수 있으며, 세그먼트는

                  _SYSSMUn$의 형식으로 할당된다.

    2) 파라미터 파일 설정

        $vi initasean3.ora

        ...

        ###########################################

        # System Managed Undo and Rollback Segments

        ###########################################

        undo_management=AUTO

        undo_tablespace=UNDOTBS1

        undo_retention=10800                       -->Read Consistency를 위해 undo data가 얼마나 오랫동안 유지되어야

                                                                      하는지를 초 단위로 나타내는 파라미터

        ...

        - 만약 데이타베이스 생성시 UNDO_MANAGEMENT=TRUE로 설정하고 UNDO_TABLESPACE절을 생략하면 데이

           타베이스는 SYS_UNDOTBS 테이블스페이스와 'dbu1<sid>.dbf'데이타 파일을 자동으로 생성한다.

    3) UNDO Tablespace의 최적의 크기 계산

        SQL> SELECT (UR*(UPS*DBS))+(DBS*24) FROM

                 (SELECT VALUE AS UR FROM V$PARAMETER WHERE NAME='undo_retention'),

                 (SELECT (SUM(undoblks)/SUM(((end_time-begin_time)*86400))) AS UPS FROM v$undostat),

                 (SELECT VALUE AS DBS FROM V$PARAMETER WHERE NAME='db_block_size');

        (UR*(UPS*DBS))+(DBS*24)

        -------------------------

        31178159.9

        - 위 값을 MB로 나타내기 위해 1048576으로 나누어 줌

    4) UNDO Tablespace 생성

        SQL>CREATE UNDO TABLESPACE UNDOTBS01

                DATAFILE '/home/ora920/oradata/asean3/undotbs1.dbf' SIZE 30M;

        Tablespace created.

    5) UNDO Tablespace 삭제 : 현재 인스턴스에 의해 undo tablespace가 사용중이거나, 트랜젹션이 일어나고 있을

                                                때는 삭제가 안됨.

        - 새로운 UNDO Tablespace로 Switch

           SQL> ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS01;

           System altered.

        - 현재의 모든 트랙젝션 완료후 테이블스페이스 삭제

           SQL> SELECT N.NAME, S.STATUS

                    FROM V$ROLLNAME N, V$ROLLSTAT S

                    WHERE N.NAME IN (SELECT SEGMENT_NAME FROM DBA_SEGMENTS WHERE                                                    TABLESPACE_NAME='UNDOTBS1')

                    AND N.USN=S.USN;

           NAME                           STATUS

           ------------------------------ ---------------

           _SYSSMU1$                      PENDING OFFLINE    --> 현재 트랜젝션이 활성화 되어 있음을 표시, 아무 값도 없

                                                                                          는 것은 트랜젝션 완료를 나타냄.

           SQL>DROP TABLESPACE UNDOTBS1;              --> 위의 STATUS값이 없을 경우 테이블스페이스 삭제

    6) UNDO Segment 정보

        - DBA_ROLLBACK_SEGS : offlin상태인 UNDO Segment정보까지 볼 수 있다.

           (뷰를 통해서는 offline정보는 볼 수 없다.)

           SQL> SELECT SEGMENT_NAME, OWNER, TABLESPACE_NAME, STATUS

                    FROM DBA_ROLLBACK_SEGS;

           SEGMENT_NAME          OWNER         TABLESPACE_NAME    STATUS

           -----------------------------------------------------------------

           _SYSSMU9$                 PUBLIC          UNDOTBS1                  ONLINE

           _SYSSMU10$               PUBLIC          UNDOTBS1                  ONLINE

           _SYSSMU11$               PUBLIC          UNDOTBS01                OFFLINE

        - V$UNDOSTAT : 10분 간격으로 undo segment에 수집되는 데이타의 통계를 볼 수 있다.

           SQL>SELECT BEGIN_TIME, END_TIME, UNDOBLKS FROM V$UNDOSTAT;

           BEGIN_TIM END_TIME    UNDOBLKS

           --------- --------- ----------

           02-APR-04 02-APR-04         19

           02-APR-04 02-APR-04         19

       - V$ROLLSTAT

          Column     Datatype      Description  

          -------------------------------

          USN            NUMBER        Rollback segment number

          EXTENTS    NUMBER        Number of extents in rollback segment

          RSSIZE       NUMBER        Size in bytes of rollback segment.

                                                  This values differs by the number of bytes in one database block from

                                                   the value of the BYTES column of the ALL/DBA/USER_SEGMENTS views.

          WRITES      NUMBER         Number of bytes written to rollback segment

          XACTS        NUMBER         Number of active transactions

          GETS         NUMBER         Number of header gets

          WAITS        NUMBER         Number of header waits

          OPTSIZE    NUMBER        Optimal size of rollback segment

          HWMSIZE    NUMBER        High water mark of rollback segment size

          SHRINKS    NUMBER        Number of times the size of a rollback segment decreases

          WRAPS      NUMBER        Number of times rollback segment is wrapped

          EXTENDS    NUMBER        Number of times rollback segment size is extended

          AVESHRINK  NUMBER        Average shrink size

          AVEACTIVE  NUMBER        Current size of active extents, averaged over time.

          STATUS     VARCHAR2(15)  Rollback segment status

          CUREXT     NUMBER        Current extent

          CURBLK     NUMBER        Current block

 

 

 

* iWiz님에 의해서 게시물 이동되었습니다 (2010-02-03 17:06)

iWiz (2004-04-07 01:26:42)  
결혼 축하합니다! 앞으로도 잘먹고 잘살기를... ㅋㅋ
근데 질문이 있는데요... undo 세그먼트와 롤백 세그먼트는 어떻게 다른지 설명을 부탁드려요~
박쥐 (2004-04-07 15:18:21)  
결론부터 말하면 같은 의미 입니다. 오라클 8i이전에는 롤백세그먼트라는 용어를 썼는데, 9i로 넘어오면서 롤백세그먼트라는 용어가 undo세그먼트로 바뀌었지요..
이름이 더 멋있어서 바꿨나??(난 롤백세그먼트가 더 멋있는데..ㅋㅋ)
iWiz (2004-04-07 16:16:08)  
이름이 바뀌게 된 것이군요. 아마 용어를 더 쉽게 바꾸게 된 것 같네요. 아무래도 롤백이라는 용어는 데이터베이스에서 주로 사용되지만, 언두는 광범위한 프로그램에서 사용중인 용어이기 때문에 좀 더 쉽게 다가갈 수 있을 겁니다.


22   오라클 무료 관리 툴이 있어서 소개 합니다. [1]  김기영 2007/04/28 7948 0
21   Default Temporary Tablespace 수정  박쥐 2004/05/03 8606 44
20   리두로그 파일의 drop / add / relocation 및 rename  박쥐 2004/04/22 6613 33
  오라클의 Undo Segment [3]  박쥐 2004/04/06 8667 38
18   import 유틸리티 [3]  박쥐 2004/04/01 6183 35
17   세션관리  박쥐 2004/03/31 7718 31
16   LogMiner  박쥐 2004/03/31 6965 39
15   오라클에서의 백업...  박쥐 2004/03/30 6033 40
14   오라클의 Constraint(제약조건)  박쥐 2004/03/26 37030 38
13   Export 유틸리티 [1]  박쥐 2004/03/23 5151 35
12   비교 / 논리 연산자 및 연산 우선 순위  박쥐 2004/03/22 8926 41
11   NULL이란?? [2]  박쥐 2004/03/22 7622 32
10   데이타 베이스의 STARTUP과 SHUTDOWN  박쥐 2004/03/19 5054 34
9   오라클 Architecture  박쥐 2004/03/19 4953 32
8   외워도 외워도 까먹는 오라클 함수 (밑에꺼 퍼가는 대신 ㅎ) [1]  이준호 2004/07/15 11594 43

1 [2]
 

Copyright 1999-2023 Zeroboard / skin by zero
iWiz ShareBase, ⓒCopyleft by iWiz.  For more information contact .
본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시에는 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다. [게시일 2004. 1. 31]