Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

6-1 데이터베이스 파일

Oracle 데이터베이스는, 인스턴스데이터베이스 파일로 구성된다.

저장공간 구성

 

파일 설명
데이터파일 테이블이나 인덱스 등의 데이터를 격납
REDO 로그파일 (Online REDO 로그파일) 데이터베이스에 대해 실행된 모든 갱신정보를 기록
제어파일 데이터파일명, REDO 로그파일명을 포함한 데이터베이스의 구성정보(데이터파일의 구성정보) 및 관리정보가 격납됨
초기화 파라미터 파일 초기화 파라미터의 리스트 및 각 파라미터의 값이 저장되어 있음
패스워드 파일 SYSDBA 등의 관리권한을 가진 유저의 패스워드를 관리함
아카이브 로그 파일 (아카이브 REDO 로그파일) REDO 로그파일의 카피본




REDO 로그파일의 다중화와 로그스위치
-Oracle 데이터베이스는 트랜잭션이 커밋된 타이밍에 REDO 데이터를 REDO 로그파일에 적는다. 이 동작으로, 트랜잭션에 의한 갱신이 사라지지 않도록 하고 있다. 그러나, REDO 로그파일이 손상되었을 경우, REDO 로그파일에 저장된 REDO 데이터(갱신이력 데이터)가 사라져 버릴 수 있다.
-그럴 경우를 대비해서, REDO 로그파일을 다중화하여, 한 개의 REDO 로그파일이 손상되어도 데이터베이스 갱신이력이 사라지지 않도록 하고 있다.

REDO 로그파일을 n개만큼 다중화한 것을 하나의 그룹으로 하여, 한 그룹이 모두 찰 때마다 로그 스위치를 발생시킨다.

- Oracle 데이터베이스에는 2개 이상의 그룹이 필요하다.
- 하나의 그룹에는 1개 이상의 멤버(파일)이 필요하다. 다중화하려는 경우에는, 2개 이상의 멤버를 구성한다. 같은 그룹 안의 멤버는 같은 사이즈이다.
- REDO 로그버퍼의 사이즈는 자동으로 확장되지 않는다.



제어파일
-제어파일은 데이터베이스 구성정보 및 관리정보를 기록하는 파일이다. 데이터파일명, REDO 로그파일명 등의 구성정보, 데이터베이스 작성의 타임스탬프, 다른 데이터베이스의 내부동작에 관련된 관리정보가 기록되어 있다.
-제어파일의 파일명은 CONTROL_FILES 초기화 파라미터에 의해 설정된다.




6-2 테이블 스페이스

Oracle 데이터베이스에 테이블이나 인덱스 등의 데이터를 저장하려 할 때, 저장하는 곳에 지정하는 것이 "테이블 스페이스"이다. 테이블스페이스는 논리적인 정의이고, 물리적으로 블록이 데이터파일에 저장되는 구조이다.

- 테이블스페이스는 하나 이상의 데이터파일을 그룹화한 것이다.
- 오브젝트를 저장하는 곳에는 테이블스페이스를 지정한다.
- 오브젝트의 저장공간은, 그 오브젝트의 저장공간에 지정된 테이블스페이스를 구성하는 데이터파일에 할당된다.

테이블스페이스 (Oracle 레벨), 데이터파일 (물리 레벨)

- 데이터베이스는 여러 테이블스페이스로 구성된다.
- 테이블스페이스는 하나 이상의 데이터파일로 구성된다.
- 테이블스페이스에는 하나 이상의 세그먼트가 격납된다.
- 세그먼트는 하나 이상의 익스텐스가 구성된다.
- 익스텐트는 연속된 데이터블록으로 구성된다.



특수한 역할을 하는 테이블스페이스

테이블스페이스 설명
SYSTEM 테이블스페이스 - Oracle에 필수적인 테이블스페이스
- 데이터베이스의 중요한 관리정보 (데이터 딕셔너리)가 저장되어 있다.
- 테이블스페이스명은 SYSTEM으로 구성되며 변경 불가능
- SYSTEM 테이블스페이스가 손상되어 사용할 수 없게 되면 인스턴스가 이상종료된다.
SYSAUX 테이블스페이스 - Oracle에 필수적인 테이블스페이스
- SYSTEM 테이블스페이스의 보조적인 역할을 하며, 데이터베이스의 관리정보가 저장됨.
- 테이블스페이스명은 SYSAUX으로 구성되며 변경 불가능
- AWR (Automatic Workload Repository)라는 테이블의 집합도 SYSAUX 테이블스페이스에서 관리된다.
UNDO 테이블스페이스 - UNDO 세그먼트라는 특수한 세그먼트로 구성됨
- 테이블이나 인덱스같은 오브젝트는 저장하지 않음
- 테이블스페이스명은 임의 변경 가능. DBCA으로 데이터베이스를 작성할 때는, UNDOTBS1라는 이름으로 저장됨.
TEMP 테이블스페이스 - TEMP 세그먼트라는 특수한 세그먼트로 구성됨
- 테이블이나 인덱스같은 오브젝트는 저장하지 않음
- 테이블스페이스명은 임의 변경 가능. DBCA로 데이터베이스를 작성한 경우, TEMP라는 이름으로 저장됨.





6-3 테이블스페이스의 작성, 확장, 삭제

삽질끝에 테이블스페이스 생성 성공..!



small테이블스페이스와 big테이블스페이스
-기본적인 테이블스페이스는 모두 smallfile 테이블스페이스이다. 10g 이후에는 bigfile 테이블스페이스가 도입되었는데, bigfile 테이블스페이스는 하나의 데이터파일만 생성할 수 있고, 그 테이터파일은 최대 128TB까지 지정할 수 있다.

테이블스페이스 사이즈 재지정
테이블스페이스에 데이터파일 추가
테이블스페이스 삭제하기. 테이블스페이스를 삭제했음에도 데이터파일은 삭제되지 않았다.

-- 테이블스페이스를 삭제하면서 오브젝트도 삭제
DROP TABLESPACE mytbs INCLUDING CONTENTS;

-- 테이블스페이스를 삭제하면서 오브젝트 및 데이터 파일도 몽땅 삭제
DROP TABLESPACE mytbs INCLUDING CONTENTS AND DATAFILES;

 





6-4 UNDO 테이블스페이스와 TEMP 테이블스페이스


UNDO 테이블스페이스는 갱신전의 과거 데이터를 보관하기 위한 테이블스페이스이다. UNDO 테이블스페이스에 통상적인 세그먼트를 격납하는 것이 불가능하다.

UNDO 데이터의 용도
- 트랜잭션 롤백: 트랜잭션에 의해 실행된 갱신을 되돌리기 위해, 갱신전의 과거 데이터가 필요하기 때문이다.
- 읽기 일관성 보증: 읽기 일관정은, 대상 데이터의 다른 이용자에 의해 갱신된 경우에도 쿼리를 시작한 시점의 데이터를 읽는 기능이다.
- 플래시백: 데이터를 잘못 입력했을 때 등등, 테이블 데이터를 과거의 상태로 되돌리기 위해 사용하는 기능이다.


(* 오라클은 읽기 일관성을 보증하기 위해 consistent 모드와 current 모드를 지원한다. consistent 모드가 읽기 일관성 보증이다. 즉, 다른 프로세스에 의해 트랜잭션이 수행중인 데이터를 조회할 때, 그 트랜잭션의 수행 시작 전의 시점의 데이터를 읽는 것이다. 반면 current 모드는 데이터를 찾아간 최후 시점의 값을 읽는 것으로, DML문을 수행할 때 주로 current 모드를 사용한다. DML을 consistent 모드로 처리하면 lost update가 발생할 수 있기 때문이다.)


TEMP 테이블스페이스
- 메모리상에 처리가 불가능한 대량 데이터를 처리할 경우에 사용하는 테이블스페이스. 여기에 통상적인 세그먼트를 격납하는 것이 불가능하다.
- 프로세스의 PGA에서 처리가 버거운 처리를 실행할 때, 데이터를 TEMP 테이블스페이스에 작성되는 TEMP Segment 저장소를 이용한다. ;

 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo