Problem Summary
---------------------------------------------------
오라클 12C 내부 솔루션 모니터링 관련 오류 문의
Problem Description
---------------------------------------------------
내부툴로 12c 오라클 모니터링이 처음이라 이슈가 있습니다.
모니터링을 추가하려고 하면 아래와 같이 메세지가 발생하며 discovery에 실패합니다.
ORA-28040: No matching authentication protocol exception
위 메세지 확인 결과 파라미터를 수정하라고 하는데, 다음과 같이 궁금한 점 정리하였습니다.
Q1. SQLNET 파라미터값
sqlnet.ora 파일의 SQLNET.ALLOWED_LOGON_VERSION 값을 수정하라고 하는데
8,9 중 어떤 값을 넣어야 할지는 잘 확신이 서지 않습니다.
현재 모니터링 서버는 ojdbc14.jar 를 사용하고 있습니다.
또한 해당값 수정 후 리스너 재시작이 필요한지요, 아니면 바로 적용되는지요?
Q2. sqlnet.ora 파일경로
단순히 $GI_HOME/network/admin/sqlnet.ora 파일을 수정하면 되는지요?
예전에 listener.ora 파일은 . oraenv 로 접속 후 명령어를 통해서 수정했던 것 같은데,
sqlnet.ora 도 그렇게 수정해야 하는지요? 아니면 바로 파일을 직접 수정해도 변경이 되는지요?
-------------------------------------------------------------------------------------
[답변]
|
+ SQLNET 파라미터값, $GI_HOME/network/admin/sqlnet.ora 파일을 수정하는 것이며, 다음과 같습니다.
SQLNET.ALLOWED_LOGON_VERSION parameter 를 통해 Oracle Database 에 연결할때 사용되는 minimum authentication protocol 을 설정할 수 있습니다.
예를 들어, Parameter 값을 8로 설정하면 Oracle8i authentication protocol 를 사용하기 때문에 Client 8 버전 혹은 그 이상 버전에서 해당 Database 에 접속할 수 있습니다. 반면 12로 설정하면 12C password version 을 사용하기 때문에 Database 12c client 만 연결할 수 있습니다.
그러나 SQLNET.ALLOWED_LOGON_VERSION parameter 는 12c 버전에서 더 이상 사용되지 않으며(deprecated) 아래 2개 parameter 로 대체 되었습니다.
SQLNET.ALLOWED_LOGON_VERSION_SERVER SQLNET.ALLOWED_LOGON_VERSION_CLIENT
++ https://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF2010 ++ https://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF2016
위의 언급하여 드린 내용에 따라 Oracle 8 version 과의 호환성을 유지하기 위해 8 로 설정하실 예정이면 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8 로 설정하시고 monitoring 해보시기 바랍니다.
02). 해당 SQLNET.ORA 를 직접 수정하여도 무방함. |
01). 다시 확인하여 보니, Database side 의 sqlnet.ora 에
QLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
로 변경하시고, database 의 listener 를 restart 하시기 바랍니다.
02) 또는 Monitoring 쪽에 ojdbc14.jar 를 upgrade 하실 수 있다면, JDBC is replaced with 11.2.0 (file ojdbc5.jar)
로 replace 하시고 test 를 하여 보시기 바랍니다.
http://ethernet0.tistory.com/168
http://ethernet0.tistory.com/155
ORA-28040: No matching authentication protocol
■ 원인 : Oracle Server와 Client 버전 차이 (Oracle 12c 부터 발생)
원인 : SQLNET.ALLOWED_LOGON_VERSION 파라미터의 디폴트 값이 11로 변경됨
■ 조치 : SQLNET.ORA 파일 수정
예전 디폴트값으로 변경
서버의 SQLNET.ORA 파일에 아래 구문 추가
SQLNET.ALLOWED_LOGON_VERSION = 9 , 8 수정
(9,8의 차이를 모르겠음)
----------------------------------------------------------------------------------------------------
http://m.blog.naver.com/javaking75/140205097321
오류 : Client Message : ORA-28040 : No matching authentication protocol
원인 : Oracle Server와 Client 버전 차이(Oracle 12c부터 발생)
조치 : SQLNET.ORA 파일 수정
서버의 SQLNET.ORA파일을 열어 아래 문장 추가
=> SQLNET.ALLOWED_LOGON_VERSION = 9
수정후 서버 재시작.
위치 : 서버 $ORACLE_HOME/network/admin/sqlnet.ora
설명 : 접속 방식을 저장해 놓은 서버 설정파일
[참고]
ojdbc14.jar를 사용했을 경우 발생.
ojdbc6.jar 또는 ojdbc7.jar로 변경하니 해결
-> 현재 딱 맥시전트의 ojdbc 버전이 ojdbc14.jar 다!! 헉!!!!
----------------------------------------------------------------------------------------------------
http://stackoverflow.com/questions/24100117/ora-28040-no-matching-authentication-protocol-exception
|
I am trying to connect my grails project to Oracle databse(Oracle 12c) in windows(8) system. However, whenever i run my application i get following exception : Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol
) Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol
According to internet suggestion i also tried editing my *.ora file but it is not working.
I added following snippet in sqlnet.ora file : SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Here i tried assigning (10,11,12) but neither of them is working.
Can anyone please help me with this ?
|
|
|
|
I deleted the ojdbc14.jar file and used ojdbc6.jar instead and it worked for me
|
answered Oct 28 '14 at 9:00
| |
|
|
|
Here is some text I found at experts-exchange:
Bug 14575666
In 12.1, the default value for the SQLNET.ALLOWED_LOGON_VERSION parameter has been updated to 11. This means that database clients using pre-11g JDBC thin drivers cannot authenticate to 12.1 database servers unless theSQLNET.ALLOWED_LOGON_VERSION parameter is set to the old default of 8.
This will cause a 10.2.0.5 Oracle RAC database creation using DBCA to fail with the ORA-28040: No matching authentication protocol error in 12.1 Oracle ASM and Oracle Grid Infrastructure environments.
Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file.
|
|
answered Oct 29 '14 at 12:06
| |
|
|