02.Oracle/DataBase2008. 7. 23. 15:40
반응형
create tablespace TS_MISD datafile 'E:MIS_DBTS_MISD01.dbf' size 2000M; 2GByte로 테이블 생성

create tablespace TS_MISI datafile 'E:MIS_DBTS_MISI01.dbf' size 100M; 2GByte로 테이블 생성


alter tablespace TS_MISI
DEFAULT STORAGE(
INITIAL 65536
NEXT 0
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0);

alter tablespace TS_MISD
DEFAULT STORAGE(
INITIAL 65536
NEXT 0
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0);


CREATE TABLESPACE TS_FMSD
DATAFILE
'E:MIS_DBTS_FMSD03.DBF' SIZE 2097152 K ,
'E:MIS_DBTS_FMSD02.DBF' SIZE 2097152 K ,
'E:MIS_DBTS_FMSD01.DBF' SIZE 2097152 K
MINIMUM EXTENT 64 K
NOLOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64 K;

CREATE TABLESPACE TS_MISD DATAFILE
'E:MIS_DBTS_MISD01.DBF' SIZE 2097152 K
NOLOGGING
ONLINE
PERMANENT;
MINIMUM EXTENT 64 K;

CREATE TABLESPACE TDMS_TEMP DATAFILE
'/oracle/oradata/tdms_temp.DBF' SIZE 2097152 K
NOLOGGING
ONLINE
PERMANENT;
MINIMUM EXTENT 64 K;


EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64 K;


CREATE TABLESPACE TS_MISI
DATAFILE
'E:MIS_DBTS_MISI02.DBF' SIZE 2097152 K,
'E:MIS_DBTS_MISI01.DBF' SIZE 2097152 K
MINIMUM EXTENT 64 K
NOLOGGING
ONLINE
PERMANENT;
--EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64 K;



--PCTINCREASE : initialize의 증가치 퍼센트고

---자료영역 늘리기
SQL> Alter tablespace riaa_data add datafile 'c:riaadata1.ora' size 1M;
--테이블스페이스의 수정
테이블 영역이 변경되었습니다. ( 테이타 자료영역이 4M로 증가된다)

----------------------------
--***Object가 있을 경우 삭제 방법
------------------
SQL> drop tablespace riaa_data;
--테이블스페이스에 Object영역이 있으므로 삭제가 안된다.
라인 1 에 오류:
ORA-01549: 테이블 영역이 비어있지 않으므로 INCLUDING CONTENTS를 사용해 주십시오.

***Object가 있을 경우 삭제 방법
SQL> Drop tablespace TS_BILD including contents;
테이블 영역이 삭제되었습니다.
--user는 지워지지 않는다.. 다만 그 사용영역만 삭제된다.



2. SYSTEM and Non-SYSTEM Tablespace
- SYSTEM Tablespace : data dictionary 정보, SYSTEM rollback segment
- Non-SYSTEM Tablespace : Rollback segments, Temporary segments, App' data, App' index

3. CREATE TABLESPACE

CREATE TABLESPACE tablespace
DATAFILE filespec [autoextend_clause]
[, filespec [autoextend_clause]]...
[MINIMUM EXTENT integer [K|M]]
[DEFAULT storage_clause]
[PERMANENT|TEMPOARY] -- default PERMANENT
[ONLINE|OFFLINE] -- default ONLINE

예) CREATE TABLESPACE app_data
DATAFILE '/DISK4/app01.dbf' SIZE 100M,
'/DISK5/app02.dbf' SIZE 100M
MINIMUM EXTENT 500K
DEFAULT STORAGE (INITIAL 500K NEXT 500K
MAXEXTENTS 500 PCTINCREASE 0) ;

* Storage Parameters
- INITIAL : first extent의 size를 정한다. 최소 size는 2blocks이다. (2 * DB_BLOCK_SIZE)
default는 5 bolcks (5 * DB_BLOCK_SIZE)
- NEXT : 다음 extent의 size를 정한다. 최소 size는 1block 이다.
default는 5 bolcks (5 * DB_BLOCK_SIZE)
- MINEXTENTS : segment가 생성되었을 때 할당된 extent의 갯수.
default는 1
- PCTINCREASE n : 다음에 extent가 생성될 때 이전 extent보다 n% 증가된 size (PCT: percent)
default는 50
- MAXEXTENTS : segment가 갖을 수 있는 extent의 최대 수

4. Temporary Tablespace

CREATE TABLESPACE sort
DATAFILE '/DISK2/sort01.dbf' SIZE 50M
MINIMUM EXTENT 1M
DEFAULT STORAGE (INITIAL 2M NEXT 2M
MAXEXTENTS 500 PCTINCREASE 0)
TEMPORARY ;

5. Tablespace의 size 설정 (data file을 추가하면서...)

ALTER TABLESPACE app_data
ADD DATAFILE
'/DISK5/app03.dbf' SIZE 200M ;

6. Data File이 꽉차면 자동으로 datafile을 증가하게 만드는 방법.

ALTER TABLESPACE app_data
ADD DATAFILE
'/DISK6/app04.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M
MAXSIZE 500M ;

* 3가지 방법이 있다.
1) CREATE DATABASE
2) CREATE TABLESPACE DATAFILE
3) ALTER TABLESPACE ADD DATAFILE

7. 기존에 존재하는 datafile의 size를 resize하는 방법

ALTER DATABASE DATAFILE
'/DISK5/app02.dbf' RESIZE 200M ;

8. Changing the Storage Settings

ALTER TABLESPACE app_data
MINIMUM EXTENT 2M ;

ALTER TABLESPACE app_data
DEFAULT STORAGE
(INITIAL 2M NEXT 2M
MAXEXTENTS 999) ;

9. Tablespace OFFLINE/ONLINE
- tablespace가 만들어지면 default가 ONLINE이다.
- OFFLINE이 되면 다른 user의 access가 불가능하다.
- SYSTEM tablespace는 OFFLINE이 불가!
- transaction이 끝나지 않은 tablespace는 OFFLINE 불가!

ALTER TABLESPACE tablespace
{ ONLINE | OFFLINE [NORMAL|TEMPORARY|IMMEDIATE] }
- Normal : checkpoint를 적용시키고 offline한다.
- Temporary : datafile 중에서 online datafile에만 checkpoint를 적용시키고 offline한다.
- Immediate : checkpoint 없이 offline한다.

예) ALTER TABLESPACE app_data OFFLINE ;

10. Moving Data File : ALTER TABLESPACE
- 반드시 offline 한 상태에서 한다.
- target data file이 반드시 존재해야 한다.

ALTER TABLESPACE app_data
RENAME DATAFILE '/DISK4/app01.dbf'
TO '/DISK5/app01.dbf' ;

11. Moving Data File : ALTER DATABASE
- 반드시 database가 mount 상태여야 한다.
- target data file이 반드시 존재해야 한다.
- shutdown하고 host상태에서 datafile을 제거해야 한다.

ALTER DATABASE RENAME FILE
'/DISK1/system01.dbf' TO '/DISK2/system01.dbf' ;

12. READ-ONLY Tablespace 상태
- 오직 select만 할 수 있다.
- CREATE는 안되고... DROP은 할 수 있다.
- user들이 data변경을 못하고, backup과 recovery가 쉽다.

ALTER TABLESPACE app_data
READ ONLY

ALTER TABLESPACE app_data
READ WRITE -- read only 상태를 다시 read write상태로 바꿔준다.

* 주의점!
- tablespace가 반드시 online상태여야 한다.
- active transaction이 허용되지 않아야 한다.
- tablespace가 active rollback segment를 갖고 있으면 안된다.
- online backup중엔 못한다.

13. DROP TABLESPACE
- file 삭제는 host에 나가서 삭제를 해야 한다.

DROP TABLESPACE app_data
INCLUDING CONTENTS ;

* including contents를 안썼을 때, tablespace가 비워져 있어야만 drop이 된다.
including contents는 데이터가 들어 있어도 tablespace를 삭제하겠다는 뜻이다.

14. DBA_TABLESPACES : tablespace 정보를 갖고 있다.
- TABLESPACE_NAME, NEXT_EXTENT, MAX_EXTENTS, PCT_INCREASE, MIN_EXTLEN, STATUS, CONTENTS

SVRMGR> SELECT tablespace_name, initial_extent, next_extent,
2 max_extents, pct_increase, min_extlen
3 FROM dba_tablespaces ;

15. DBA_DATA_FILES : file에 관한 정보를 갖고 있다.
- FILE_NAME, TABLESPACE_NAME, BYTES, AUTOEXTENSIBLE, MAXBYTES, INCREMENT_BY

SVRMGR> SELeCT file_name, tablespace_name, bytes,
2 autextensible, maxbytes, increment_by
3 FROM dba_data_files ;

16. Contol File 정보
- V$DATAFILE : ts 
Posted by 1010