처음에 DB를 구축할때 많은 막막함이 있었는데 이제 간단한 DB구축정도는 할 수 있게 되었다.
여기서만 DB를 구축하고 사용했기 때문에 이 방법이 보편화된 방법인지는 모르겠으나.
1. 테이블스페이스 생성
1) 테이블 스페이스를 생성하기에 전에 테이블스페이스의 물리적인 파일을 저장하기 위한 폴더를 만든다.
- 예시에서는 d:\mydb 를 생성함
2) system 계정으로 로그인
- sqlplus "/as sysdba"
3) 생성
3.1) 데이터를 담기 위한 테이블 스페이스 생성
line01 SQL> create tablespace mydata datafile
line02 SQL> 'd:\mydb\my_data01.ora' size 5000m autoextend on;
※ 간단한 설명
- line01의 create tablespace mydata datafile 구문에서 my_data는 테이블스페이스 명이다.
- line02에서의 autoextend on 을 해주면 테이블스페이스의 공간이 자동으로 늘어난다.
* 위에서는 데이터파일을 5G로 만들었는데 DB데이터가 5G가 넘어갈경우 자동으로 테이블 스페이스 공간을 늘려준다.
* autoextend on 옵션을 주지 않았고 DB데이터가 5G가 넘어가면 데이터가 쌓이지 않는일이 발생한다.
- 테이블스페이스 공간이 꽉 차서 DB가 멈추면 차라리 원인을 찾기가 쉬운데 멈추지 않고 데이터만 쌓이지 않으니 데이터를 넣어주는 어플을 의심하게된다. 이제는 쌓이지 않을경우 테이블스페이스 공간을 먼저 확인한다.
- 테이블스페이스의 물리적인 한개의 파일은 최대 30기가 정도까지 자동으로 늘어난다고 보면 된다.(30G인지 34G이지 헷갈림)
- 나는 보통 테이블스페이스를 만들 때 데이터파일이 생성되는 하드디스크의 공간을 확인하고 데이터파일을 생성한다.
* 하드디스크 공간이 200G라고 한다면 5G짜리의 데이터파일을 5개만든다. 5개이니깐 1개당 최대 30G까지 늘어나니깐 150G가 될때까지 테이블스페이스 공간에 대한 걱정을 하지 않아도 된다.
* 한번에 여러개의 데이터파일을 만드는 방법은 다음과 같다.
SQL> create tablespace my_data datafile
SQL> 'd:\mydb\my_data01.ora' size 5000m autoextend on,
SQL> 'd:\mydb\my_data02.ora' size 5000m autoextend on,
SQL> 'd:\mydb\my_data03.ora' size 5000m autoextend on,
SQL> 'd:\mydb\my_data04.ora' size 5000m autoextend on,
SQL> 'd:\mydb\my_data05.ora' size 5000m autoextend on;
- 이렇게 하면 5G짜리의 데이터파일이 5개가 생성되고 모든 데이터파일이 30G가 될때까지 신경안쓰고 지낼 수 있다.
4) INDEX를 위한 테이블 스페이스 생성
- 보통 조그만한 사이즈의 데이터베이스를 만들때는 INDEX테이블 스페이스를 따로 만들지 않는다고 한다.
SQL> create tablespace my_inx
SQL> datafile 'd:\mydb\my_inx.ora' size 1G reuse;
* 저기에서 reuse는 무엇인지 잘 모르겠다. 누가 알려줬는데 까먹었음.
5) TEMPORARY 테이블 스페이스 생성
- TEMPORARY 테이블 스페이스는 여러가지 일을한다. 램같은 역할이라고 해야하나?
SQL> create temporary tablespace my_temp
SQL> tempfile 'd:\mydb\my_temp.ora' size 1G autoextend on;
- temporary tablespace는 정말 중요한 것 같다. DB작업에 따라 temporary tablespace도 증가하게 되는데 그렇기 때문에 autoextend on 옵션을 꼭 줘야 한다.
- 예전에 큰 덤프파일을 IMPORT할때 temporary tablespace 공간을 조금만 주고 autoextend on 옵션을 주지 않아서 처음부터 다시 작업하는 일도 있었다.
2. 사용자 생성
- 이제 데이터를 넣을 수 있는 공간을 마련했다. 그럼 그 공간을 사용할 사용자를 만들어야 한다.
line01 SQL> create user myuser identified by password
line02 SQL> default tablespace dmb_data
line03 SQL> temporary tablespace my_temp;
※ 간단한 설명
- line01 에서 user 다음에 있는 myuser 부분에는 본인이 원하는 사용자의 ID를 넣으면 된다. 그리고 password 부분은 유저의 패스워드를 입력하면 된다.
- line02, line03에서는 myuser라는 사용자가 사용할 공간을 지정해주는 부분이다. 간혹 temporary tablespace를 만들어두고 깜빡하고 지정을 안하는 경우가 있다. 그럼 기본 제공하는 temporary tablespace를 사용하게 되고 나중에 큰일이날 수 있으니 꼭 지정해주자.
3. 사용자 권한 부여
- 사용자만 생성한다고해서 끝이 아니다. DB에 연결하고 하는 권한을 줘야 한다.
SQL> grant connect, resource to myuser;
SQL> grant unlimited tablespace to myuser;
이렇게 해서 데이터베이스를 구축했다.
이제 본인이 설계한 테이블을 생성하고 뷰를 생성하고 데이터를 넣고 쓰면 된다.
'→ 데이터베이스 > ORACLE 관리' 카테고리의 다른 글
오라클 자료형별 데이터 사이즈 (0) | 2017.10.27 |
---|---|
[ORACLE] 사용자 패스워드 만료 관련 (0) | 2017.02.10 |
[ORACLE] 데이터만 IMPORT하기 (0) | 2016.11.11 |
[ORACLE] Database 세션 확인하기(누가 접속했나~ 확인하기) (0) | 2015.02.01 |
[ORALCE] 사용자(User) 정보 보기 (1) | 2013.01.08 |