오라클 DB_NAME, SID, SERVICE_NAME 개념

오라클(Oracle)은 MySQL, MSSQL, PostgreSQL 등과 사용자, 스키마, DB명의 개념이 다르다.

DB_NAME, SID, SERVICE_NAME 차이

항목설명용도
DB_NAME데이터베이스의 이름init.ora 등에서 정의
ORACLE_SID오라클 인스턴스의 OS 상 이름서버 내 인스턴스 구분
SERVICE_NAME클라이언트가 접속할 때 사용하는 이름JDBC 등 외부 접속에 사용

오라클을 설치하고 별도의 설정을 하지 않으면 DB_NAME과 SID의 기본 값은 ORCL 이다. 그래서 오라클을 다룰 땐 ORCL을 많이 본다. 하지만 DB명과 SID는 다르다.

// DB_NAME 확인 방법
SELECT name FROM v$database;
// SID 확인 방법
SELECT instance_name FROM v$instance;

사용자와 스키마

오라클에서는 사용자를 생성하면 자동으로 동일한 이름의 스키마가 생성된다. 그래서 오라클에서는 create user~는 있어도 create database~가 없다.

사용자를 생성하면 자동으로 그 사용자 이름과 같은 이름의 스키마가 생성된다. 여기서 스키마란 테이블, 뷰, 인덱스 등의 객체를 포함하는 논리적 공간을 의미한다.

CREATE USER testuser IDENTIFIED BY password;

이렇게 유저를 생성하면 testuser라는 이름의 스키마가 자동으로 생성되는 것이다. 때문에 오라클에서는 사용자 단위로 관리가 이루어진다. 오라클은 스키마(사용자) 중심으로 데이터베이스를 관리한다.

댓글 남기기