데이터 파일과 테이블스페이스의 관계
데이터베이스의 데이터(테이블, 인덱스 및 기타 오브젝트 등)는 데이터 파일에 보관 되어 있음
데이터 파일은 파일 시스템상에 생성되는 일반적인 파일이므로 OS상에서 확인 가능
(단, ASM 환경에서는 일반적인 파일시스템과 동일하게 확인 할 수는 없음)
위의 그림을 설명하면 실제로 데이터베이스 내부에 물리적으로 존재하는 것은 데이터 파일과 데이터를 저장하는 최소 공간인 OS 블럭이 있고
한 개 이상의 데이터 파일을 그룹으로 묶은 후 명명한 테이블스페이스라는 논리적 저장공간이 존재함
테이블 스페이스는 오라클이 정의한 논리적인 저장 공간이므로 OS 상에서 실제로 확인할 수 없음(존재 하지 않으므로)
데이터베이스 내에서 오브젝트(객체, 테이블이나 인덱스등)를 생성할때 데이터 파일을 지정하는것이 아니라 테이블 스페이스를 지정함테이블 스페이스의 종류
종류설명Permanent Tablespace 테이블이나 인덱스 등 데이터베이스에서 활용하기 위한 객체들을 저장하기 위한 테이블 스페이스 UNDO Tablespace UNDO 정보만을 저장하기 위한 테이블 스페이스. 사용자가 생성한 테이블이나 인덱스등의 객체 저장이 불가능 Temporary Tablespace SQL 처리(정렬, sort)시 사용하는 임시 작업용 테이블 스페이스. 사용자가 생성한 테이블이나 인덱스등의 객체 저장이 불가능 - Permanent Tablespace
Permanent Tablespace는 오라클 동작에 필수인 Permanent Tablespace와 사용자의 데이터를 보관하기 위한 Permanent Tablespace가 있음- for System
SYSTEM Tablespace와 SYSAUX Tablespace는 오라클이 동작하는데 필수적인 테이블 스페이스임
시스템 테이블스페이스에는 data dictionary가 저장되어 있으며 SYSAUX 테이블 스페이스에는 AWR Repository 등 필수적인 관리 정보가 저장됨
두 테이블 스페이스 모두 사용자의 객체들을 저장할 수 있기는 하나, 운영의 효율성을 고려하여 사용자의 데이터는 저장하지 않는다. - for User
위의 두개의 테이블 스페이스를 제외한 나머지 테이블 스페이스는 사용자의 데이터를 저장하기 위한 테이블 스페이스임
DBCA를 사용하여 데이터베이스를 생성하면 기본적으로 USERS 테이블 스페이스가 생성됨
- for System
- UNDO Tablespace
UNDO 테이블 스페이스는 UNDO segment를 저장하기 위한 전용 테이블 스페이스
따라서 사용자가 생성한 객체(인덱스, 테이블 등)는 저장 할 수 없음
DBCA를 사용하여 데이터베이스를 생성하면 기본적으로 UNDOTS1이라는 이름의 테이블 스페이스가 생성됨
§ UNDO Segment
UNDO 세그먼트는 변경 전 데이터(=last commit 데이터)를 보관하는 영역임. UNDO Segment의 키워드는 Rollback
트랙잭션이 시작되면 해당 트랜잭션에 자동으로 특정 UNDO 세그먼트가 할당되며
해당 트랜잭션에서 변경된 데이터의 변경 전 데이터는 각 트랜잭션에 할당된 UNDO 세그먼트에 보관됨
여기에 보관된 데이터는 트랜잭션의 롤백이나 read consistency를 위해 변경 전 데이터가 필요할 때 사용됨 - Temporary Tablespace
임시 세그먼트라 불리는 작업용 디스크 영역을 보관하기 위한 특별한 테이블 스페이스
UNDO 테이블 스페이스와 같이 사용자의 객체를 저장하여 사용 할 수 없으며
DBCA를 사용하여 데이터베이스를 생성하면 기본적으로 TEMP라는 이름으로 생성됨
임시 테이블 스페이스에는 임시 파일이라는 특수한 데이터 파일로 구성되는데 여기에는 오브젝트들을 보관 할수 없으므로
다른 테이블 스페이스와 같이 백업이 필요하지 않음
§ Temporary Segment
임시 세그먼트는 처리에 필요한 일시적인 작업 영역을 메모리상에 확보 할 수 없을 때 할당되는 작업용 디스크 공간임
예를 들어, SQL을 처리 후 출력하는 과정에서 정렬(=sort, order by절 이용 같은)처리에 필요한 데이터 양이 적을 때는
PGA의 SQL Work area(sorting 영역)에서 처리하지만 필요한 공간의 크기가 SQL Work area의 크기를 넘어버리게 되면
임시 세그먼트를 할당함. 할당 후 해제하는 것은 오라클이 자동으로 수행(어느 프로세스가 하더라?)
- Permanent Tablespace
- 데이터 파일과 테이블 스페이스의 확인
- 테이블 스페이스의 확인: DBA_TABLESPACES라는 VIEW에서 확인 가능
아래 그림과 같이 쿼리를 사용하여 내용을 확인 가능함 - 데이터 파일 확인: DBA_DATA_FILES라는 VIEW에서확인 가능
아래 그림과 같이 쿼리를 사용하여 내용을 확인 할 수 있음
※ ASM 환경에서는 같은 쿼리를 사용해도 다른 결과가 나옴 - 임시 테이블 스페이스 확인
아래의 쿼리를 사용하여 확인할 수 있으며 위와 같이 ASM 환경에서는 다른 결과가 표시됨
※ ASM 환경
- 테이블 스페이스의 확인: DBA_TABLESPACES라는 VIEW에서 확인 가능
2018. 6. 8. 15:50