이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10288|회답: 1

Oracle 데이터베이스 보고서 ORA-12547과 연동: TNS: 연락 끊김 문제

[링크 복사]
게시됨 2017. 10. 23. 오후 2:51:29 | | | |

오늘날 ETL 노드 머신이 새로운 데이터베이스 서버에 접근하고자 하기 때문에 tnsnames.ora를 구성해야 하며, 결과가 설정된 후 데이터베이스에 연결할 때 오류가 보고됩니다:
ORA-12547: TNS:lost contact



처음에는 tnsnames.ora가 잘못 설정된 줄 알았지만, 비교와 검증 후 이 가능성은 배제되었습니다. 다른 호스트에서도 동일한 구성이 이 데이터베이스 서버에 연결되는 것이 확인되었기 때문입니다.

다음으로, "ORA-12547: TNS: lost contact"라는 오류를 보고 인터넷에서 많은 정보를 검색했는데, 어떤 것은 소프트웨어 패키지가 부족하다고 했고, 또 어떤 것은 데이터베이스 호스트의 파일 권한 설정에 문제가 있다고 했지만, 이번에 겪은 상황과는 일치하지 않았습니다.

나중에 로그를 살펴보고 데이터베이스의 모니터링 listener.log로그를 확인했는데, 다음과 같은 오류 메시지가 있었습니다:
2016년 5월 20일 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * 상태 * 0
192.168.24.1에서 들어오는 연결 거부
2016년 5월 20일 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error
  TNS-00516: 허가 거부됨

참조 후 데이터베이스 서버의 sqlnet.ora 설정을 확인했는데, 데이터베이스 접근 IP 제한이 설정되어 지정된 IP만 데이터베이스에 접근할 수 있었기 때문입니다.

2노드 RAC 데이터베이스이기 때문에, 그리드 사용자 아래에서 sqlnet.ora를 수정하면 ETL 노드의 IP 주소를 데이터베이스에 접근하기 위한 IP 화이트리스트에 추가됩니다.
수정 후에는 리스닝을 재시작하세요(lsnrctl reload). 그렇지 않으면 오류가 계속 보고됩니다.




이전의:C#은 Java 코드를 호출합니다 (JAR이 DLL로 변환됨)
다음:TNS-12547: TNS:lost contact解决办法
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com