2014년 3월 9일 일요일

TABLESPACE 생성 및 USER 생성, 권한 부여

 TABLESPACE 생성 및 USER 생성, 권한 부여

create tablespace ts_mig_db datafile '/safedb2/SafeDB_3_0/TS_MIG/ts_mig_db.ora' SIZE 100M
 DEFAULT STORAGE(
 INITIAL 10M
 NEXT 10M
 MINEXTENTS 2
 MAXEXTENTS 50
  PCTINCREASE 50);

create temporary tablespace ts_mig_tmp tempfile '/safedb2/SafeDB_3_0/TS_MIG/ts_mig_tmp.ora' SIZE 20M;

create user safedbmig identified by (비밀번호)
 default tablespace ts_mig_db
 temporary tablespace ts_mig_tmp;

 grant connect, dba, resource to safedbmig;



Alter tablespace TS_SAFEDB_DB
add datafile '/safedb1/oracle/TBS/SAFEDB/ts_safedb_db.dbf' size 1000M
autoextend on
NEXT 10M
Maxsize 3000M ;





create tablespace ts_safedb3_db datafile '/home/kazeuhi/Database/10g_TS_SafeDB3/ts_safedb3_db.ora' SIZE 100M
 DEFAULT STORAGE(
 INITIAL 10M
 NEXT 10M
 MINEXTENTS 2
 MAXEXTENTS 50
 PCTINCREASE 50);


create temporary tablespace ts_safedb3_tmp tempfile '/home/kazeuhi/Database/10g_TS_SafeDB3/ts_safedb3_tmp.ora' SIZE 20M;

create user safedb identified by (비밀번호)
 default tablespace ts_safedb3_db
 temporary tablespace ts_safedb3_tmp;

grant connect, dba, resource to safedb;











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

댓글 없음:

댓글 쓰기