문제

왜 두 개가 필요합니까?언제 둘 중 하나를 사용해야 합니까?

도움이 되었습니까?

해결책

@DAC

간단히 말해서:sid = DB의 고유 한 이름, serviceName = 연결시 사용되는 별칭

엄밀히 말하면 사실이 아닙니다..SID = INSTANCE의 고유 이름(예: 머신에서 실행 중인 oracle 프로세스)Oracle은 "데이터베이스"를 파일로 간주합니다.

서비스 이름 = INSTANCE(또는 여러 인스턴스)에 대한 별칭입니다.이것의 주요 목적은 클러스터를 실행하는 경우 클라이언트가 "SALES.acme.com에 연결해 주세요"라고 말할 수 있고, DBA는 즉시 SALES.acme.com 요청에 사용할 수 있는 인스턴스 수를 변경할 수 있다는 것입니다. 또는 클라이언트가 설정을 변경할 필요 없이 SALES.acme.com을 완전히 다른 데이터베이스로 이동할 수도 있습니다.

다른 팁

다음을 참조하세요: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Oracle SIDS와 Oracle 서비스 이름의 차이점은 무엇입니까?하나의 구성 도구는 서비스 이름을 찾은 다음 SIDS를 찾습니다!무슨 일이야?!

Oracle Sid는 데이터베이스에 원격으로 연결할 때 제공하는 TNS 별칭 이며이 서비스 이름이 Tnsnames.ora 파일에 기록되어있는 인스턴스/데이터베이스를 고유하게 식별하는 고유 한 이름입니다. SID와 동일하며 원하는 다른 이름을 줄 수도 있습니다.

Service_name은 Oracle 8i의 새로운 기능으로 데이터베이스가 리스너에 등록 할 수 있습니다.데이터베이스가 이러한 방식으로 리스너에 등록되면 tnsnames.ora에서 service_name 매개 변수를 사용할 수 있습니다.

또한 OPS (RAC)가있는 경우 각 인스턴스마다 다른 service_name이 있습니다.

Service_names이 인스턴스가 연결하는 데이터베이스 서비스의 하나 이상의 이름을 지정합니다.동일한 데이터베이스의 다른 사용을 구별하기 위해 여러 서비스 이름을 지정할 수 있습니다.예를 들어:

Service_names = sales.acme.com, Widgetsales.acme.com

서비스 이름을 사용하여 복제 사용을 통해 서로 다른 데이터베이스에서 사용할 수있는 단일 서비스를 식별 할 수도 있습니다.

Oracle Parallel Server 환경에서는 모든 인스턴스에 대해이 매개 변수를 설정해야합니다.

간단히 말해서:SID = DB 인스턴스의 고유 이름, ServiceName = 연결 시 사용되는 별칭

나는 이것이 매우 오래된 것임을 알고 있지만 까다로운 도구, 용도, 사용자 또는 증상을 다룰 때는 다음과 같습니다.sid 및 서비스 이름 지정을 통해 다음과 같이 tnsnames 항목에 약간의 유연성을 추가할 수 있습니다.

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

나는 이것이 질문과 약간 관련이 있고 오라클 네트워킹의 명확하지 않은 특이성을 엮으려고 할 때 도움이 될 수 있기 때문에 여기에 남겨두겠다고 생각했습니다.

SID 및 서비스 이름은 무엇입니까

oracle의 문서를 살펴보십시오. https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

나중에 위 링크에 액세스할 수 없는 경우, 이 답변을 작성할 당시 위 링크를 통해 "Database Net Services Administrator's Guide"의 연결 개념 장에 있는 "데이터베이스 서비스 및 데이터베이스 인스턴스 식별" 항목으로 이동하게 됩니다. .이 가이드는 "Oracle Database Online Documentation, 10g Release 2(10.2)"의 일부로 Oracle에 의해 게시되었습니다.

언제 둘 중 하나를 사용해야 합니까?왜 두 개가 필요합니까?

RAC 환경에서 아래 매핑을 고려해보세요.

SID      SERVICE_NAME
밥1    밥
밥2    밥
밥3    밥
bob4    밥

로드 밸런싱이 구성된 경우 수신기는 4개 SID 모두에 걸쳐 작업 부하를 '밸런싱'합니다.로드 밸런싱이 구성되어 있어도 SERVICE_NAME 대신 SID를 사용하여 원할 경우 항상 bob1에 연결할 수 있습니다.

참조하시기 바랍니다, https://community.oracle.com/thread/4049517

오라클 용어집에 따르면:

SID는 Oracle 데이터베이스 인스턴스의 고유 이름입니다.---> Oracle 데이터베이스간에 전환하려면 사용자는 원하는 SID <---를 ​​지정해야합니다.SID는 Tnsnames.ora 파일의 Connect Descriptor의 Connect Data Part와 Listener.ora 파일의 네트워크 리스너의 정의에 포함됩니다.시스템 ID라고도 합니다.Oracle 서비스 이름은 "Myoracleserviceorcl"과 같은 설명이 될 수 있습니다.Windows에서는 Windows Services에서 서비스로 서비스 이름을 실행할 수 있습니다.

더 나은 접근 방식으로 TNSNAMES.ORA의 SID를 사용해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top