[ORACLE] SID, ServiceName 개념과 차이점
SID & ServiceName
Oracle 데이터베이스를 운영하면서 자주 접하게 되는 개념 중 하나가 바로 SID와 Service 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 |
---|
댓글