관리자 입장에서 다루는 내용
Oracle Admin => 관리자역할, 데이터를 저장? -> 어디? 공간크기? (설계)
테이블 스페이스
-
주가 되는 테이블스페이스(~.dbf)
-
부가 되는 테이블스페이스 (=temporary tablespace)(임시)
SQL> con sys/sys12345 as sysdba
<문1> 테이블스페이스 영역 (경로지정, 파일명, 크기설정)
형식) create tablespace 테이블스페이스명(=논리적인 이름)
datafile '경로포함해서 저장할 파일명.dbf' size nm; (nm 임의의 크기)
SQL> create tablespace oradata2 datafile 'c:\webtest\2.db\oradata2.dbf' size 10m;
테이블스페이스가 생성되었습니다.
-
테이블 스페이스 목록 확인
v$tablespace => 테이블스페이스의 목록을 보고자할때 사용
== v$ or sys_
SQL> select * from v$tablespace;
SQL> select * from v$tablespace;
TS# NAME INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
0 SYSTEM YES NO YES
1 SYSAUX YES NO YES
2 UNDOTBS1 YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES
6 EXAMPLE YES NO YES // 0~6 자체 제공
7 ORADATA2 YES NO YES // 7 새로 생성
7 개의 행이 선택되었습니다.
<문2> 테이블스페이스(oradata2) -> 연결
-
계정으로 연결
-
테이블 연결
-
테이블로 연결
형식) create table 테이블명(필드명~) tablespace 연결시킬 테이블스페이스명
SQL> create table t2(c1 number) tablespace oradata2;
================= 이부분 입력 안하면 tablespace users로 저장됨
SQL> create table t2(c1 number) tablespace oradata2;
테이블이 생성되었습니다.
-
계정으로 연결
형식) create user 생성시킬 유저명 identified by 암호 default tablespace 연결시킬 테이블스페이스명
SQL> create user kim2 identified by kim2 default tablespace oradata2;
SQL> create user kim2 identified by kim2 default tablespace oradata2;
사용자가 생성되었습니다.
SQL> grant connect, resource to kim2;
SQL> grant connect, resource to kim2;
권한이 부여되었습니다.
<문3> kim2 계정으로 로그인 -> 이 계정과 연결중인 테이블스페이스 확인하는 SQL 문장?
-
user_users(계정, 계정과 연결된 테이블스페이스 정보확인)
-
user_tables(테이블과 연결된 테이블스페이스 정보확인)
SQL> conn kim2/kim2
SQL> select username, default_tablespace from user_users;
SQL> conn kim2/kim2
연결되었습니다.
SQL> select username, default_tablespace from user_users;
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
KIM2 ORADATA2
SQL> create table s1(id number);
SQL> select table_name, tablespace_name from user_tables;
SQL> create table s1(id number);
테이블이 생성되었습니다.
SQL> select table_name, tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
S1 ORADATA2
<문4> 테이블스페이스 부족 => 용량을 계산착오 => 수정
SQL -> dba_data_files 테이블
관리자로 전환
SQL> conn sys/sys12345 as sysdba
연결되었습니다.
tablespace_name(논리적인 이름)
file_name(물리적인 이름) => c:\ ~.dbf
autoextensible(용량확장 가능유무)
SQL> select tablespace_name, file_name, autoextensible from dba_data_files;
SQL> select tablespace_name, file_name, autoextensible from dba_data_files;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
AUT
---
USERS // user테이블스페이스의 실질적인 경로
C:\ORACLE\ORADATA\ORCL\USERS01.DBF
YES // 용량이 부족하면 용량확장이 가능한 상태
UNDOTBS1
C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
YES
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
AUT
---
SYSAUX
C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
YES
SYSTEM
C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
AUT
---
YES
EXAMPLE
C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF
YES
ORADATA2
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
AUT
---
C:\WEBTEST\2.DB\ORADATA2.DBF
NO // 기존에 존재하는 테이블스페이스 말고 새로 만들어서 처리
6 개의 행이 선택되었습니다.
<문5> 용량 부족 => 확장 처리
-
기존의 테이블스페이스의 용량을 확장시키는 방법
-
최대용량으로 확장 지정
형식) alter database datafile '경로포함해서 변경할 파일명.dbf' autoextend on next 증가치nm maxsize
최대용량크기m
현재 기존 크기는 10m이다. 용량 부족으로 크기를 키울때 자동으로 2m씩 증가시키고 최대 100m로 설정
SQL> alter database datafile 'c:\webtest\2.db\oradata2.dbf' autoextend on next 2m maxsize 100m;
SQL> alter database datafile 'c:\webtest\2.db\oradata2.dbf' autoextend on next 2m maxsize 100m;
데이타베이스가 변경되었습니다.
2. 새로운 테이블스페이스를 하나 더 추가
oradata2.dbf + oradate3.dbf
형식) alter tablespace 변경시킬 ts명 add datafile '경로포함 새로작성할 파일명.dbf' size nm;
oradate2.dbf => 용량변경 -> oradata3.dbf => 50m추가생성
SQL> alter tablespace oradata2 add datafile 'c:\webtest\2.db\oradata3.dbf' size 50m;
SQL> alter tablespace oradata2 add datafile 'c:\webtest\2.db\oradata3.dbf' size 50m;
테이블스페이스가 변경되었습니다.
<문6> 테이블스페이스 삭제
=> 내용(테이블) 및 파일 삭제
형식) drop tablespace 삭제시킬ts명 => oradata2
including contents and datafiles;
SQL> drop tablespace oradata2 including contents and datafiles;
SQL> drop tablespace oradata2 including contents and datafiles;
테이블스페이스가 삭제되었습니다.
'KIC > ORACLE' 카테고리의 다른 글
[Oracle] 객체권한 및 데이터복원 (0) | 2020.10.12 |
---|---|
[Oracle] 동의어, 권한 (0) | 2020.10.12 |
[Oracle] 트랜잭션 (0) | 2020.10.12 |
[Oracle] 인덱스, 시퀀스 (0) | 2020.10.12 |
[Oracle] 뷰 (0) | 2020.10.12 |