Java에서 Oracle 데이터베이스에 연결할 때 가장 중요한 요소 중 하나가 바로 JDBC 접속 방식입니다.

이 글에서는 Oracle 접속 시 사용하는 SID 방식과 Service Name 방식의 차이JDBC URL 작성법오류 없이 연결하는 팁까지 정리했습니다.

특히 실무에서 자주 마주치는 "ORA-12505" 같은 에러도 대부분 이 차이에서 발생하므로, 정확히 이해하고 설정하는 것이 중요합니다.


🔹 1. JDBC로 Oracle 연결할 때 접속 방식은 2가지

Oracle은 다음 두 가지 방식으로 접속할 수 있습니다.

접속방식설명예시 URL
SID 방식인스턴스를 직접 지정하여 접속jdbc:oracle:thin:@192.168.1.100:1521:ORCL
Service Name 방식논리적 서비스 이름으로 접속 (RAC, 클러스터 등에서 권장)jdbc:oracle:thin:@//192.168.1.100:1521/orcl.example.com


✅ 실무에서는 Service Name 방식이 더 안전하고 유연해서 대부분 사용됩니다.


🔹 2. SID와 Service Name 차이점 쉽게 이해하기

항목SID 방식Service Name 방식
연결 대상DB 인스턴스 직접 지정논리적 서비스 이름으로 연결 (리스너 사용)
사용 환경단일 인스턴스, 간단한 설정 환경다중 인스턴스, RAC, 로드 밸런싱 환경에 적합
연결 오류 발생 빈도낮음 (정확한 SID 필요)높음 (서비스 이름 오타나 리스너 미등록 시)
 

 

🔹 3. JDBC 접속 URL 예시 정리

✅ SID 방식

jdbc:oracle:thin:@<IP>:<PORT>:<SID>

 

예:

jdbc:oracle:thin:@192.168.1.100:1521:ORCL



✅ Service Name 방식 (권장)

jdbc:oracle:thin:@//<IP>:<PORT>/<SERVICE_NAME>


예:

jdbc:oracle:thin:@//192.168.1.100:1521/orcl.example.com


⚠️ @// ← 이 부분이 Service Name 방식에서 꼭 필요합니다.


🔹 4. 오라클 서버에서 SID와 Service Name 확인하는 SQL

-- SID 확인
SELECT INSTANCE_NAME FROM V$INSTANCE;

-- Service Name 확인
SELECT NAME FROM V$SERVICES;