ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개발노트] Spring + JPA + Oracle 연동 문제해결
    Programming/Note 2021. 3. 5. 10:22

    프로젝트를 위해 정리한 글입니다. (완료)

     

     

    문제점

    (초기에 사용한 오라클 설치에 참고한 자료: goddaehee.tistory.com/191)

    - SQL Developer에서나 IntelliJ의 datasource tap을 이용해서 DB를 조작하는 데에는 문제가 없었다. 

    - 하지만 Spring 프로젝트에서는 DB에 접근하지 못했다. 

     

    해결시도

    1) 기존의 오라클 sw 사용 : 노트북 세부사항 확인(listener.ora, tnsnames.ora 파일 수정), 방화벽 체크.... [실패]

    - 참고자료 : jhnyang.tistory.com/272

    2) 기존 버전 삭제 후 다른 오라클 버전 사용[성공]

     

     

     

     

    1. 기존의 오라클 사용하여 시도

     

    프로젝트를 실행하면 다음과 같은 오류가 발생했다.

    The Network Adapter could not establish the connection.

     

     

    1) 1차시도 : 세부사항 확인 <관련파일 : listener.ora, tnsnames.ora>

    오라클 Home의 dbhomeXE 디렉토리 아래 리스너와 tnsname 파일을 확인해보자.

    오라클 db와 연결하기 위해서 오라클 리스너가 요청을 받아들여야 하는데, 이 때 해당 파일들의 설정값이 일치해야 한다. 파일들의 세부 내용을 확인해보자.

     

    - 일단 오라클 설치 경로 찾기

    - 찾았따. C:\oraclexe\app\oracle\product\11.2.0\server

    - 관련파일들 찾기 C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN

     

     

    1-1) HOST값 확인

    - 오라클 11버전 HOST값 : 내 호스트명(컴퓨터명)

    - 내 컴퓨터 이름을 HOST값에 넣어주자.

     

    - listener.ora 수정

    - tnsnames.ora 수정

     

    1-2) 서비스 네임 확인

    tnsnames.ora에 등록된 서비스 네임이 동일해야 한다.

     

    - SQL Plus에서 서비스 네임 확인

    - 드래그한 부분과 SERVICE_NAME 모두 'XE'로 제대로 설정되어있다.

    '

    - 서비스 중지했다가 실행해보자.

     

    - OracleServiceXE 실행 중인거 확인, OracleXETNSListener 중지했다가 다시시작해보자.

     

    결과

    똑같은데? ㅋ

     

    - 오라클을 껏다 키거나 컴퓨터를 재부팅해보자

     

     

    결과

    그래 역시 안된다. 다른 방법으로 시도해보자.

     

     

     

    2) 2차시도 : 서비스, 방화벽 체크

    세부사항이 안맞아서가 아니라 서비스 자체가 실행되지 않았을 수도 있다고 한다.

    spring에서만 접근을 못하기 때문에 이 문제는 아닌 것 같았지만 일단 시도해보았다.

     

     

    - 방화벽 인바운드 규칙에서 새규칙 만들기

     

     

    - 서비스 열어서 listener 다시 실행

     

     

    결과

    ㅎ..

     

     

     

     

    3) 3차시도 : 환경변수 확인

    오라클 설치 위치가 잘 잡혀있는지 확인해보라는 글을 보았다. 이것도 아닌 것 같지만 일단 보기로..

     

    - 환경변수에 path 제대로 등록되어 있었다.

     

     

     

    1,2,3 방법을 모두 시도하고도 db접속이 불가능하다면 포트를 변경하거나 재설치하는 것을 권하더라....

    .............

     

    일단 한번 cmd에서 오라클 리스너가 동작하고 있는지 확인해봤다.

    리스너가 정상 동작을 안하는데?

     

     

    - 서비스들어가서 오라클 프로그램을 다 실행시켰다.

    참고: travelbeeee.tistory.com/396

     

     

     

    - cmd에서 확인

    어머 리스너는 된다..?

     

     

    - 희망을 가지고 다시 실행해보기

     

     

    는 안돼

     

    근데 처음과 다른 메세지가 출력되었다. 

    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

     

     

     

    해당 메세지를 해결해보자.

     

    - 참고 : holics1226.tistory.com/19#gsc.tab=0

    SID나 서비스 네임이 잘못되면 저런 오류가 발생할 수 잇다는 글이었다. 

     

     

    - sql developer가서 DB 접속 이름들을 살펴보았다.

    움...... 그렇구나. 

     

    - hoxy..?하고 바꿔봤... ㅋ

     

     

    결과

    그래... 

     

     

    - 그럼 HR 접속 말고, 다른 접속들이 SQL Developer에서 접속되는지 테스트해보았다. 

     

     

    - XE 테스트

    엥? 테스트 실패다

     

     

    ORA-01017 : invalid username/password; logon denied

    생각해보니까 난 저런 접속을 따로 만든적이 없었다 ㅇㅂㅇ 뭐지.... 몰라...

    - 참고 : blog.naver.com/PostView.nhn?blogId=firstpcb&logNo=220319407686

    - 참고: m.blog.naver.com/baekmg1988/221298569322

     

     

    - 접속계정을 확인했더니 블로그 글과 같이 'SYS'라고 출력되었다. 

    SYS로 application.properties를 변경해보았다. 

     

    결과

    도르마무

     

     

    - 호스트 이름을 localhost로도 바꿔보았다. 

     

     

    응 안돼!

    그냥 재설치가 답인둣..^^

     

     

     

    2. 삭제 후 오라클 다른 버전 설치해보자

    내 컴퓨터에서만이 아니라 현명님 컴퓨터에서도 스프링 프로젝트에서 해당 db접속이 안되었다.

    아마 이 오라클 버전이 무슨 문제가 있눈둡..?

    삭제하고 다른 버전을 깔아보기로 했다. 

     

     

    1) 삭제

    - 참고 : dreamlog.tistory.com/589

     

    [Database][Oracle Database 11g] 삭제 방법

    이전 글에서 오라클 데이터베이스 11g 버전을 설치하는 과정을 설명하였다. 이번 글은 11g 버전을 삭제하는 방법이다. 오라클 데이터베이스 11g설치 중 "데이터베이스 생성 및 구성" 방법으로 "데

    dreamlog.tistory.com

     

    2) 재설치

    - 참고: javacoding.tistory.com/113

    enterprise 버전?

     

    처음에 받았던 것은 11g express edition이었는데 enterprise edition으로 받아보려했다.

    그런데 너무 무겁고 다른 블로그 글을 보니까 enterprise를 깔아야 spring이 된다는 말은 없었다. 

     

     

    google : spring oracle express

     

     

    설치

    - 참고: [스프링 #03 오라클 db 연동]

     

    스프링 #03 오라클 DB 연동

    oracle data base 11g express 설치https://www.oracle.com/database/technologies/xe-prior-releases.htmlsql developer 설치11g express가 설치된 경로에 다운로드https&

    velog.io

     

    이 버전을 받았다. 

     

     

     

     

    - 참고 : offbyone.tistory.com/13

    오라클 + SQL DEVELOPER 설치

     

     

    연결 성공
    쿼리 테스트 => 성공!

     

    16. 8080 포트를 점유하고 실행되고 있는 Oracle HTTP Listener 를 중지하기 위해서 명령창을 열고 다음 명령을 실행 합니다.
    출처: https://offbyone.tistory.com/13 [쉬고 싶은 개발자]

     

     

    새로 깔으니까 스프링에서도 db접속 되었다. ㅠㅠㅠㅠ

    해결!

    댓글

Designed by black7375.