물리적 환경 구성 (테이블 스페이스 및 데이터 파일 구성)
Oracle Database 테이블스페이스 및 데이터파일 구성
<목차>
1. 테이블 스페이스
(1) 테이블 스페이스 정의
(2) 테이블 스페이스 구성 계획
(3) 테이블 스페이스 생성
2. 데이터 파일 관리
(1) 데이터 파일 정의
(2) 데이터 파일 구성 계획
(3) 데이터 파일 관리
3. 테이블 스페이스 관리
(1) 테이블 스페이스 용량 늘리기
(2) 테이블 스페이스 이동
1) Offline상태에서 이동
2) Online상태에서 이동
(3) 테이블 스페이스 삭제
1. 테이블 스페이스
(1) 테이블 스페이스 정의
테이블 스페이스란 오라클 내에서 실질적으로 데이터가 저장되는 물리적인 공간으로 세그먼트들로 구성된다. 사용자가 생성할 수 있는 테이블 스페이스는 일반 테이블 스페이스, 임시 테이블 스페이스, 실행취소 테이블 스페이스가 있다.
(2) 테이블 스페이스 구성 계획
테이블스페이스 명 |
php |
st |
spare |
구성 데이터 파일 명
|
php01 |
st01 |
spa01 |
php02 |
st02 |
spa02 |
|
데이터 파일 크기 |
100M |
100M |
200M |
extent 관리 |
locally management 방식 |
||
segment space 관리 |
auto management 방식 |
테이블스페이스 명 |
tmp |
undo |
구성 데이터 파일 명 |
tmp01 |
undo01 |
데이터 파일 크기 |
100M |
100M |
extent 관리 |
locally management 방식 |
|
segment space 관리 |
auto management 방식 |
(3) 테이블 스페이스 생성
SQL> SELECT tablespace_name, status, contents,
2 extent_management, segment_space_management
3 FROM dba_tablespaces;
// 테이블 스페이스 이름, Online/Offline 여부, 테이블 스페이스 속성, extent 관리방식, 세그먼트 영역 관리 방식에 대한 정보를 출력한다.SQL> SELECT tablespace_name, bytes, file_name
2 FROM dba_data_files;
// 딕셔너리를 이용해 테이블 스페이스 이름, 크기, 테이블 스페이스의 구성 데이터파일 이름에 대한 정보를 출력한다.
SQL> SELECT tablespace_name, bytes, file_name
2 FROM dba_temp_files;
// 딕셔너리를 이용해 임시 테이블 스페이스 이름, 크기, 임시 테이블 스페이스의 구성 데이터파일 이름에 대한 정보를 출력한다.
SQL> SELECT t.name tablespace_name, d.bytes, d.name file_name
2 FROM v$tablespace t, v$datafile d
3 WHERE t.ts#=d.ts#;
// 파라미터값을 이용해 테이블 스페이스 이름, 크기, 테이블 스페이스 구성 데이터파일 이름에 대한 정보를 출력한다.
SQL> CREATE TABLESPACE <테이블 스페이스 명>
2 DATAFILE '<데이터 파일 명>' SIZE <크기>
3 SEGMENT SPACE MANAGEMENT AUTO;
4 EXTENT MANAGEMENT LOCAL;
// 테이블 스페이스의 크기를 지정하여 테이블 스페이스를 생성한다. 오라클 9i버전에서는 Default로 Extent management는 locally방식으로 정의되지만 segment space management는 default가 manual이므로 auto로 사용하기 위해서는 정의해주어야 한다. 오라클 8i버전에서는 Extent management의 default가 dictionary방식이고 segment space management는 default가 manual이므로 locally방식과 segment space management를 auto로 사용하기 위해서는 반드시 정의해 주어야 한다.
2. 데이터 파일 관리
(1) 데이터 파일의 정의
데이터 파일이란 테이블 스페이스에 대한 물리적은 구조를 표현한 것이다.
(2) 데이터 파일 구성 계획
테이블스페이스명 |
php |
st |
spare |
|||
데이터파일명 |
php01 |
php02 |
st01 |
st02 |
spa01 |
spa02 |
용량 |
50M |
50M |
50M |
50M |
50M |
50M |
확장용량 |
10M |
10M |
10M |
10M |
10M |
10M |
한계용량 |
100M |
100M |
100M |
100M |
200M |
200M |
테이블스페이스명 |
tmp |
undo |
데이터파일명 |
tmp01 |
undo01 |
용량 |
50M |
50M |
(3) 데이터 파일 관리
SQL> ALTER TABLESPACE <테이블 스페이스 명>
2 ADD DATAFILE '<추가될 데이터 파일 명>' SIZE <크기>;
// 테이블 스페이스에 데이터 파일을 추가한다.SQL> ALTER DATABASE DATAFILE
2 '<data file>' RESIZE <크기>;
// 데이터 파일의 크기를 변경한다.
SQL> ALTER DATABASE
2 DATAFILE '<변경할 데이터 파일 명>
3 AUTOEXTEND [ON | OFF] NEXT <크기> MAX SIZE <크기>;
// 데이터 파일이 확장할 경우 확장 계획에 대한 설정 값이다. 크기변경과 같이 사용할 수 없다.
SQL> SELECT tablespace_name, file_name, autoextensible, increment_by, maxbytes
2 FROM dba_data_files
3 WHERE tablespace_name= ‘<테이블 스페이스 명>’;
// 데이터 파일의 확장 계획에 대한 설정 값을 출력한다.
3. 테이블 스페이스 관리
(1) 테이블 스페이스 용량 늘리기
SQL> CREATE TABLESPACE <테이블 스페이스 명>
2 DATAFILE '<데이터 파일 명>' SIZE <크기>
3 AUTOEXTEND ON NEXT <크기> MAXSIZE <크기>;
// 테이블 스페이스의 데이터 파일이 자동으로 확장되게 테이블 스페이스를 생성한다.SQL> ALTER TABLESPACE <테이블 스페이스 명>
2 ADD DATAFILE '<추가될 데이터 파일 명>' SIZE <크기>
3 AUTOEXTEND ON NEXT <크기> MAXSIZE <크기>;
// 테이블 스페이스에 자동으로 확장되는 데이터 파일을 추가한다.
(2) 임시 테이블 스페이스 변경
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <임시 테이블 스페이스 명>;
(3) 테이블 스페이스 이동
1) Offline상태에서의 이동
SQL> ALTER TABLESPACE <테이블 스페이스 명> [OFFLINE | ONLINE];
// 테이블 스페이스의 상태를 Online이나 Offline으로 변경한다.SQL>!mv <이동하기 전 데이터파일명> <이동할 데이터파일위치>
// 실제 데이터 파일의 이름을 변경하거나 데이터 파일을 이동한다.
SQL> ALTER TABLESPACE <테이블 스페이스 명> RENAME DATAFILE
2 '<변경 전 데이터파일명>’
3 TO '<변경 할 데이터파일명>';
// 오라클 시스템 내에서 테이블 스페이스를 사용할 파라미터 값을 변경한다.
2) Online상태에서의 이동
SQL> SHUTDOWN IMMEDIATE;
// 오라클 종료SQL> STARTUP MOUNT;
// MOUNT단계까지 오라클 실행
SQL> ALTER TABLESPACE RENAME file
2 '<변경 전 데이터파일명>’
3 TO '<변경 할 데이터파일명>';
// 실제 데이터 파일의 이름을 변경하거나 데이터 파일을 이동한다.
SQL> ALTER DATABASE OPEN;
// OPEN단계까지 오라클 실행
(3) 테이블 스페이스 삭제
SQL> DROP TABLESPACE <테이블 스페이스 명>
2 [INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS];
// 지정된 tablespace를 삭제한다. 일반적인 경우에서는 사용하지 않는다.
// INCLUDING CONTENT : Tablespace에 segment가 존재할 때 segment를 같이 삭제한다.
// CASCADE CONSTRAINTS : 삭제되는 tablespace의 table을 다른 tablespace의 table이 참조하는 경우에 해당 constraint를 같이 삭제한다.
// AND DATAFILES : Tablespace에 포함된 data file을 같이 지운다. 이 옵션을 쓰지 않으면 데이터 파일은 OS상에서 직접 지워야 한다
'교육 > Oracle' 카테고리의 다른 글
Day 50 (DB 파티션) (0) | 2020.01.30 |
---|---|
Day 49 (DB) (0) | 2020.01.29 |
Day 48 (DB) (0) | 2020.01.28 |
Day 46 (DB_인덱스) (0) | 2020.01.22 |
Day 45 (DB) (0) | 2020.01.21 |