잘 실행되던 오라클 서버 접속시 아래와 같이
무한로딩 상태와 함께 오류메시지가 떴는데,
정확한 원인없이 하루 아침에 오라클 db 가 뻑나는 상황이 발생하였다.
Spring 프로그램 STS 를 시작한 기간과 맞물려서
Spring 과 Oracle 프로그램과의 충돌로 인한 문제라고 생각하였기 때문에
처음에 시도해본 방법은 다음과 같다.
1. 사용자 계정에서 repository 폴더 안에 있는 파일들을 모두 삭제하고
STS 프로그램를 재 실행하여 작업 진행중이던 Project 에서 pom.xml 파일을 새롭게 붙여 넣는다.
단, repository 파일을 삭제시 주의할 점은
repository 폴더를 삭제하는 것이 아닌 폴더 안에 들어가면 있는 모든 파일들을 삭제해야 한다.
2. 기존의 Project 파일을 아예 삭제한 후, 백업해두었던 Project 파일을 import 한다.
Project 마우스 우클릭하여 Maven -> Update Project 를 다시 실행하였다.
이후 1번과 같이 사용자 계정에서 repository 폴더 안에 있는 파일들을 모두 삭제하고
STS 프로그램를 재 실행하여 작업 진행중이던 Project 에서 pom.xml 파일을 새롭게 붙여 넣는다.
이와 같이 2가지 방법으로 진행해본 결과
아래의 이미지와 같이 에러가 나는 파일은 보이지 않았으나,
톰캣 구동시 아래와 같은 404 오류가 발생했으며,
오라클도 맨위의 이미지와 같이 계속 무한로딩 상태였다..ㅠㅠ
결국 오라클을 제거하기 위해
제어판에서 Oracle Database 18c Express Edition 프로그램 파일을 삭제하려고 했으나,
Oracle 무한로딩의 작업취소 조차 완료되지 않는 상태로 프로그램이 무한 멈춰서
프로그램 제거 또한 쉽지 않은 상태였다ㅜㅜ..
이번 과정을 통해 깨달은 것인데,
Oracle 프로그램을 깨끗하게 완전 제거하는 것이 쉽지 않고
db 가 꼬였을 때는 해결하기도 어렵지만 모든 db 가 날라갈것을 감수해야 하기 때문에
미리미리 외장하드에 백업을 해두는 것을 정말! 추천! 한다.
본인은 Oracle 및 Spring 프로그램 오류까지 겹쳐 모든 것을 복구하는데 약 이틀의 시간이 걸려 복구를 해결할 수 있었다.
※ 제어판 - 시스템 및 보안 - 백업 및 복원(Windows 7) 에서 주기적으로 외장하드에 백업을 받아둘 수 있다.
또한 혹시나 외장하드도 깨질 수 있는 위험이 있으므로 이중으로 백업을 받아두는 것이 가장 베스트라고 한다.

오라클을 재설치를 하기 위해서는 이전에 설치했던 오라클 파일들을 깔끔하게 모두 제거해야 한다.
만약 오라클을 완벽하게 제거하지 않고 재설치를 시도할 시,
"이 시스템에는 oracle database express edition 서비스가 이미 있습니다"
라는 알림 메시지와 함께 재설치가 불가능해진다.
Oracle 프로그램을 완전 제거한 방법은 다음과 같다.
[ 해결방안 ]
1. 레지스트리 정보 삭제
① 시작 -> 실행(Window + R) -> regedit
② HKEY-LOCAL_MACHIEN 파일 안에 Oracle 과 관련된 파일들을 모두 삭제한다.
키보드 O 키를 눌러서 관련 파일을 찾은 후 삭제하면 된다.
HKEY_LOCAL_MACHINE\SOFTWARE\
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\
2. 설정 -> 제어판 -> 환경 변수 검색하여 창 띄우기 -> Path 삭제한다.
예) C:\OracleXE18C\product\18.0.0\dbhomeXE\bin
3. C:\Program Files 에서 Oracle 파일 삭제한다.
4. 컴퓨터 재부팅한다.
5. C:\OracleXE18C 파일 삭제한다.
6. 삭제가 잘 되었는지 확인하기 위해 작업관리자(Ctrl + Alt + Esc) -> 서비스탭
키보드 O 키를 눌러서 관련 파일이 남아있는지 확인한다.
정상적으로 완전 제거되었다면 Oracle 관련 파일이 없어야 한다.
아직 Oracle 관련 파일이 남아 있다면 서비스탭에서 확인한 파일을 찾아 삭제한다.
위의 과정과 같이 했을 경우, 오라클 재설치가 가능해졌다.
재설치 후 백업한 데이터를 복사해주면 된다.
[ 데이터베이스 복사 방법 ]
1. Oracle 프로그램 상단 메뉴바에서 도구(T) -> 데이터베이스 복사
2. 소스 접속(S) 에서 옮길 데이터 서버 선택 -> 대상 접속(D) 에서 데이터를 담을 서버 선택
3. 조회 -> ">>" 선택
4. 완료
위의 과정을 통해 Oracle 데이터 복구를 완료했다ㅜㅜ..
'Langauge > Spring framework' 카테고리의 다른 글
[Spring framework] 멀티서버 스프링 스케줄러 처리를 위한 ShedLock (1) | 2023.01.06 |
---|---|
[Spring] 스프링 오류 (22) - 500번 에러 처리(에러이미지 표시) (0) | 2022.11.09 |