ORACLE

오라클 테이블 스페이스

gold99 2024. 1. 16. 00:31
 

set oracle_sid=iedu
sqlplus "/as sysdba"
startup
--
create temporary tablespace temp
 tempfile 'd:\iedu\temp01.dbf' size 10m;
--
데이터베이스>테이블스페이스>세그먼트>익스텐트>블럭
==데이터딕션어리를 이용
--테이블스페이스의 목록
select TABLESPACE_NAME, STATUS, CONTENTS ,LOGGING,
 BLOCK_SIZE, EXTENT_MANAGEMENT
 from dba_tablespaces;
col TABLESPACE_NAME format a10
col EXTENT_MANAGEMENT format a15
col CONTENTS format a10
col STATUS format a10
col LOGGING format a10 
--영구테이블스페이스의 물리적 파일위치확인
select TABLESPACE_NAME, FILE_NAME,BYTES, BLOCKS,
 STATUS from dba_data_files;
col FILE_NAME format a20
--임시테이블스페이스의 물리적 파일위치확인
select TABLESPACE_NAME, FILE_NAME,BYTES, BLOCKS,
 STATUS from dba_temp_files;
==동적성능뷰를 이용
--테이블스페이스의 목록
col tsname format a10
select TS#, NAME tsname from v$tablespace;
--영구테이블스페이스의 물리적 파일위치확인
col fname format a20
select TS#, FILE#,NAME fname, STATUS, BYTES
 from v$datafile;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
--임시테이블스페이스의 물리적 파일위치확인
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$tempfile b
 where a.ts#=b.ts#;
==테이블스페이스의 크기조절
--
create tablespace expert
 datafile 'D:\IEDU\expert01.dbf' size 10m,
      'D:\IEDU\expert02.dbf' size 10m;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
==1.데이터 파일의 추가
alter tablespace expert
 add datafile 'D:\IEDU\expert03.dbf' size 5m;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
==2.데이터 파일의 크기재조정
alter database
 datafile 'D:\IEDU\expert03.dbf' resize 10m;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
==3.데이터 파일의 자동증가모드지정
alter database
 datafile ' D:\IEDU\USER2-01.DBF' autoextend on
 next 10m maxsize 100m;
==
select username,DEFAULT_TABLESPACE from dba_users;
conn ejb/ejb
select * from tab;
네이버의 쿼리1실행
--사용자의 테이블과 생성된 테이블 스페이스 확인
select table_name,tablespace_name from user_tables;
create table test2(
 a number,
 b varchar2(20),
 c timestamp default sysdate
)
tablespace expert;
select table_name,tablespace_name from user_tables;
==DB가동중 테이블 스페이스의 이동
conn /as sysdba
create tablespace rose
 datafile 'D:\IEDU\rose01.dbf' size 10m;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
--이동('D:\IEDU\rose01.dbf'-->'D:\rose01.dbf')
host
move D:\IEDU\rose01.dbf D:\
<--사용중인 파일이어서 오류
exit
--1.테이블스페이스의 모드변경
alter tablespace rose offline;
select a.TS#,a.NAME tsname, b.FILE#,b.NAME fname,
 b.STATUS, b.BYTES from v$tablespace a,v$datafile b
 where a.ts#=b.ts#;
--2.이동('D:\IEDU\rose01.dbf'-->'D:\rose01.dbf')
host
move D:\IEDU\rose01.dbf D:\
exit
--3.컨트롤 파일의 경로변경
alter tablespace rose
 rename datafile 'D:\IEDU\rose01.dbf' to
 'D:\rose01.dbf';
--4.테이블스페이스의 모드변경
alter tablespace rose online;
==DB종료후 테이블 스페이스의 이동
shutdown immediate;
host
move  D:\rose01.dbf  D:\IEDU\
exit
startup
alter database
 rename file 'D:\rose01.dbf'
 to 'D:\IEDU\rose01.dbf';
alter database open;
==테이블 스페이스의 삭제
drop tablespace rose;
drop tablespace expert;
drop tablespace expert INCLUDING CONTENTS;
drop tablespace user2
 INCLUDING CONTENTS and datafiles;
create tablespace sun
 datafile 'd:\iedu\sun01.dbf' size 10m;
drop tablespace sun;
--데이터 파일의 재사용
create tablespace sun
 datafile 'd:\iedu\sun01.dbf' reuse;
--테이블스페이스의 관련제약까지 삭제
drop tablespace sun
 including contents cascade constraints;

 

 

 

 

 

==각 테이블 스페이스의 현황 확인==
col used_space format a10
select a.tablespace_name, b.total total,
 b.total - a.free used,a.free free ,
 round(100 * ((b.total - a.free)/b.total))||'%' used_space
 from (select tablespace_name, sum(bytes) free from dba_free_space group by
  tablespace_name) a,
     (select tablespace_name, sum(bytes)total from dba_data_files group by
tablespace_name) b
  where b.tablespace_name = a.tablespace_name;
과제
1.영구테이블 스페이스 SPRING 생성
 -데이터 파일 SPRING01.DBF (10M)
2.SPRING에 데이터 파일 추가
 -데이터 파일 SPRING02.DBF (10M)
3.지역적 관리테이블스페이스 indx생성.
 데이터 파일 INDEX01 최초크기는 2mb,
 확장영역이 필요시 500kb의 자동 확장,최대 10m
4.테이블스페이스와 데이터 파일의
 데이터닉션너리에서 정보를 표시
5.INDX테이블 스페이스를 c:\로 이동
6.SPRING 테이블 스페이스에 쿼리1 수행
(사용자 user1이용)
7.SPRING 테이블 스페이스및
 연관된 파일 삭제후 결과 확인
8.INDX테이블 스페이스의 연관제약사항까지 삭제