본문 바로가기
DB

[ORACLE] SID, ServiceName 개념과 차이점

by 정권이 내 2024. 11. 6.

Oracle SID와 Service Name의 차이점: 고가용성과 부하 분산을 위한 선택

Oracle 데이터베이스를 운영하면서 자주 접하게 되는 두 가지 중요한 개념은 SID(System Identifier)와 Service Name입니다.

이 두 개념은 Oracle 연결을 설정할 때 중요한 역할을 하며, 각기 다른 용도와 목적을 가지고 있습니다. 이 글에서는 SID와 Service Name의 차이점과 사용 사례를 다루고, Oracle 데이터베이스 연결 시 어떤 방식이 더 적합한지 알아보겠습니다.

 

1. Oracle SID란 무엇인가?

SID는 Oracle 데이터베이스 인스턴스를 고유하게 식별하는 이름입니다. 하나의 Oracle 서버에서 여러 개의 데이터베이스 인스턴스를 실행할 수 있으며, 각 인스턴스는 SID로 구별됩니다. 이 방식은 단일 인스턴스에 연결할 때 유용합니다.

 

SID의 주요 특징

  • 단일 인스턴스에 연결하기 위한 고유 식별자입니다.
  • 주로 단일 서버 환경에서 사용됩니다.
  • 고가용성이나 부하 분산을 제공하지 않습니다.

 

예시 URL:

jdbc:oracle:thin:@<host>:<port>:<SID>

SID는 특정 인스턴스에 대한 직접적인 연결을 제공합니다. 하지만 여러 인스턴스가 연동되는 환경에서는 SID가 한계가 있을 수 있습니다.

 

2. Oracle Service Name이란 무엇인가?

Service Name은 여러 Oracle 인스턴스를 하나의 서비스로 묶은 이름입니다. Service Name을 사용하면 고가용성과 부하 분산을 지원하는 환경에서 유리합니다. 이를 통해 클라이언트가 연결을 요청할 때, 시스템은 자동으로 적절한 인스턴스에 연결을 시도합니다.

 

Service Name의 주요 특징

  • 고가용성 및 부하 분산을 지원합니다.
  • Oracle RAC(Real Application Clusters) 환경에서 필수적입니다.
  • 여러 인스턴스를 묶어 하나의 서비스로 제공합니다.

 

예시 URL:

jdbc:oracle:thin:@//<host>:<port>/<serviceName>

Service Name은 특히 고가용성을 요구하는 환경이나 Oracle RAC와 같은 클러스터링된 데이터베이스 환경에서 중요한 역할을 합니다.

 

3. SID와 Service Name의 차이점

 

SID와 Service Name 비교 표

항목SIDService Name
정의Oracle 인스턴스의 고유 식별자여러 인스턴스를 포함하는 서비스 이름
대상단일 인스턴스에 대한 연결여러 인스턴스를 묶어 하나의 서비스로 연결
용도특정 인스턴스에 연결하는 데 사용고가용성 및 부하 분산을 지원하는 연결 방식
고가용성지원하지 않음지원, 특히 Oracle RAC 환경에서 유리
예시 URLjdbc:oracle:thin:@::jdbc:oracle:thin:@//:/
RAC 지원지원하지 않음지원, 로드 밸런싱 및 장애 복구 가능

 

4. Oracle Service Name을 사용하는 이유

 

1. 고가용성 (High Availability)

Service Name을 사용하면 여러 데이터베이스 인스턴스가 동일한 서비스를 제공하므로, 하나의 인스턴스에 장애가 발생해도 다른 인스턴스가 자동으로 요청을 처리합니다. 이 기능은 시스템의 가용성을 높이며, Oracle RAC 환경에서 필수적입니다.

 

2. 부하 분산 (Load Balancing)

Service Name을 사용하면 여러 인스턴스가 하나의 서비스 이름을 공유하여, 클라이언트 요청을 여러 인스턴스에 효율적으로 분배할 수 있습니다. 이를 통해 서버의 부하를 분산하고, 성능을 최적화할 수 있습니다.

 

3. 장애 복구 (Failover)

Service Name은 장애가 발생한 인스턴스를 자동으로 감지하고, 클라이언트가 다른 인스턴스로 연결될 수 있도록 해줍니다. 이로써 장애 복구가 원활하게 이루어져 시스템의 안정성이 보장됩니다.

 

5. SID와 Service Name의 사용 사례

  • 단일 인스턴스 환경에서는 SID를 사용하는 것이 간단하고 적합합니다. 하지만 고가용성과 부하 분산이 필요한 환경에서는 Service Name을 사용하는 것이 더 적합합니다.
  • Oracle RAC와 같은 클러스터링된 환경에서는 반드시 Service Name을 사용해야 하며, 이를 통해 여러 인스턴스에 효율적으로 접근할 수 있습니다.

 

결론

SID는 주로 단일 인스턴스 환경에서 사용되는 고유 식별자이며, 과거에는 많은 환경에서 사용되었습니다. 그러나 Service Name은 고가용성, 부하 분산, 장애 복구가 필요한 복잡한 환경에서 필수적으로 사용됩니다.

특히, Oracle RAC 환경에서는 Service Name을 통한 연결 방식이 확장성과 안정성을 제공하는 데 유리합니다.

따라서, 현대적인 Oracle 데이터베이스 환경에서는 Service Name을 사용하는 것이 확장성과 안정성을 고려할 때 더욱 유리하며, 고가용성과 부하 분산을 필요한 환경에서 Service Name을 통한 연결 방식을 채택하는 것이 권장됩니다.

반응형

'DB' 카테고리의 다른 글

[DB] ORACLE, MYSQL 날짜, 시간 관련 함수  (0) 2023.10.10

댓글