본문 바로가기
DB

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

by 정권이 내 2024. 11. 6.

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

 

SID & ServiceName

Oracle 데이터베이스를 운영하면서 자주 접하게 되는 개념 중 하나가 바로 SIDService Name입니다. 이 두 용어는 비슷해 보일 수 있지만, 사실상 중요한 차이점이 존재하며, 각각의 역할과 사용 방식은 Oracle 데이터베이스 환경에서 매우 중요한 부분을 차지합니다.

 

SID (System Identifier)

  • SID는 Oracle 인스턴스를 식별하는 고유한 이름입니다. 하나의 Oracle 데이터베이스 서버에서 여러 개의 데이터베이스 인스턴스를 구동할 수 있으며, 각 인스턴스는 SID로 구분됩니다.
  • SID는 한 서버에서 여러 데이터베이스 인스턴스를 구동할 때 유용하지만, 실제 서비스가 제공되는 동안에는 다양한 클라이언트가 하나의 데이터베이스 인스턴스에 연결하는 경우에 비해 사용에 제한이 있을 수 있습니다.
jdbc:oracle:thin:@<host>:<port>:<SID>

 

Service Name

  • Service Name은 하나 이상의 Oracle 인스턴스를 서비스로 묶어 놓은 이름입니다. 이는 데이터베이스의 클라이언트 접속을 관리하는 데 사용되며, 하나의 서비스 이름은 여러 개의 인스턴스를 포함할 수 있습니다.
  • 클라이언트가 Oracle 데이터베이스에 연결할 때, 서비스 이름을 사용하여 연결합니다. 이는 로드 밸런싱 및 장애 복구를 제공하는데 유용합니다. 서비스 이름을 사용하면 여러 인스턴스가 동일한 서비스 이름으로 묶여 있어, 클라이언트가 서비스를 요청할 때 시스템이 자동으로 적절한 인스턴스를 선택하도록 할 수 있습니다.
jdbc:oracle:thin:@//<host>:<port>/<serviceName>

 

SID vs Service Name

항목 SID Service Name
정의 데이터베이스 인스턴스의 고유 식별자 데이터베이스 서비스 이름
대상 하나의 데이터베이스 인스턴스를 고유하게 식별 여러 인스턴스를 포함하는 데이터베이스 서비스
용도 단일 인스턴스에 연결하기 위한 값 고가용성 및 부하 분산을 지원하는 연결 방식
고가용성 지원하지 않음 지원, 특히 Oracle RAC 환경에서 유리
예시 URL jdbc:oracle:thin:@<host>:<port>:<SID> jdbc:oracle:thin:@//<host>:<port>/<serviceName>
RAC 환경 지원 지원하지 않음 지원, 여러 인스턴스를 통합하여 로드 밸런싱 가능

 

SID와 Service Name의 차이점

Oracle 데이터베이스에서 SID와 Service Name은 서로 다릅니다. 간단히 말해, SID는 하나의 인스턴스를 식별하는 값이고, Service Name은 그 인스턴스들이 제공하는 서비스를 식별하는 값입니다.

이 둘의 차이를 알면, 데이터베이스 연결을 어떻게 설정할지, 어떤 방식이 적합할지 이해할 수 있습니다.

  • SID는 주로 단일 인스턴스 데이터베이스에서 사용되며, 특정 인스턴스에만 연결합니다.
  • Service Name은 여러 인스턴스를 묶어서 하나의 서비스로 다룰 수 있기 때문에, 고가용성이나 부하 분산이 필요한 환경에서 사용됩니다.

 

왜 ServiceName을 사용하는가

  • 고가용성: Service Name을 사용하면 여러 데이터베이스 인스턴스가 동일한 서비스를 제공하기 때문에, 하나의 인스턴스에 문제가 발생해도 다른 인스턴스가 자동으로 연결을 처리할 수 있습니다.
  • 부하 분산: 여러 인스턴스를 사용하여 요청을 분배할 수 있어, 시스템의 부하를 효율적으로 분산시킬 수 있습니다.
  • RAC 환경: Service Name은 Oracle RAC(Real Application Clusters) 환경에서 필수적입니다. 여러 인스턴스가 동일한 서비스 이름을 공유하며, 이를 통해 클러스터링된 데이터베이스 인스턴스에 유연하게 접근할 수 있습니다.

 

결론

  • SID는 단일 데이터베이스 인스턴스를 구별하는 데 사용되며, 과거에는 대부분의 환경에서 사용되었습니다.
  • Service Name은 복잡한 환경, 특히 고가용성, 부하 분산 및 RAC 환경에서 더욱 유용하게 사용됩니다.

따라서 현대적인 Oracle 환경에서는 Service Name을 사용하는 것이 더 일반적이며, 특히 고가용성 및 클러스터 환경에서 필수적으로 사용됩니다. 서비스 이름을 통한 연결 방식은 보다 확장 가능하고, 안정적인 데이터베이스 환경을 구성하는 데 도움이 됩니다.

반응형

'DB' 카테고리의 다른 글

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

댓글