02-01 10:49
Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
관리 메뉴

기록을 합시다.

[Oracle] 데이터베이스 생성 및 계정 생성 본문

공부/DB

[Oracle] 데이터베이스 생성 및 계정 생성

울집고양이세마리 2023. 4. 25. 04:04

이전 게시물

[Oracle] Oracle 21C XE Windows11에서 설치하기 + SQL Developer

ORACLE DATABASE 기본 생성 구문 

CREATE DATABASE(데이터 베이스 생성)

CREATE DATABASE database_name

CHARACTER SET (텍스트 인코딩 설정)

CREATE DATABASE database_name
CHARACTER SET AL32UTF8;
//참고로 AL32UTF8은 UTF-8보다 확장된 문자들인 emoji, 한자 등을 저장해줄 수 있다.

DATAFILE SIZE (파일의 위치 및 크기 설정)

 

DATAFILE 및 SIZE 옵션은 데이터 파일의 위치와 크기를 적절하게 설정하여, 데이터베이스의 성능을 최적화 할 수가 있으며, 데이터 파일 백업을 통해 데이터 손실을 예방하기 위해 사용된다. 아래의 쿼리에서는 SIZE를 200mb로 설정해주었다. 

CREATE DATABASE database_name
CHARACTER SET AL32UTF8
DATAFILE '/u01/app/oracle/oradata/mydb/system01.dbf' SIZE 200M;

AUTOEXTEND ON 

AUTOEXTEND ON은 설정한 데이터 파일이 자동으로 확장하도록 설정하는 옵션이며, MAXSIZE 옵션을 통해 최대 확장 용량을 정해줄 수 있다. 아래의 쿼리에서는 200mb짜리 파일을 100mb씩 자동 확장 해주며, 500mb까지 확장할 수 있다.

CREATE DATABASE database_name
CHARACTER SET AL32UTF8
DATAFILE '/u01/app/oracle/oradata/mydb/system01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 100MB MAXSIZE 500M;

DEFAULT STORAGE

DEFAULT STORAGE는 테이블이나 인덱스를 생성할 때, 데이터 파일에 저장될 때의 저장 옵션을 설정할 수 있다. 

DEFAULT STORAGE는 다음과 같은 하위 옵션들로 구성된다. 

  • INITIAL : 테이블/인덱스가 생성될 때, 처음 할당 되는 저장소 공간의 크기 설정한다.
  • NEXT : 테이블/인덱스의 저장 공간 확장을 할 때, 저장소 공간의 크기를 설정한다. 
  • MINEXTENTS : 테이블/인덱스가 사용할 최소 저장소 공간 개수를 설정한다.
  • MAXEXTENTS : 테이블/인덱스가 사용할 최대 저장소 공간 개수를 설정한다.
  • PCTINCREASE : 테이블/인덱스가 저장소 공간을 확장할 때, 증가하는 비율을 설정한다.
  • FREELISTS : 테이블/인덱스가 사용 공간 관리를 위해 공간 관리자의 개수를 설정한다. 
CREATE DATABASE database_name
CHARACTER SET AL32UTF8
DATAFILE '/u01/app/oracle/oradata/mydb/system01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 100MB MAXSIZE 500M
DEFAULT STORAGE(INITIAL 128K NEXT 64K PCTINCREASE 10;

위의 쿼리는 데이터베이스 저장소 공간의 크기를 128KB로 설정하고, 저장소 공간이 부족하여 저장소 공간을 추가로 저장소를 할당 될 때의 할당 저장소의 크기는 64KB이다. 또한, 저장소 공간을 추가로 할당할 때, 현재 저장소 공간 크기에 비례하여 증가하는 비율을 10퍼센트로 지정하였다. 즉, 처음에는 128KB 를 다 사용하면 128KB+64KB가 저장소의 크기고, 128KB+68KB를 다 사용하게 되면, (128KB+68KB) + (128KB+68KB)*0.01만큼의 저장소 크기를 할당받게 된다. 

 

 

ORACLE DATABASE USER 생성 구문

USER 생성하기 전, 설정해야 할 것

ALTER SESSION SET "_ORACLE_SCRIPT" = true;

위의 구문은 CREATE USER 문 실행시의 오류를 방지하고, 새로운 유저를 정상적으로 생성할 수 있게 해준다. 일반적으로 Oracle 데이터베이스를 설치하고 새로운 유저를 생성할 때 사용한다. 

USER 생성 기본 구문

CREATE USER username
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace_name
TEMPORARY TABLESPACE temp_tablespace_name
  • CREATE USER은 생성할 유저의 이름을 설정해준다.
  • IDENTIFIED BY는 유저가 사용할 비밀번호를 설정해준다. 
  • DEFAULT TABLESPACE는 유저의 기본 테이블 스페이스를 설정해준다.
  • TEMPORARY TABLESPACE는 유저의 임시 테이블 스페이스를 설정해준다. 

참고로, 테이블 스페이스와 테이블은 다른 개념이다. 

테이블은 데이터를 저장하기 위한 논리적인 단위이며, 테이블 스페이스는 데이터베이스의 데이터 파일 및 관련 파일들을 포함하여 저장하는 물리적인 공간이다. 


 직접 쿼리문 작성해서 DATABASE 및 USER 생성해보기

DATABASE 생성하기

CREATE tablespace springdev
DATAFILE 'c:\oracle\data\springdev.dbf' size 500m
autoextend on next 100m maxsize unlimited
default storage(initial 128k next 64k pctincrease 10);

database 이름으 springdev이고, c:\oracle\data\springdev.dbf 파일에 size 500mb를 설정해주었다. 또한, 500mb를 다 사용하게 되면, 끊임없이 100mb씩 저장 공간을 추가 할당해준다. 초기 저장소 공간은 128KB로 시작하고, 그 다음에는 64kb를  추가 할당하다가, 10퍼센트씩 추가해준다. 

DATABASE 생성 오류

oracle 폴더 아래에 data 폴더가 있어야만 오류가 발생하지 않는다.

폴더를 만든 후에 다시 명령문 실행(Ctrl+Enter)를 해보면, 잘 실행이 된다. 

유저 생성 구문 

alter session set "_ORACLE_SCRIPT" = true;
create user webmaster identified by "12345"
default tablespace springdev
temporary tablespace temp;

위에 작성했던 내용들과 동일하고, 쉬워서 설명은 생략한다. 

유저 권한 설정 구문

grant all privileges on springdev to webmaster;

유저에게 table의 모든 권한을 부여하기 위해 grant all privileges on 구문을 이용하였다.

이건 MySQL과 mariaDB와 방식이 비슷하여, 설명은 생략하겠다.

 

마지막으로, 접속이 잘 되는지만 확인하면 끝!

 

CREATE DATABASE문이 생각보다 복잡해서 당황했다.

mariaDB와 MySQL은 참 선녀구나.. 

Comments