데이터베이스 연결 오류 기록 ORA-12560, ORA-12518
1. 고장 확인
1. 고장 확인
1.1 서버sysdba 로그인 시도
PS C:\Users\Administrator> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 2 18 09:39:14 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS:
1.2 서버가 네트워크로 연결 시도
PS C:\Users\Administrator> sqlplus system/oracle@xxoradb
SQL*Plus: Release 11.2.0.1.0 Production on 2 18 09:34:01 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12518: TNS:
2. 원인 조사
2.1 ORA-12560 오류의 초기 원인 파악
ORA-12560 오류 공식 설명:
$ oerr ora 12560
12560, 00000, "TNS:protocol adapter error"
// *Cause: A generic protocol adapter error occurred.
// *Action: Check addresses used for proper protocol specification. Before
// reporting this error, look at the error stack and check for lower level
// transport errors. For further details, turn on tracing and reexecute the
// operation. Turn off tracing when the operation is complete.
MOS 관련 문서: Windows에서 ORA-12560이 포함된 Bequeath connection fails(문서 ID 1986438.1)의 원인:
Environmental variables are not set correctly. This is a common issue on Windows. The following commands do not show proper settings: echo %ORACLE_HOME% echo %ORACLE_SID% echo %PATH%
해결 방법:
Please do the following:
set ORACLE_HOME= <<<<< enter the Oracle Home path here set ORACLE_SID= <<<<< enter the Oracle SID name here set PATH=%PATH%; <<<<< add the path of %ORACLE_HOME%/bin <<<<< this is the directory where "sqlplus.exe"exists echo %ORACLE_HOME% <<<<< this verifies the Oracle home value echo %ORACLE_SID% <<<<< this verifies the Oracle SID value
하지만 현재 상황은 환경 변수 ORACLE_SID 설정에 문제가 없습니다.Windows 환경, ORACLE_HOME은 환경 변수에 설정할 필요가 없으며 이 ORACLE_에 대한 레지스트리HOME 환경 변수에 대한 질문은 MOS의 다른 글을 참조하십시오. How to Set or Switch Oracle Homes on Windows(Doc ID 969581.1)
업무가 현재 중단된 상태이기 때문에 감청과 데이터베이스 서비스를 재개하고 등록표 정보를 검사할 수 있지만 문제는 여전하다.여기는 실제로 커브길을 걷고 있습니다. sqlplus 명령은 정상적으로 사용되기 때문에 환경 변수 방면에서 PATH에 대해 많이 생각하지 않습니다.
2.2 ORA-12518 오류 확인 원인
ORA-12518 오류 공식 설명:
$ oerr ora 12518
12518, 00000, "TNS:listener could not hand off client connection"
// *Cause: The process of handing off a client connection to another process
// failed.
// *Action: Turn on listener tracing and re-execute the operation. Verify
// that the listener and database instance are properly configured for
// direct handoff. If problem persists, call Oracle Support.
// *Comment: The problem can be worked around by configuring dispatcher(s)
// to specifically handle the desired presentation(s), and connecting
// directly to the dispatcher, bypassing the listener.
현재 모니터링 구성 파일을 보려면 다음과 같이 하십시오.
# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1
etwork\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN-1XXXXXXXXXX)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC521))
)
)
ADR_BASE_LISTENER = D:\app\Administrator
감청 프로파일을 수정하여 정적 감청 프로파일에 추가하려면 다음과 같이 하십시오.
# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1
etwork\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = xxoradb)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = xxoradb)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN-1XXXXXXXXXX)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC521))
)
)
ADR_BASE_LISTENER = D:\app\Administrator
감청을 다시 시작한 후 테스트를 해보니 정적 감청을 넣으면 데이터베이스에 연결할 수 있고 서버의 PL/SQL 도구도 데이터베이스에 정상적으로 연결할 수 있습니다.
C:\Users\Administrator>sqlplus system/oracle@xxoradb
SQL*Plus: Release 11.2.0.1.0 Production on 2 18 10:52:24 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
이렇게 하면 클라이언트 네트워크 연결 문제를 먼저 해결했다.
2.3 ORA-12560 오류 원인 재조사
클라이언트의 연결 문제를 해결했지만 문제가 완벽하게 해결되지 않았습니다. 현재 로컬sysdba는 여전히 로그인할 수 없고 ORA-12560을 잘못 보고했기 때문입니다.C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 2 18 10:59:11 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12560: TNS:
:
이때 기계에 여러 개의 Oracle 프로그램이 설치되어 있을 수도 있다는 의심이 들었다. 즉, 이 sqlplus 명령은 어떤 클라이언트의 sqlplus 프로그램일 수도 있다. 다음은 이 상황인지 검증해 보자.
Oracle 제품 디렉토리에서 11.2.0 폴더 아래에 여러 폴더가 있는 것을 볼 수 있습니다.
D:\app\Administrator\product\11.2.0>dir
D 。
0A43-E08A
D:\app\Administrator\product\11.2.0
2016/01/26 12:26 <DIR> .
2016/01/26 12:26 <DIR> ..
2016/01/26 12:35 <DIR> client_1
2016/01/26 12:23 <DIR> dbhome_1
2016/01/26 12:25 <DIR> dbhome_2
0 0
5 200,137,936,896
여러 개의 Oracle 소프트웨어가 설치되어 있는 것으로 보입니다. 이름 규칙을 보면 클라이언트 1개, DB 2개가 있어야 합니다.
현재 시스템 레지스트리에서 ORACLE_ 보기HOME의 값은
D:\app\Administrator\product\11.2.0\dbhome_1
그러면 우리가 사용하는 qlplus 프로그램은 이 경로 아래에 있는 것입니까?시스템 환경 변수 PATH 값을 더 보려면D:\app\Administrator\product\11.2.0\client_1\BIN;D:\app\Administrator\product\11.2.0\dbhome_1\BIN;D:\app\Administrator\product\11.2.0\dbhome_1;C:\Program Files (x86)\Common Files\NetSarang;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
역시 첫 번째 검색 경로는 클라이언트입니다. 우리가 원하는 서버 프로그램 경로가 아니라 두 번째 경로입니다.이제 문제는 명백해졌다. 우리는 클라이언트의 이 경로
D:\app\Administrator\product\11.2.0\client_1\BIN;
를 삭제했다.그리고 cmd를 다시 열면 정상적인sysdba 로그인이 가능합니다C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 2 18 11:16:53 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
마지막으로 PL/SQL과 같은 도구도 다시 정상적으로 로그인할 수 있는지 확인하십시오.이로써 문제는 완벽하게 해결되었다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.