본문
테이블스페이스란?
- 논리적인 데이터 저장구조(=DB Cache Buffer 내에서 데이터를 작업하는 공간)
(오라클은 데이터를 저장하고 작업할 때
* 메모리에 논리적으로는 Tablespace 공간을 만들어서 작업, 실제 작업이 일어나는 공간.(작업속도가 빠름)
* 물리적으로는 디스크렝 Data File을 만들어서 저장(속도 느림)
- Database Buffer Cache에 Tablespace를 생성함(=SQL을 수행하면 해당 데이터는 반드시 Tablespace에 존재해야 함)
- Tablespace가 사용하는 메모리 공간이 클수록 일반적으로 수행 속도가 빨라짐
- dba_data_files 조회
Tablespace 의 종류 및 특징
(1) SYSTEM Tablespace
- 데이터 딕셔너리 정보들이 저장되어 있음, 이 Tablespace 가 손상될 경우 Oracle 서버가 시작이 안됨
- SYS계정 소유이지만 조회만 가능!
- 데이터 딕셔너리 : 오라클 서버의 모든 정보를 저장하고 있는 아주 중요한 테이블이나 뷰들
┌ Base Table : 데이터베이스 생성시(dbca, create database등) 생성됨, 사람 접근 불가(DBA 조차)
└ Data Dictionary View : Base Table을 조회할 수 있도록 하는 뷰
┌ Static Dictionary : 내용이 실시간으로 변경 안됨
│ (USER_XXX, ALL_XXX, DBA_XXX) = Instance가 Open일 경우에만 조회 가능
└ Dynamic Performance View : 실시간으로 변경되는 내용을 볼 수 있음
조회 시점에 Control File/메모리로 가서 정보를 가져옴
Instance가 Nomount 상태부터 조회 가능
- 데이터 딕셔너리에 들어있는 주요 정보
* 데이터베이스의 논리적인 구조와 물리적인 구조 정보들
* 객체의 정의와 공간 사용 정보들
* 제약조건에 관련된 정보들
* 사용자에 관련된 정보들
* Role, Privilege 등에 관련된 정보들
* 감사 및 보안등에 관련된 정보들
(2) SYSAUX Tablespace
: 10g 버전부터 등장, Oracle 서버의 성능 튜닝을 위한 데이터들이 저장되어 있음
(3) 일반 Tablespace
: 가장 일반적으로 많이 사용되는 Tablespace로 관리자가 필요에 의해 만드는 Tablespace.
DBA 에 의해 얼마든지 생성하고 삭제할 수 있음
문제) Tablespace 용량 부족으로 에러가 발생되면?
해결방법 1) Data file을 크게 늘려줌(자동 증가/수동증가)
해결방법 2) Data file을 하나 더 추가
Tablespace Offline
- 사용자가 더 이상 해당 Tablespace에 접근하지 못한다는 의미
- 데이터파일의 위치를 이동하거나 특정 Tablespace가 장애가 나서 복구해야 할 때 사용
- Tablespace를 Offline하는 방법 3가지
1) Normal Mode
SQL> alter tablespace haksa offline ;
2) Temporary Mode
Normal이 수행되지 못할 때(Tablespace의 Data file 이상) 사용하는 방법
3) Immediate Mode
- 반드시 Archive Log Mode일 경우에만 사용해야 한다.
- Data file에 장애가 나서 데이터를 내려쓰지 못하는 상황에서 Tablespace를 offline해야 할 경우 사용
- Tablespace 이동하기
1) Offline되는 Tablespace의 Data file 이동하기
1. 해당 Tablespace Offline 하기
2. Data file을 대상 위치로 복사
3. Control file 내의 해당 Data file 위치 변경
4. 해당 Tablespace Online
2) Offline 안 되는 Tablespace의 Data file 이동하기
1. DB 종료
2. Mount 상태로 시작
3. Data file 복사
4. Control file의 내용 변경
5. DB Open
(4) Undo Tablespace
: Undo Segment를 저장하고 있는 Tablespace, 관리자가 생성/관리 가능
Instance당 여러 개가 동시에 존재할 수 있지만 사용은 한번에 1개만
자동 관리 기법(AUM, Automatic Undo Management)
- Undo Data : 사용자가 DML을 수행할 경우 발생하는 원본데이터, Oracle Server Process가 직접 관리
ex) 홍길동→일지매로 업데이트 시 홍길동이 Undo Data
- Undo Segment : Undo Data만을 저장하는 Segment