오라클은 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;
테이블스페이스가 삭제되었습니다.
댓글