반응형
TABLESPACE
오라클 데이터 저장 단위 중 가장 상위에 있는 단위를 테이블 스페이스라고 합니다. 데이터 저장 단위는 물리적, 논리적단위로 나눌 수 있습니다. 물리적 단위는 파일을 의미하고 논리적 단위는 데이터블록 -> 익스텐트 -> 세그먼트 -> 테이블스페이스 이렇게 나뉩니다. 데이터 블록 여러개가 모여 익스텐트 하나를 만들고, 익스텐트 여러개가 모여 하나의 세그먼트를 구성하며, 테이블스페이스는 가장 최상위 개념의 데이터 공간입니다.
1. 조회
SELECT * FROM DBA_TABLESPACES; --테이블스페이스 조회
2. 생성
create tablespace [테이블 스페이스명]
datafile 'D:\dev\oradata' --파일경로
size 10M --초기 데이터 파일 크기 설정
autoextend on next 10M -- 초기 크기 공간을 모두 사용하는 경우 자동으로 파일의 크기가 커지는 기능
maxsize 100M -- 데이터파일이 최대로 커질 수 있는 크기 지정 기본값 = unlimited
uniform size 1M -- EXTENT 한개의 크기를 설정
3. 전체 경로 및 용량 조회
SELECT A.TABLESPACE_NAME "테이블스페이스명",
A.FILE_NAME "파일경로",
(A.BYTES - B.FREE) "사용공간",
B.FREE "여유 공간",
A.BYTES "총크기",
TO_CHAR( (B.FREE / A.BYTES * 100) , '999.99')||'%' "여유공간"
FROM
(
SELECT FILE_ID,
TABLESPACE_NAME,
FILE_NAME,
SUBSTR(FILE_NAME,1,200) FILE_NM,
SUM(BYTES) BYTES
FROM DBA_DATA_FILES
GROUP BY FILE_ID,TABLESPACE_NAME,FILE_NAME,SUBSTR(FILE_NAME,1,200)
) A,
(
SELECT TABLESPACE_NAME,
FILE_ID,
SUM(NVL(BYTES,0)) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME,FILE_ID
) B
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME
AND A.FILE_ID = B.FILE_ID;
4. 속성 변경
-- 해당 테이블스페이스의 물리적인 파일의 이름 또는 위치변경
alter tablespace rename [A] to [B]
-- 해당 테이블스테이스의 용량을 1024메가로 변경
alter tablespace [테이블스페이스명] add datafile [추가할데이터파일명] size 1024M;
-- 해당 데이터파일경로에 해당하는 테이블스페이스의 크기가 FULL이 되면 자동으로 100메가씩 증가.
alter database datafile [데이터파일경로] 'autoextend on next 100m maxsize unlmited;
5. USER에게 할당
ALTER USER [USERNAME] DEFAULT TABLESPACE [TABLESPACENAME]
QUOTA UNLIMITED ON [TABLESPACENAME]
TEMPORARY TABLESPACE TEMP;
6. 테이블이 속한 TABLESPACE 확인
SELECT TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER='[USERNAME]';
7. TABLESPACE에 DATA FILE 추가
ALTER TABLESPACE [TABLESPACENAME] ADD DATAFILE '데이터파일 경로\MY_DATA02.dbf' SIZE 30G AUTOEXTEND ON;
8. TABLESPACE 수정/삭제 시 ON/OFFLINE 설정
ALTER TABLESPACE [TABLESPACENAME] OFFLINE; --OFFLINE 설정
ALTER TABLESPACE [TABLESPACENAME] ONLINE; --ONLINE 설정
9. TABLESPACE 공간관리
ALTER DATABASE DATAFILE '데이터파일 경로\MY_DATA01.dbf' RESIZE 30G;
ALTER TABLESPACE [TABLESPACENAME] ADD DATAFILE '데이터파일 경로\MY_DATA01.dbf' SIZE 30G;
ALTER TABLESPACE [TABLESPACENAME] ADD DATAFILE '데이터파일 경로\MY_DATA01.dbf' SIZE 30G AUTOEXTEND ON NEXT 50G MAXSIZE 2048G;
10. TABLESPACE 내 DATA FILE 삭제
ALTER TABLESPACE [TABLESPACENAME] DROP DATAFILE '데이터파일 경로\MY_DATA02.dbf';
11. TABLESPACE 삭제
DROP TABLESPACE [Tablespace Name]
INCLUDING CONTENTS AND DATAFILES -- 테이블 스페이스 내 객체(테이블, 인덱스 등), 물리적 데이터 파일까지 모두 삭제
CASCADE CONSTRAINTS; -- 제약 조건까지 삭제
반응형
'[DB] ORACLE' 카테고리의 다른 글
[ORACLE] INDEX기본 구조와 사용 (0) | 2021.02.04 |
---|---|
[ORACLE] 오라클 파티셔닝 (ORACLE Partitioning) (0) | 2021.01.21 |
[ORACLE] DBMS_CRYPTO package 단방향 암호화 (0) | 2021.01.19 |
[ORACLE/TIBERO] 테이블/인덱스/제약조건 등 오브젝트 조회 쿼리 (0) | 2020.06.08 |
[ORACLE/TIBERO] engine 설치 후 초기 설정(스키마, 오브젝트 생성 등) (0) | 2020.05.25 |