본문 바로가기
→ 데이터베이스/ORACLE 관리

[ORACLE] 데이터베이스 구축하기

by 벅스쭌 2016. 11. 11.
반응형

처음에 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;

 

 

이렇게 해서 데이터베이스를 구축했다.

이제 본인이 설계한 테이블을 생성하고 뷰를 생성하고 데이터를 넣고 쓰면 된다.

반응형