2011년 6월 24일 금요일

[Oracle.2]Oracle Sever Architecture - Oracle Database


Oracle Server Architecture

Oracle은 사용자의 요구를 DBMS에 전달하는 기능을 하는 Instance와 데이터를 저장하고 데이터에 접근하는 대상인 Database로 구성되어 있다.
2. Database
데이터를 저장하는 저장 영역을 말한다. Oracle은 저장 영역인 데이터베이스를 효율적으로 사용하기 위해 논리적 데이터베이스와 물리적 데이터베이스로 구분한다.
1) Logical Database Structure
저장공간을 효율적으로 사용하기 위해 세밀한 설정을 가능하게 한다.
1-1) Data Block
데이터를 저장하는 가장 작은 논리적 단위 이다. Oracle의 데이터 블록은 데이터베이스를 생성할 때 결정된다. 데이터 블록의 크기는 DB_BLOCK_SIZE의 값에 의해 결정되고 데이터베이스가 생성된 이후에는 다시 변경할 수 없다.
1-2) Extent
데이터를 저장하기 위한 연속적인 데이터 블록의 집합이다. 데이터가 할당되는 최소 단위.
사용자가 테이블을 생성하면 이를 저장하기 위해 데이터블록이 할당되고 이때 저장 공간을 연속된 블록들로 할당하게 되는데 처음 할당되는 연속되는 블록들을 Initial Extent라고 한다. 계속된 추가 작업으로 저장 공간이 부족하게 되면 새로운 데이터 블록이 필요하게 되어 다시 연속적인 블록을 할당하게 된다.
1-3) Segment
테이블스페이스를 구성하는 논리적인 저장 단위 이다. 또한 Extent의 집합이다.
Oracle은 데이터를 효율적으로 저장하기 위해 다양한 유형의 Segment를 가진다.
1-3-1) Data Segments
테이블의 데이터를 저장하는 Segment 이다. 가장 빈번하게 I/O가 발생.
1-3-2) Index Segments
테이블 데이터의 Index를 저장하는 Segment 이다.
1-3-3) Rollback Segments
한 개 이상의 Rollback Segment 를 가지고 있다. Rollback Segment 는 변경 이전의 값을 저장하여, 사용자들에게 Read Consistency 를 제공한다. 또한, Transaction ROLLBACK되면 저장하고 있는 이전의 데이터를 제공한다. 자동 언두 관리 (Automatic Undo Management) 변경되기 이전의 언두 데이터를 언두 테이블스페이스에서 관리함으로써, 사용자가 COMMIT하여 이미 데이터베이스에 반영한 데이터도 원래의 값으로 되돌릴 수 있는 Flashback Query 기능이 가능하다.
1-3-4) Temporary Segments
SORT_AREA_SIZE에 할당된 메모리의 크기보다 큰 대용량의 데이터를 정렬할 때 사용하는 작업 공간 이다.
1-4) Tablespace
데이터를 저장하는 가장 큰 개념. 데이터베이스 객체를 생성하거나 생성된 테이블에 데이터를 추가하고 정상적으로 Transaction을 종료하면 테이블 스페이스에 저장된다.
하나의 데이터베이스는 반드시 한 개의 SYSTEM SYSAUX 테이블스페이스를 가지며, SMALLFILE TABLESPACE를 생성한다.
요약)
하나의 테이터베이스는 하나 이상의 테이블스페이스를 가진다. SYSTEM, SYSAUX 테이블스페이스는 데이터베이스가 생성될 때 반드시 존재한다. 데이터베이스 운영에 필수적인 정보들을 가지고 있기 때문이다. 하나의 테이블스페이스는 여러 세그먼트들로 구성된다. 112Kbytes 크기의 세그먼트 내에는 28Kbytes 84Kbytes 크기의 Extent가 존재한다. 그리고 이들 Extent에는2Kbytes 크기의 여러 블록이 존재한다. Block은 데이터를 저장하는 최소단위이며,  BlockOracle은 데이터베이스 객체와 데이터를 저장한다.
2) Physical Database Structure
데이터 베이스 생성시 미리 일정한 크기만큼의 파일을 생성해 두고 이 파일의 크기만큼 데이터를 저장한다.
데이터의 용도에 따라 여러 종류의 파일로 구분된다. 지금부터 하나하나 살펴 보자.
2-1) Data File
테이블, 인덱스 등의 데이터베이스 객체를 물리적으로 저장하는 파일을 말한다. 데이터 파일은 테이블 스페이스 생성시 하나 또는 그 이상 생성되어진다.
2-2) Control File
데이터베이스의 물리적인 구조를 저장해 두는 파일이다. Oracle Instance Data File, Online Redo Log File을 연결하는 역할을 한다.
데이터베이스의 물리적인 구조 정보를 가지고 있어 데이터베이스가 시작될 때나 데이터베이스 복구할 때 항상 참조되는 파일입니다.
2-3) Redo Log File
데이터베이스의 모든 변경 정보를 물리적인 파일 형태로 가지고 있는 파일이다.
리두 로그 파일은 데이터베이스를 복구할 때 꼭 필요한 파일이므로 디스크와 그룹형태로Mirroring  Multiplexed Online Redo Log 형태로 구성하여 운영해야 한다.
2-4) Archive Log File
온라인 리두 로그 파일이 로그 시퀀스 번호대로 저장되어 있는 것을 말한다. , 온라인 리두 로그 파일의 저장 내용을 모두 가지고 있는 파일이라고 생각하면 된다.
아카이브 모드일 때 생성되는 파일로 온라인 리두 로그 파일 중 덮어 쓰게 될 로그 시퀀스를 가진 파일의 이미지를 복사하여, 로그 시퀀스 번호대로 리두 로그 파일을 저장하게 된다.
2-5) Parameter File
Oracle Instance SGA 크기 등 해당 Oracle Instance의 기능과 성격을 기록해 놓은 파일이다. Oracle Instance를 시작할 때 Parameter File을 읽어 Oracle이 필요로 하는 자원을 얻게 된다.
2-6) Alert Trace File
운영중에 백그라운드 프로세스와 데이터베이스 서버가 시스템 내부적인 에러나 시스템 변경 상황, 그리고 사용자가 데이터베이스를 운용할 때의 에러 등을 감지하여 Trace File을 생성하며, Alert File에 기록하게 된다.
어제와 오늘 설명한 Oracle Server Architecture의 전체 구성 모습니다. Instance Database간의 연결 및 사용자가 요구한 SQL문을 메모리 영역과 프로세스, 파일 간 어떻게 상호 처리하는 것에 대해 나와 있다.

1-1. Oracle Server Architecture의 전체 구성 모습

*** 참조 문헌 : 10g로 시작하는 오라클 SQL & PL/SQL

댓글 없음:

댓글 쓰기

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...