create tablespace
create tablespace $DBName datafiles 'Path/datafile.dbf' size 10 M
- 주의
dbf 파일을 생성하기전에 해당 디렉토리는 직접 생성해줘야 함
- Table Space (논리적)
- system 또는 sys 계정에 연결되어 있어야 만들수 있다 => DBA계정(관리자계정)
- data file이 저장될수 있는 공간이다 (물리적)
블록 (db의 최소단위)
익스텐트 (공간할당의 기본개념)
세그먼트 (TS에 저장되는 Object 단위)
데이터 파일 (물리적공간)
테이블스페이스 (논리적공간)
- MS-SQL에서의 DataBase같은 개념이다
- 계정단위이다
- table space 만들기 (확보)
1. D폴더에 'oraDB17'폴더를 생성한다
2. sqlplus -> /as sysdba 로 접속
3. SQL>show user로 현재 관리자를 확인(sys인지 확인)
4-1. Create tablespace [테이블명] Datafile '[경로\*.dbf]' size [숫자]m;
예)SQL>create tablespace ts01 datafile 'd:\oraDB17\ts01Df01.dbf' size 2m;
4-2. insa테이블스페이스의 insa.dbf로 oraDB17폴더에 초기 사이즈 500k 자동 500씩 증가 최고 10M 크기까지로 생성
SQL> create tablespace insa
datafile 'd:\oraDB17\insa.dbf' size 500k
autoextend on next 500k maxsize 10M
- table space 수정
1. Alter tablespace [테이블명] Add Datafile '[경로\*.dbf]' size [숫자]m;
=>datafile을 하나 더 만든다
예)SQL>alter tablespace ts01 add datafile 'd:\oraDB17\ts01Df02.dbf' size 2m;
- table space 삭제
1. drop tablespace [테이블스페이스명]
예)SQL>drop tablespace ts01;
=> 나머지 데이터파일들은 물리적으로 os상에서 지워야한다
create tablespace : 오라클 데이터베이스내에서 생성되고 처리될 테이블들의 레코들들이 실제로 존재할 영역을 디스크 상에 물리적으로 생성시키는 명령어이다.
tablespace_name : 생성될 테이블 스페이스의 이름이다.
datafile : 데이터베이스내에서 사용되는 레코드들이 실제로 디스크상에 파일로 존재하게 되는데, 이때의 파일의 위치와 이름을 지정하는 곳이다.
data_file : 데이터베이스내에서 사용되는 레코드들이 실제로 디스크상에 파일로 존재하게 되는데, 이때의 파일의 위치와 이름을 지정하는 곳이다.
data_full_file_name : 레코드들이 실제로 존재할 디렉토리(절대패스사용)와 파일의 이름이다.
size : 테이블 스페이스내의 레코드들을 저장할 디스크상의 파일의 최대 코기를 지정해 줄 수 있다.
datafilesize : 레코드들을 저장할 파일의 크기를 k(킬로바이트), M(메가바이트)의 단위를 사용하여 나타낼 수 있다.
initial : 테이블 생성시 해당 테이블에 할당되어 있는 영역의 크기를 지정해 줄 수 있다.
datafilesize_min : 테이블생성시 사용할 수 있는 공간의 크기로, 예를 들어 10m로 지정되면 생성된 임의의 테이블에 입력되는 데이터들을 10m의 영역에 저장한다는 의미이다.
next : 처음에 저장될 데이터의 영역인 initial만큼을 다 쓰고 더 이상의 공간이 없을 때, 사용할 수 있는 영역을 할당 시켜 준다.
datafilesize_max : 추가로 테이블에 데이터가 입력될 때, 사용할 수 있는 여역의 크기이다. 예를 들어 5M를 할당하여 두면, 임의의 테이블이 사용한 영역이 10M (위의 initial영역의 크기이다)를 넘을 경우, 주가로 5M만큼의 영역을 더 사용할 수 있게 된다. 따라서 총 사용공간은 15M가 된다.
minextents minuum : next 영역으로 할당할 수 있는 최소의 갯수를지정해 줄 수 있다.
maxextents maxnum : next 영역으로 할당할 수 있는 최대의 갯수를 지정해 줄 수 있다.
picincrease num : next를 지정하여 추가로 사용할 영역을 확장하고자 할 때, 늘어날 영역의 크기를 '%'로 나타낸 값이다. pct는 '%'를 의미한다. 예를 들어 picincrease 5라고 지정해 두면, next로 추가로 작업할 영역을 늘여 줄때, 처음에는 next롤 설정된 영역만을 확장시켜 주나, 두 번째부터는 next영역의 크기에서 5%만큼 더 크게 확장시켜 주게 되는 것이다.
online/offline : 테이블 스페이스 생성시 online이나 offline 중 택일하여 쓸 수 있으며, 생략하면 online을 의미한다.
online으로 설정하여 테이블 스페이스를 생성하면, 테이블스페이스를 생성함과 동시에 데이터베이스 사용자들이 사용가능하다는 것을 의미하며, 일반적으로 online으로 설정하여 사용한다.
-- 테이블스페이스 정보 조회
select * from dba_data_files;
select * from dba_tablespaces;
-- 테이블스페이스생성
create tablespace info_data
datafile '/oracle/infodata/infodata.dbf'
size 200m
default storage(
initial 80k
next 80k
minextents 1
maxextents 121
pctincrease 80
)online;
-- 테이블스페이스 online / offline
> alter tablespace tablespace_name offline;
> alter tablespace tablespace_name online;
-- 생성된 테이블 스페이스의 추가하기 공간 늘여주기
alter tablespace info_data
add datafile '/oracle/infodata/infodata/dbf'
size 100m;
-- 생성된 테이블 스페이스 크기 변경하기
alter database datafile '/oracle/infodata/infodata.dbf'
RESIZE 200M;
-- 테이블스페이스 변경하기
alter tablespace tax2110
default storage(
initial 1024k
next 2048k
minextents 1
maxextents 5
)online ;
pctincrease 기본이 50%이다
-- 테이블스페이스 자동확장 추가 (Automatic Extension)
alter tablespace tax2110
add datafile 'd:\tablespace\tax2110_03.dbf'
size 50m
autoextend on next 10m
maxsize 100m;
-> maxsize 를 지정할때 데이터 화일보다 크거나 같아야함.
-- 기존테이블스페이스에 자동확장 변경하기
alter database datafile 'd:\tablespace\tax2110_03.dbf'
autoextend on next 10m
maxsize 100m;
-- 테이블스페이스 삭제
drop tablespace tablespace_name
including contents --> 테이블스페이스의 모든 세그먼트를 삭제( 데이터가 있는 테이블스페이스는 삭제할수 없다)
cascade constraints; --> 삭제된 테이블스페이스 내의 테이블의 기본키와 유일키를 참조하는
다른 테이블스페이스의 테이블로부터 참조무결성 제약 조건을 삭제합니다.
$ rm kit.dbf -- Drop한 tablespace명의 Datafile이 kit.dbf일때.
-- 테이블 스페이스 의 물리적파일까지 삭제하기
drop tablespace test_tbs including contents and datafiles;
-- 오프라인 테이블스페이스
alter tablespace tax2110 offline;
-- 데이터베이스 사용자 아이디 생성 및 수정
create user 사용자아이디
identified by 비밀번호(새비밀번호)
-- 유저생성
create user panda
identified by panda123
default tablespace yswater_ts;
-- 생성한 유저에 권한주고 연결하기
grant resource,connect to panda;
grant dba to panda;
강신윤 홈피에서 퍼왔어요.