✅ 문제점
로컬환경에서 디비버를 연결하려고 하는데 접속할 수 없음
과거에 Oracle Database XE 설치를 저장 공간이 부족하여 D드라이브에 설치했었다
그래서 환경변수 경로도 꼬인 관계로 다시 처음부터 설치하는 방향으로 진행하였다
1
: C 드라이브나 D 드라이브에 설치한 오라클 경로를 삭제하기
EX)C:\app\사용자계정\product\버전
EX)D:\app\사용자계정\product\버전
오라클을 설치하면 디폴트경로로 위 예시처럼 저장이 된다
그래서\app
폴더를 통째로 삭제한다
2
: 제어판 → 프로그램 및 기능 → Oracle Database 21c XE 제거
3
: cmd 접속 → services.msc 입력 -> Oracle 관련 서비스 모두 제거됐는지 확인
4
: 윈도우 시작 -> regedit (레지스트리 편집기) → HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 삭제
5
: 환경 변수 ORACLE_HOME, TNS_ADMIN, PATH 내 Oracle 관련 항목 제거
이렇게 5가지 과정을 진행하면 남아 있는 오라클이 흔적이 없을것이다
✅ 재설치 후 확인
위 사진처럼 다시 오라클을 설치한다
설치가 다 완료되면 위에서 언급한 C:\app\사용자계정\product\버전
에 설치가 되있을 것이다
그러면 하위폴더로 C:\app\bogdu\product\21c\homes\OraDB21Home1\network\admin
에 가서
lister.ora
tnsnames.ora
가 있으면 잘 설치된 것이다
이렇게 하고 디비버에서 다시 연결하려고하는데 동일한 리스너 문제가 발생했다..
CMD에서 lsnrctl status 명령어를 입력하여 리스너 상태를 확인해봤더니
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=220.74.13.47)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))
(Security=(my_wallet_directory=C:\APP\BOGDU\PRODUCT\21C\admin\XE\xdb_wallet))
(Presentation=HTTP)(Session=RAW)) 서비스 요약...
즉 HOST는 220.74.13.47 (공인 IP)로 잡혀 있기 때문이다
이렇게 된 이유는 오라클을 설치할 때, 네트워크 자동 설정
이 활성화 된 상태에서
외부 IP를 자동 감지하여 리스너에 등록된 것 같다
자세하게는 모르겠고 수동으로 해결을 진행해보겠다
✅ 해결 방법
위에서 언급한
listener.ora
와tnsnames.ora
안에 들어가면
HOST 주소가 다른 외부주소로 적혀 있는 경우가 있다
이런 경우HOST = localhost
또는HOST = 127.0.0.1
로 바꿔주면 된다
추가로
C:\Windows\System32\drivers\etc\hosts
로 들어가서
127.0.0.1 localhost
::1 localhost
이렇게 2개가 주석되어있으면 풀어준다
💡 참고 : hosts를 그냥 메모장에 연결해서 수정하면 권한이 없기 때문에 수정이 불가능
기본 메모장을 오른쪽 우클릭해서 관리자모드로 실행 -> 상단 파일 클릭 -> 열기 -> hosts 선택
해서 하면 수정이 가능하다
그 후 관리자 모드로 CMD를 들어가서
lsnrctl stop
-> lsnrctl start
순으로 입력한 후
컴퓨터를 재시작한 다음 lsnrctl status
를 해서
HOST가 127.0.0.1
또는 localhost
로 바뀌었는지 확인한다
이렇게 진행하니 로컬 환경에서 디비가 잘 붙는다