Presentation is loading. Please wait.

Presentation is loading. Please wait.

Make a Real DBA 오라클 저장 영역 구조 ㈜ 신한시스템즈 김 종 근김 종 근 김 종 근김 종 근.

Similar presentations


Presentation on theme: "Make a Real DBA 오라클 저장 영역 구조 ㈜ 신한시스템즈 김 종 근김 종 근 김 종 근김 종 근."— Presentation transcript:

1 Make a Real DBA 오라클 저장 영역 구조 ㈜ 신한시스템즈 김 종 근김 종 근 김 종 근김 종 근

2 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 2 오라클 DBMS 저장 영역 구조 테이블스페이스와 데이터 파일 세그먼트와 익스텐트 데이터 블럭 구조 Q & A

3 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 3 저장 영역 설정 옵션 Storage Architecture CATEATE TABLE emp ( empno NUMBER(4) …, ename VARCHAR2(10) …, ………… ) TABLESPACE company STORAGE ( INITIAL 200K NEXT 200K PCTINCREASE 50 MINEXTENTS 5 MAXEXTENTS 20 FREELISTS 2 FREELIST GROUPS 2 ) PCTFREE 20 PCTUSED 50 INITRANS 5 MAXTRANS 10;

4 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 4 오라클 DB 의 구성요소 Database 구성 파일 Tablespace & Data files Data file Control file Redo log files Database

5 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 5 데이터 파일 데이터파일란 ? Tablespace & Data files  데이터의 물리적 저장소  하나 이상의 물리적 블록 (OS 블록 ) 으로 구성 Company Database a.dbfb.dbf c.dbf d.dbf

6 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 6 테이블스페이스 테이블스페이스란 ? Tablespace & Data files  데이터의 논리적 저장소  하나 이상의 물리적 파일들로 구성 SALES T.SSystem T.SPRODUCT T.S Company Database a.dbfb.dbf c.dbf d.dbf

7 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 7 세그먼트 세그먼트란 ? Segment & Extent  저장영역을 필요로 하는 오브젝트  예 ) 테이블, 인덱스 SALES T.SSystem T.SPRODUCT T.S Company Database a.dbfb.dbf c.dbf d.dbf

8 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 8 익스텐트 익스텐트란 ? Segment & Extent  세그먼트에 저장영역을 할당하는 단위  하나 이상의 연속된 데이터 블록으로 구성 SALES T.SSystem T.SPRODUCT T.S Company Database a.dbfb.dbf c.dbf d.dbf

9 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 9 데이터 블록 데이터 블럭이란 ? Data Block Structure  데이터를 저장하고 관리하기 위한 논리적 최소 단위  오라클의 최소 I/O 단위 SALES T.SSystem T.SPRODUCT T.S Company Database a.dbfb.dbf c.dbf d.dbf

10 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 10 스토리지 계층 Data Block Structure LogicalPhysical Database Tablespace Segment Extent DB_Block OS Block Data File

11 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 11 로 데이터 저장 Data Block Structure  테이블 및 인덱스의 데이터는 행 단위로 데이터 블록에 저장  블록 및 행의 사이즈에 의해 블록 내 행의 수가 결정 SALES T.SSystem T.SPRODUCT T.S Company Database a.dbfb.dbf c.dbf d.dbf 10 김종근부산시 동구 초량 … 40 최경식부산시 남구 대연 … 20 김동현부산시 동래구 … 30 신성식부산시 사하구 장림 Block Header

12 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 12 로의 구조 Data Block Structure  Row Header: 컬럼의 개수, 체인정보, 잠금 상태 Size: 3Bytes  Column Data: 컬럼의 실제 값  Column Length: 컬럼 값이 길이 Size: 1Byte (Data<=250Bytes) 3Bytes (Data>250Bytes) HeaderLengthDataLengthData

13 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 13 데이터 블록 헤더 Data Block Structure  Fixed Header: 블록 주소, 세그먼트 종류 정보 Size: 57Bytes Size: 4Bytes * 테이블 수  Table Directory: 블록에 포함된 테이블에 대한 정보 Size: 2Bytes * 로 수  Row Directory: 블록 내 생성된 로에 대한 정보 Fixed + Variable HeaderTable DirectoryRow Directory  Variable Header: 트랜잭션 슬롯 영역 Size: 23Bytes * 슬롯 수

14 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 14 블록 내부에서 데이터 증감 Data Block Structure 데이터삽입가능데이터삽입불가데이터삽입가능 데이터삽입불가 Insert Delete Insert Data Increase Header Increase

15 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 15 행 이전 Data Block Structure 40 최경식부산시 남구 대연 … 60 김진명 70 홍민우 50 이동원 80 김일동 부산시 중구 중앙동 90 이정현 부산시 해운대구 우 70 홍민우 부산시 중구 중앙동 UPDATE table SET addr= ‘ 부산시 중구 중앙동 …’ WHERE empno=70; addr 40 최경식부산시 남구 대연 … 60 김진명 50 이동원 80 김일동 부산시 중구 중앙동 90 이정현 부산시 해운대구 우

16 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 16 PCTFREE, PCTUSED Data Block Structure PCTFREE PCTUSED 기본값 : 10% 차후 데이터 변경에 따른 Row 사이즈 증가시 사용 영역 UPDATE 구문에 의한 Row 사이즈 변화에 따라 적절한 값 사용 일정 영역 이상 사용가능 상태를 확보 기본값 : 40% 데이터 삭제 및 삽입, 조회 작업의 성격에 따라 적절한 값 사용 PCTFREE 와 PCTUSED 값의 의해 공간 활용도와 성능에 영향을 미친다. 공간 활용 자체가 성능에 밀접한 관계를 가지므로 신중히 고려하여야 할 것이다.

17 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 17 INITRANS, MAXTRANS Data Block Structure  Transaction Slot 트랜잭션 정보 ( 세션, 언두 ) 를 기록하는 공간 사이즈 : 23Bytes TX Slot 의 동적 할당 회피하기 위해 INITRANS 값을 사용하고, 공간 활용을 위해 MAXTRANS 를 사용한다.  INITRANS 블록 내 TX Slot 의 최초 개수 기본값 : 1( 테이블 ), 2( 인덱스 ) 블럭내 로의 수와 동시 트랜잭션 량에 따라 적절한 값 사용  MAXTRANS 블록 내 TX Slot 의 최대 개수 기본값 : 255 Rollback Segment

18 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 18 세그먼트 생성과 블록 활용 Data Block Structure CRATE TABLE a ( num NUMBER(4) …….. ) INITRANS 5 MAXTRANS 10 PCTFREE 20 PCTUSED 60;

19 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 19 저장 영역의 할당 Data Block Structure A01.dbf CRATE TABLE a ( num NUMBER(4) …….. );  Segment Header Block: 익스텐트 테이블, 프리 리스트, 고수위 정보  Data Block: 사용자 테이블의 데이터 Extent

20 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 20 PCTFREE 와 FREELIST Data Block Structure B1B3B4B5B2 FreeList search B3B4B5 search

21 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 21 FREELISTS, FREELIST GROUPS Data Block Structure B1B3B4B5B2 search B1B3B4B2 search  Free List: 삽입 가능한 블록의 목록  Free List Group: OPS 환경에서 세그먼트 헤더 블록에 대한 경합을 줄이기 위해 사용 Free List 블럭의 개수

22 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 22 저장 영역 할당 단위 Data Block Structure A01.dbf CRATE TABLE a ( num NUMBER(4) …….. ) STORAGE ( INITIAL 200K NEXT 300K PCTINCREASE 50 MINEXTENTS 1 MAXEXTENTS 121); Initial(200k)next(300k) Minextents(1) Next=next*(1+pctincrease/100) Maxextents(121)

23 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 23 저장 영역의 사용 Data Block Structure A01.dbf CRATE TABLE a ( num NUMBER(4) ……..); CRATE TABLE b ( num NUMBER(4) ……..); CRATE TABLE c ( num NUMBER(4) ……..); CRATE TABLE d ( num NUMBER(4) …….. ); A1 A2 A3 A4 A0B1 B2B3 B0 C2 C0 D0 C1

24 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 24 세그먼트 삭제와 단편화 Data Block Structure A01.dbf A1 A2 A3 A4 A0 C2 C0 D0 C1 DROP TABLE b; A01.dbf A1 A2 A3 A4 A0B1 B2B3 B0 C2 C0 D0 C1

25 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 25 세그먼트 삭제와 단편화 Data Block Structure A01.dbf A1 A2 A3 A4 A0 C2 C0 D0 C1 DROP TABLE b; DROP TABLE c;

26 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 26 세그먼트 삭제와 단편화 Data Block Structure A01.dbf A1 A2 A3 A4 A0 D0 DROP TABLE b; DROP TABLE c;

27 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 27 세그먼트 삭제와 단편화 Data Block Structure A01.dbf DROP TABLE b; A1 A2 A3 A4 A0 D0 DROP TABLE c; CREATE TABLE f ( num NUMBER(4) …… ) STORAGE( INITIAL 500k …. ); F0

28 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 28 저장영역 설정시 고려사항 Data Block Structure 단편화를 없애자. 익스텐트 할당은 응답 속도에 영향을 준다. 저장영역의 낭비를 없애자. A01.dbf A1 A2 A3 A4 A0 D0F0

29 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 29 세그먼트와 테이블스페이스 Data Block Structure CRATE TABLE a ( num NUMBER(4) …….. ) TABLESPACE sales STORAGE ( …….. ); SALES T.S PRODUCT T.S Company Database a.dbfb.dbf c.dbf CRATE TABLE b ( num NUMBER(4) …….. ) TABLESPACE product STORAGE ( …….. );

30 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 30 주요 시스템 테이블스페이스 Tablespace & Data files  시스템 테이블스페이스. 데이터딕셔너리 저장 데이터베이스 생성시 생성  임시 테이블스페이스 정렬 작업을 위한 임시 데이터 저장  언두 ( 롤백 ) 테이블스페이스 트랜잭션을 위한 언두 정보 저장 System T.S s.dbf Temp T.S t.dbf RBS T.S r.dbf

31 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 31 사용자 테이블스페이스 생성 Tablespace & Data files CREATE TABLESPACE product DATAFILE ‘ / …./p1.dbf ’ SIZE 1000M; System T.S SALES T.S s1.dbfs2.dbf PRODUCT T.S p1.dbf s.dbf Temp T.S t.dbf RBS T.S r.dbf CREATE TABLESPACE sales DATAFILE ‘ / …./s1.dbf ’ SIZE 500M, ‘ / …./s2.dbf ’ SIZE 500M DEFAULT STORAGE( INITIAL 200K NEXT 200K PCTINCREASE 50 MINEXTENTS 5 MAXEXTENTS 20 FREELISTS 2 FREELIST GROUPS 2 );

32 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 32 지역 관리 테이블스페이스 (8i) Tablespace & Data files CREATE TABLESPACE product DATAFILE ‘ / …./p1.dbf ’ SIZE 1000M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K DEFAULT STORAGE( INITIAL 200K NEXT 200K PCTINCREASE 50 MINEXTENTS 5 MAXEXTENTS 20 FREELISTS 2 FREELIST GROUPS 2 ); p1.dbf PRODUCT T.S ※ next, pctincrease 값은 무시됨 1111110001 0101010101 1101000000 0000000000  익스텐트 할당 정보를 각 데이터 파일에서 비트맵으로 관리

33 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 33 지역 관리 테이블스페이스의 장점 Tablespace & Data files  성능과는 무관하게 많은 익스텐트 사용  단편화가 없다.  동시성, 속도 향상. 비트맵 이용 동일 익스텐트 사이즈 딕셔너리 의존도 제거 딕셔너리 경합 제거 딕셔너리에 대한 작업 제거 p1.dbf PRODUCT T.S 1111110001 0101010101 1101000000 0000000000

34 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 34 테이블스페이스 생성시 고려사항 Tablespace & Data files SALES T.S System T.S PRODUCT T.S s1.dbfs2.dbf p1.dbf s.dbf Temp T.S t.dbf RBS T.S r.dbf 데이터의 확장성 물리적 I/O 성능 데이터의 성격 실패시 영향

35 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 35 저장 영역 설정 옵션 Storage Architecture CATEATE TABLE emp ( empno NUMBER(4) …, ename VARCHAR2(10) …, ………… ) PCTFREE 20 PCTUSED 50 INITRANS 5 MAXTRANS 10; STORAGE ( INITIAL 200K NEXT 200K PCTINCREASE 50 MINEXTENTS 5 MAXEXTENTS 121 FREELISTS 2 FREELIST GROUPS 2 ) TABLESPACE company

36 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 36 감사합니다

37 http://www.shsvc.co.kr ORACLE DBMS Storage Architecture Make a Real DBA 37 Q & A


Download ppt "Make a Real DBA 오라클 저장 영역 구조 ㈜ 신한시스템즈 김 종 근김 종 근 김 종 근김 종 근."

Similar presentations


Ads by Google