연결 문자열을 사용하여 명령 줄에서 sql plus에 연결


40

Oracle 데이터베이스가 있다고 가정 해 봅시다. 사용자 이름 = x, 암호 = y, 데이터베이스 = z가 있습니다. 또한 포트 = a, SID = b, Hostname = c를 알고 있습니다.

어떻게 올바르게 연결해야합니까? 나는 많은 옵션을 사용했다 :

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))

이 명령 행을 제출하면 일반적으로 다음과 같은 오류 메시지가 표시됩니다.

ORA-12560 : TNS : 프로토콜 어댑터 에러
ORA-12514 : TNS : 리스너는 현재 서비스를 모릅니다

미리 감사드립니다 !!


3
올바른 호스트 / 포트가 있다고 가정하면 인스턴스가 실행 중이 아니거나 리스너에 등록되지 않은 것처럼 들립니다.
Colin 't Hart

1
ezconnect 사용 :sqlplus x/y@c:a/b
Dieter DHoker

1
기록을 위해 두 번째 예제 (적어도)는 따옴표로 묶으면 나에게 효과적입니다. x @ "와 같이 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = c) (PORT = a)) (CONNECT_DATA = (SID = b)))"
rogerdpack

열기-> 서비스 창에서 시작-> oracleservicexe 그것은 나를 위해 작동합니다.
Prakash

답변:


73

시도해 보았 니

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

최신 버전의 sqlplus (버전 11 이상)는이 구문을 이해하므로 tnsnames.ora 파일이 필요하지 않습니다.


2
완벽하게 작동
Gajotres

4
어떤 버전? CentOS에서 작동하지 않습니다. 오류 : ORA-12154 : TNS : 지정된 연결 식별자를 확인할 수 없습니다.
Edmondo1984

1521 : 포트 번호 기본값
이반 차우

4
서비스 대신 SID가 있으므로 "/"대신 ":"을 사용하면 나를 위해 일했습니다. sqlplus username / password @ host : port : sid
Pratik Goenka

1
함께 제공되는 sqlplus는 구문을 v11.2.0.1.0지원하지 않습니다 host:port. 11.2.0.4.0이미 지원하는 것 같습니다 ...
gavenkoa

12

가장 간단한 방법은 tnsnames.ora 파일을 사용하여 데이터베이스에 연결하는 것입니다. 이를 편집하고 새 항목을 추가하십시오.이 파일은 일반적으로 $ ORACLE HOME \ NETWORK \ ADMIN 디렉토리에 있습니다.

myDb  =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
   )
 (CONNECT_DATA =
   (SERVICE_NAME =b)
 )
)

그런 다음 db에 연결할 수 있습니다.

sqlplus x / y @ myDb


명령 행에 비밀번호를 사용하지 않으려면 여기에있는 주석의 링크를 참조하십시오. serverfault.com/a/87038/27813
rogerdpack

7

원래 포스터로 ... 첫 번째 옵션에서 닫는 괄호를 놓쳤습니다.

잘못됨 : (문자열)

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

옳은:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'

2

sqlplus 줄이 올바르게 표시되면 다음을 확인하십시오.

  1. 데이터베이스 서버 자체에서 sysdba로 연결할 수 있습니다.
  2. 데이터베이스 서버 자체에서 연결하려는 사용자로 연결할 수 있습니다.
  3. 연결하려는 컴퓨터에서 데이터베이스 서버를 ping 할 수 있습니다.
  4. 연결하려는 컴퓨터에서 리스너를 tnsping 할 수 있습니다.

이 모든 것들을 체크 아웃하면 오타가 없는지 확인하기 위해 새로운 연결선을 만들 수 있습니다.


1

데이터베이스가 작동하지 않을 수 있습니다. 머신이 다시 시작되고 인스턴스가 자동 시작으로 설정되지 않고 수동으로 시작되지 않은 경우 서비스를 직접 시작해야 할 수 있습니다.

서비스 화면에 액세스 할 수 있으면 거기서 할 수 있습니다. 또는 명령 행에서 수행 할 수 있습니다.

명령 프롬프트로 이동하여 다음 명령을 입력하십시오.

set oracle_sid=ORCL

net start oracleserviceORCL

첫 번째는 Oracle SID를 설정합니다. 두 번째는 실제로 서비스를 시작합니다.


0

sqlplus help에서 추출하십시오.

Net Service Name 또는 Easy Connect 형식 일 수 있습니다.

  @[<net_service_name> | [//]Host[:Port]/<service_name>]

-2

원격 데스크톱 연결이 쉽고 명령 프롬프트를 연 다음 다음을 통해 연결하는 것이 쉽다는 것을 알았습니다.

sqlplus sys/YourPassword as sysdba


-3

데이터베이스 서비스를 시작해야합니다. 이를 위해 시작 메뉴-> 실행 및 시작으로 이동 한 services.msc다음 데이터베이스 서비스를 검색하여 시작하십시오. 그 후 작동을 시작합니다.


-4

이것은 Oracle 11G에서 저에게 효과적입니다.

sqlplus orcl_usr/orcl_usr_pass@host/sid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.