Oracle 데이터베이스 연결 - 입력해야 하는 필드는 모두 무엇입니까?

StackOverflow https://stackoverflow.com/questions/970253

  •  13-09-2019
  •  | 
  •  

문제

저는 SQL Server 사용에 익숙했고 이제는 Oracle에 연결해야 합니다.작성해야 하는 모든 필드가 무엇인지에 대한 완전히 명확한 설명을 얻을 수 있습니까?

구체적으로 다음이 무엇인지 이해하고 싶습니다.


호스트 이름
포트
시드
서비스 이름

네트워크 별칭
연결 식별자

내 기본적인 이해는 호스트 이름이 그것이 앉아있는 푸터라는 것입니다. 그러나 이것이 집과 다른가요?Port는 TCP 포트이고 기본값은 1521입니다. 꽤 명확해 보입니다.

SID 또는 서비스 이름만 제공하면 되나요?그리고 차이점은 무엇입니까? 왜 둘 중 하나입니까?

TNS 파일이 있는 경우 네트워크 별칭과 연결 식별자는 무엇입니까?TNS 파일을 사용하지 않는 경우 이 필드가 다른 필드와 동일합니까?

멍청해서 죄송합니다. 답변을 얻기 위한 예비 검색은 여전히 ​​매우 혼란스럽습니다.

감사해요!

도움이 되었습니까?

해결책

Home:     ORACLE_HOME, an environment variable that points to the location 
of the Oracle binaries (either location Instance runs from on server or client
runs from on client)
Hostname: name of the server
Port:     Port on which the Listener is listening for Oracle connections
SID:      **S**ervice **ID**entifier.  The name of the the Database.  This is
one of the identifiers that the Listener will expose
Service name: An alternate identifier that may be exposed by the Listener

기존의 구성된 사이트에서 이러한 세부 정보를 찾는 가장 쉬운 방법은 데이터베이스에 연결할 수 있는 클라이언트(또는 서버)의 tnsnames.ora 파일을 이용하는 것입니다.$ORACLE(밑줄)HOME/network/admin을 확인하세요.set(Windows) 또는 env(Unix) 명령을 사용하여 ORACLE(밑줄)HOME을 찾으세요.tnsnames.ora는 $TNS_ADMIN 변수가 가리키는 위치에 있을 수도 있습니다.

tnsnames.ora를 찾을 수 없고 서버에 액세스할 수 있는 경우 일반적으로 Oracle 사용자로 다음 명령을 시도하십시오.

lsnrctl status

lsnrctl은 리스너입니다.상태에는 알고 있는 SID와 서비스 이름(및 몇 가지 기타 세부 정보)이 표시됩니다.

또는 $ORACLE_HOME/network/admin 또는 환경 변수 $TNS_ADMIN이 가리키는 위치에서 Listener.ora 및 sqlnet.ora 파일을 찾으십시오.

일반적으로 호스트당 하나의 리스너가 있으므로 호스트당 하나의 포트(더 많을 수도 있지만 일반적이지는 않음)

Oracle에 연결하려면 호스트 이름/포트 조합으로 지정된 위치에서 클라이언트를 리스너로 지정하고 연결할 SID 또는 서비스도 알려주어야 합니다.

SID와 서비스 이름에 대한 DCookie의 의견은 본질적으로 정확합니다.

SID는 버전에 따라 찾을 수 있습니다.

select db_unique_name from v$database
   or
select db_name from v$database

또는 $ORACLE_HOME/dbs/init(SID NAME).ora 파일을 보거나 다음을 수행합니다.

ps -ef | grep pmon

프로세스 이름의 마지막 부분을 기록해 둡니다.ora(밑줄)pmon(밑줄)SID

다른 팁

당신이 사용하는 경우 Oracle 10g 이상, 사용 Easy Connect 통사론:

//servername/dbname

, 다음과 같이:

sqlplus scott/tiger@//servername/dbname

당신이 사용해야하는 경우 TNS, 다음은 예입니다 TNSNAMES.ORA:

XE = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

~ 안에 CONNECT_DATA, 다음 중 하나를 사용할 수 있습니다. SERVICE_NAME (리스너에 등록된 인스턴스의 식별자) 또는 SID (데이터베이스 식별자임).

몇 마디로 말하면:

  • SERVICE_NAME 인스턴스의 식별자입니다.달리기 Oracle 연결할 실행 파일
  • SID 데이터베이스의 식별자입니다.귀하의 데이터가 저장되는 파일 세트입니다.

하나의 데이터베이스를 여러 명이 사용할 수 있음 Oracle 인스턴스.

의심스러울 때 사용하세요 SERVICE_NAME.

이런 경우에는 다음과 같이 연결하세요.

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