본문 바로가기
카테고리 없음

데이터 베이스_ 오라클 [테이블 스페이스] 생성,연결,삭제,사이징

by Super Santj 2019. 7. 5.

오라클은 Tablespace로 하드 디스크(C:\)의 개념이다. <---> MySQL (데이터 베이스)(폴더),저장(테이블)(파일)

즉 오라클은 실직적으로 데이터가 저장된 영역 => 계정별로 무조건 users 테이블스페이스에 저장(폴더처럼) 계정관리 -> 테이블 생성

종류로는

- 주가 되는 테이블 스페이스 -> 경우에 따라서는 확장이 가능

- 부가 되는 테이블 스페이스 -> 임시 테이블 스페이스 (ex 보조 배터리)

예제 _

관리자로 우선 로그인을 하여 테이블 스페이스를 생성 하고 => c:\webtest\2.db 에 파일로 저장(물리적) 논리적인 이름. dbf 용량

형식 _

create tablespace 테이블 스페이스명(논리적인 이름) datafile '경로포함해서 저장할 파일명.dbf' size 만들고 싶은 용량 값m;

실행 _

SQL> create tablespace oradata2 datafile 'c:\webtest\2.db\oradata2.dbf' size 5m;

테이블스페이스가 생성되었습니다.

그리고 조회를 해보자 (여기서 명령어중 v$로 시작하는것은 관리자만 조회가 가능하다.)

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
         7 ORADATA2                       YES NO  YES  ==> 방금 새로 만든 테이블. 앞으로 작업한 테이블은 여기에 저장

7 개의 행이 선택되었습니다.

그리고

문제 _

계정생성 -> 테이블생성 -> 어떻게 테이블 스페이스와 연결 하는가?는 바로 아래의 문제에서 진행해본다면,

우선 테이블을 생성하면서 특정 테이블스페이스를 연결하는 형식을 참고하고,

형식 _

create table 테이블명 tablespace 연결시킬테이블스페이스명; (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;

사용자가 생성되었습니다.

그리고 생성된 계정에 로그인 권한과, 기타 resource권한을 부여 하고 작성까지 하게되면 해당 테이블 스페이스에 데이터가 들어가있는 것을 확인할수가 있다.

SQL> grant connect,resource to kim2;

권한이 부여되었습니다.

 

우리는 그다음 이러한 가정을 볼수가 있다. 만약 기존의 테이블 스페이스의 용량 계산을 잘못 하였다면?

형식 _

alter database datafile '경로포함해서 변경할 파일명.dbf' autoextend on next 증가치m maxsize 최대 용량 크기m

문제 _

만약 oradata2.dbf 가 5메가 바이트가 차면 5메가를 추가로 증가시키고 증가값은 최대 100메가바이트 까지 설정하도록 해보자.

풀이 _

우선 관리자계정으로 로그인을 한후, 양식에 맞게 해당 구문을 작성한다.

SQL> conn sys/sys12345 as sysdba
연결되었습니다.
SQL> alter database datafile 'c:\webtest\2.db\oradata2.dbf'
  2  autoextend on next 5m maxsize 100m;

데이타베이스가 변경되었습니다.

화면으로는 보이지 않지만, 용량이늘어난다면 해당 구문에 맞춰 용량 사이즈는 자동적으로 올라가게 되어있다.

oradata2 --> oradata2.dbf +~.dbf +~+ 여기서(oradata2.dbf의 용량이 100m)

즉 새로운 파일을 계속해서 추가시키는 방법(확장)

형식 _

alter tablespace 변경시킬 ts명 add datafile '경로포함해서 새로운 파일명.dbf' size 파일크기m

실행 결과 _


SQL> alter tablespace oradata2 add datafile 'c:\webtest\shop.dbf' size 5m;

테이블스페이스가 변경되었습니다.

그리고 마지막으로 테이블 스페이스를 삭제하는 방법을 알아보자 -> 내용(테이블) 그리고 물리적인 파일을 삭제 하는 법

형식 _

drop tablespace 삭제시킬 ts명 including contents and datafiles;

아래와 같이 삭제가 되었다~!

실행 결과 _

SQL> drop tablespace oradata2 including contents and datafiles;

테이블스페이스가 삭제되었습니다.

댓글