Oracle 데이터베이스 연결 - 입력해야 하는 필드는 모두 무엇입니까?
-
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