지금까지는 테이블스페이스를 전혀 신경안쓰고 테이블을 관리하고 있었는데
테이블스페이스 분리의 중요성을 느껴서
오라클 기준으로 테이블 스페이스를 공부하려고 합니다.
테이블스페이스
구성이 되었습니다.create tablespace ${테이블스페이스명}
datafile '/oracleData/project/member01.dbf' --파일경로
size 100M --초기 데이터 파일 크기 설정
autoextend on next 100M -- 초기 크기 공간을 모두 사용하는 경우 자동으로 파일의 크기가 커지는 기능
maxsize 1024M -- 데이터파일이 최대로 커질 수 있는 크기 지정 기본값 = unlimited
uniform size 1M -- EXTENT 한개의 크기를 설정
SEGMENT SPACE MANAGEMENT AUTO; -- 세그먼트 빈 공간 관리 방식을 ASSM 방식으로 설정
SELECT * FROM DBA_DATA_FILES ORDER BY file_name;
-- 테이블별 테이블 스페이스 조회 쿼리
SELECT table_name, tablespace_name, partitioned FROM tabs;
-- 인덱스별 테이블 스페이스 조회 쿼리
SELECT index_name,table_name, tablespace_name FROM all_indexes ORDER BY tablespace_name;
-- check tablespace usage
select substr(a.tablespace_name,1,30) tablespace,
round(sum(a.maxmytes)/1024/1024,1) "TotalMB",
round(sum(a.total1)/1024/1024,1) "TotalMB",
round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1) "UsedMB",
round(sum(a.sum1)/1024/1024,1) "FreeMB",
round((round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1))/round(sum(a.total1)/1024/1024,1)*100,2) "Used%",
round((round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1))/round(sum(a.maxmytes)/1024/1024,1)*100,2) "MaxUsed%"
from
(select tablespace_name,0 total1,sum(bytes) sum1,max(bytes) MAXB,count(bytes) cnt, 0 as maxmytes
from dba_free_space
group by tablespace_name
union
select tablespace_name,sum(bytes) total1,0,0,0 ,sum(maxbytes)
from dba_data_files
group by tablespace_name
) a
group by a.tablespace_name
order by tablespace;
-- 테이블에 대한 테이블스페이스 변경 쿼리
ALTER TABLE 테이블명 MOVE TABLESPACE 테이블스페이스명;
-- 테이블스페이스에 대해 데이터파일 추가 쿼리
ALTER TABLESPACE DUMTS ADD DATAFILE '/oracleData/project/member02.dbf' SIZE 1G;
-- 데이터 파일 자동증가 설정
ALTER DATABASE DATAFILE '/oracleData/project/member02.dbf' AUTOEXTEND ON NEXT 100M;
-- INDEX에 대한 테이블스페이스 변경 쿼리
ALTER INDEX 인덱스명 REBUILD TABLESPACE 테이블스페이스명;
테이블스페이스를 테이블별로 혹은 정책에 따라 할당하는 이유는 다음과 같은 이유가 가장 큽니다.
테이블스페이스의 존재를 전혀 모르고 테이블을 관리하고 있었는데 용량 이슈랑 운영의 이유로 테이블 스페이스의 존재를 알아가다가 중요성을 느껴서 이번기회에 공부하였습니다.
MySQL도 테이블스페이스가 있는 것 같기는한데 안에 구조는 좀 다른느낌인 것 같더라고요.
나중에 DB 엔진, 스토리지 엔진도 따로 파서 공부해보고 싶습니다.
공부할 건 참 많네요 ㅋㅋㅋㅋ