SID, ServiceName

운영서버 세팅을하다가 운영DB 접속을 하는데 에러가 계속 나서 찾아보니 SID와 SERVICE NAME에 대한 오류였다….. SID와 SERVICE NAME 차이가 뭔지 잘 몰라서.. 정리를 해봤다.

SID


SID는 INSTANCE의 유니크한 이름.
SID = DB 하나의 인스턴스

Service Name


Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것

정리


DB 서버 한대에 인스턴스를 여러개 생성해서 PEMDM1 , PEMDM2 로 각각 생성했다.
그러면 각각 인스턴스는 PEMDM1, PEMDM2 라는 SID를 갖게 된다.

해당 서버에 각각 인스턴스를 묶어서 사용할 경우, pemdm 이라는 Service Name을 갖는다.

또한 DB서버 두대가 동일한 서버인것 처럼 활용할경우(RAC),

(RAC(Real Application Cluster)
-> DB서버의 장애를 대비해서 DB서버를 2대 이상 설치하는 것. 2대의 DB 서버의 내용은 반드시 같아야한다.
-> 하드디스크를 하나로 둔다. 
Node 1에서 작업을 하거나 Node2에서 작업을 하거나 저장은 하나의 하드디스크에 저장한다. 
그리고 2개의 DB서버 모두 Active 상태이다.

각각의 서버는 서로다른 SID를 갖게 되지만 Service Name을 동일하게 하여 같은 서버 처럼 활용할수 있다



ORACLE DB 접근 시에는 어떻게 사용할까??

SERVICE NAME 이 PEMDM 일 때는 "/"로 설정.
jdbc:oracle:thin:@127.0.0.1:8082/PEMDM

SID 가 PEMDM1, PEMDM2 일 때는 ":"로 설정
jdbc:oracle:thin:@127.0.0.1:8082:PEMDM1
jdbc:oracle:thin:@127.0.0.1:8082:PEMDM2