SID가 Oracle tnsnames.ora의 서비스 이름과 어떻게 다른지
왜 두 개가 필요하죠?하나 또는 다른 것을 사용해야 할 때?
요약: SID = DB의 고유한 이름, ServiceName = 연결할 때 사용되는 별칭
엄밀히 말하면 사실이 아니다.SID = 인스턴스의 고유한 이름(예: 시스템에서 실행 중인 Oracle 프로세스).Oracle은 "데이터베이스"를 파일로 간주합니다.
서비스 이름 = 인스턴스(또는 여러 인스턴스)에 대한 별칭입니다.하고 있는 는 " to to"라고 말할 수 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 SID와 Oracle SERVICE NAME의 차이점은 무엇입니까?하나의 구성 도구는 SERVICE NAME을 찾고 다음으로 SID를 찾습니다.무슨 일이 일어나고 있는 거죠?
Oracle SID는 인스턴스/데이터베이스를 일의로 식별하는 하나의 이름입니다.서비스명은 데이터베이스에 리모트로 접속할 때 지정한TNS 에일리어스이며, 이 서비스명은 클라이언트의 Tnsnames.ora 파일에 기록되며, SID와 같거나 원하는 다른 이름을 지정할 수도 있습니다.
SERVICE_NAME은 oracle 8i 이후 데이터베이스 자체를 리스너에 등록할 수 있는 새로운 기능입니다.이렇게 데이터베이스가 리스너에 등록되어 있는 경우 tnsnames.ora에서 SERVICE_NAME 파라미터를 사용할 수 있습니다.그렇지 않으면 tnsnames.ora에서 SID를 사용합니다.
또한 OPS(RAC)가 있는 경우 인스턴스별로 SERVICE_NAME이 다릅니다.
SERVICE_NAMES는 이 인스턴스가 연결되는 데이터베이스 서비스의 이름을 하나 이상 지정합니다.같은 데이터베이스의 다른 용도를 구별하기 위해 여러 서비스 이름을 지정할 수 있습니다.예를 들어 다음과 같습니다.
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
서비스 이름을 사용하여 복제를 통해 두 개의 다른 데이터베이스에서 사용할 수 있는 단일 서비스를 식별할 수도 있습니다.
오라클 병렬 서버 환경에서는 모든 인스턴스에 대해 이 매개 변수를 설정해야 합니다.
요약: SID = DB 인스턴스의 고유한 이름인 ServiceName = 연결할 때 사용되는 별칭
오래된 일이라는 것은 알지만 까다로운 도구, 사용법, 사용자 또는 증상을 다룰 때는 다음과 같이 sid & service names 엔트리에 약간의 유연성을 추가할 수 있습니다.
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 및 서비스 이름이란
https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm 에서 oracle 의 문서를 참조해 주세요.
향후 위의 링크에 접속할 수 없는 경우, 이 답변을 작성할 때 위의 링크는 "Database Net Services Administrator's Guide"의 Connectivity Concepts 장에 있는 "Database Service and Database Instance Identification" 토픽으로 이동합니다.이 가이드는 Oracle Database Online Documentation, 10g Release 2(10.2)의 일부로 Oracle에 의해 발행됩니다.
하나 또는 다른 것을 사용해야 할 때?왜 두 개가 필요하죠?
RAC 환경에서의 다음 매핑을 검토해 주십시오.
SERVICE_NAME SID SERVICE_NAME
(1개)
bob2 bob
( 3 )
단 bob
부하 밸런싱이 설정되어 있는 경우, 리스너는 4개의 SID 모두에 걸쳐 워크로드의 「밸런싱」을 실시합니다.로드 밸런싱이 설정되어 있는 경우에도 필요에 따라 SERVICE_NAME 대신 SID를 사용하여 항상 bob1에 접속할 수 있습니다.
https://community.oracle.com/thread/4049517 를 참조해 주세요.
Oracle Glossary에 따르면:
SID는 Oracle 데이터베이스 인스턴스의 고유 이름입니다. ---> Oracle 데이터베이스 간에 전환하려면 사용자가 원하는 SID <--->를 지정해야 합니다.SID는 TNSNAMES의 커넥터 기술자의 CONNECT DATA 부분에 포함되어 있습니다.ORA 파일 및 LISTERNER의 네트워크 리스너 정의에 포함됩니다.ORA 파일시스템 ID라고도 합니다.Oracle Service Name은 "MyOracle Service ORCL"과 같이 알기 쉬운 이름을 사용할 수 있습니다.Windows 에서는, Windows Services 로 서비스로서 실행중의 서비스명을 설정할 수 있습니다.
TNSNAMES에서는 SID를 사용해야 합니다.ORA는 더 나은 접근법이다.
언급URL : https://stackoverflow.com/questions/43866/how-sid-is-different-from-service-name-in-oracle-tnsnames-ora
'programing' 카테고리의 다른 글
| 액션 리덕스 후 리액트라우터 리다이렉트 (0) | 2023.03.21 |
|---|---|
| 주식 시세 API? (0) | 2023.03.21 |
| 여러 쿼리를 사용하는 복잡한 Wordpress 쿼리 (0) | 2023.03.21 |
| 장고를 위한 가장 좋은 AJAX 라이브러리는 무엇입니까? (0) | 2023.03.21 |
| AngularJS를 수동으로 부트스트랩하려면 어떤 방법을 사용해야 합니까? (0) | 2023.03.21 |