반응형
1. 테이블스페이스란?
테이블스페이스는 테이블이 저장되는 물리적인 공간을 의미합니다. 오라클에서는 테이블을 생성하기 전에 데이터를 저장할 테이블스페이스를 먼저 만들어야 합니다. 이렇게 테이블스페이스를 나누어 관리하면, 성능 향상과 관리의 효율성을 얻을 수 있습니다.
테이블스페이스는 미리 정의된 용량만큼 공간을 확보하며, 생성된 테이블스페이스에 데이터가 저장됩니다. 예를 들어, 게시판 테이블의 데이터를 100MB 용량의 테이블스페이스에 저장하고, 용량이 초과될 경우 자동으로 10MB씩 확장되도록 설정할 수 있습니다.
2. 테이블스페이스 생성 및 관리
테이블스페이스 생성 과정
- SYS 계정으로 접속하여 테이블스페이스를 생성합니다.
- SCOTT2 유저를 생성하고, 기본 테이블스페이스로 Mytablespace를 설정합니다.
- SCOTT 계정의 emp 테이블을 SCOTT2 계정으로 복사할 수 있습니다.
CREATE TABLE scott2.emp TABLESPACE mytablespace AS SELECT * FROM scott.emp;
3. 테이블스페이스의 특성
- 데이터를 삭제하고 커밋(Commit) 하더라도 테이블스페이스의 사용량은 변하지 않습니다.
- 테이블이 줄어들어도, 자동으로 테이블스페이스의 크기가 줄어들지 않으며 수동으로 조정해야 합니다. 한 번 늘어난 공간은 자동으로 줄어들지 않기 때문에, 필요한 경우 수동으로 크기를 관리해야 합니다.
4. 테이블스페이스 조회 및 관리
현재 테이블스페이스 조회
- SYSTEM 계정으로 로그인 후, 다음 쿼리로 테이블스페이스 정보를 확인할 수 있습니다:
SELECT * FROM dba_tablespaces;
- 현재 사용자 계정에서 테이블스페이스 이름을 조회할 때는:
SELECT DISTINCT tablespace_name FROM user_tables;
테이블스페이스에 포함된 테이블 조회
SELECT TABLESPACE_NAME, TABLE_NAME FROM USER_TABLES WHERE TABLESPACE_NAME = '테이블스페이스명';
데이터 파일 정보 확인
SELECT file_name, tablespace_name, bytes, status FROM DBA_DATA_FILES;
- file_name: 데이터 파일의 물리적 위치와 파일명
- tablespace_name: 테이블스페이스 이름
- bytes: 테이블스페이스 크기
- status: 사용 가능 여부
테이블스페이스별 사용 가능한 공간 조회
SELECT tablespace_name, SUM(bytes), MAX(bytes) FROM DBA_FREE_SPACE GROUP BY tablespace_name;
- SUM: 테이블스페이스 내 분산된 여유 공간의 총합
- MAX: 가장 큰 여유 공간의 크기
5. 테이블스페이스 생성 예시
CREATE TABLESPACE storm
DATAFILE 'C:\ORACLE\ORADATA\app_data.dbf' SIZE 100M
DEFAULT STORAGE (
INITIAL 10K
NEXT 10K
MINEXTENTS 2
MAXEXTENTS 50
PCTINCREASE 50
);
- 이때, autoextend on next 10m maxsize 500m 옵션을 추가하면, 용량이 다 찰 때 자동으로 10MB씩 확장됩니다.
6. 테이블스페이스 크기 수정
ALTER DATABASE DATAFILE '데이터파일경로' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
또는
ALTER TABLESPACE 테이블스페이스명 ADD DATAFILE '추가할 데이터파일명' SIZE 1024M;
7. 테이블스페이스의 기본 동작
- 테이블스페이스를 별도로 설정하지 않으면, 기본 테이블스페이스에 데이터가 저장됩니다.
- 테이블을 생성할 때, 해당 테이블은 스키마의 기본 테이블스페이스에 생성되며, 이 테이블스페이스의 최대 용량까지 데이터를 저장할 수 있습니다.
8. 테이블스페이스 확인 및 관리
- 테이블 정보는 all_tables, user_tables, dba_tables에서 조회할 수 있습니다.
- 테이블스페이스를 설정하여 데이터를 효율적으로 관리하는 것이 중요하며, 각 계정별로 기본 테이블스페이스를 지정하여 사용할 수 있습니다.
반응형
'※ 소소한 IT > ORACLE' 카테고리의 다른 글
오라클 LOCK 완벽 가이드: DML, DDL 잠금 유형부터 해결 방법까지 (0) | 2015.01.14 |
---|---|
Oracle DB link & synonym 개념 정리 (0) | 2014.10.08 |
오라클(Oracle) 대용량 데이터 토드(Toad)를 이용해서 넣기 (0) | 2014.09.24 |
오라클에서 varchar 와 varchar2 의 차이점 (0) | 2014.09.24 |
[Oracle] 변환형 함수 정리 : TO_CHAR, TO_NUMBER,TO_DATE (0) | 2014.09.04 |