어느 날 잘 되고 있던 Oracle Database가 갑자기 접속이 안 되는 현상이 발생하였다.
Error Code는 ORA-01034, ORA-27101
구글링을 하여도 거의 서비스를 재시작하라는 거밖에 없었다.
모든 게 정상적으로 서비스가 올라와 있었는데 접속이 되지 않는 경우, 어떻게 해결하는지 알아보도록 하자.
■ ORA-01034, ORA-27101 에러 해결책
1. 잘 사용하고 있던 Database가 갑자기 아래 이미지와 같이 ORA-01034, ORA-27101 에러코드가 발생하면서 접속이 되지 않았다.
2. 명령 프롬프트 - sqlplus를 실행하여 sysdba로 접속한다.
>> sqlplus / as sysdba
-- 정상적으로 접속되는 경우 아래 이미지와 같이 SQL로 진입한다.
-- 접속이 되지 않는 경우 아래 이미지와 같이 ORA-12560 에러코드가 발생
3. SQL로 진입하지 못했을 경우, 명령 프롬프트에서 아래와 같이 먼저 Database를 직접 지정한다.
>> set oracle_sid=test -- test는 접속할 Database로 알맞게 변경한다.
4. 그리고 다시 명령 프롬프트에서 sqlplus / as sysdba로 다시 접속하면 SQL로 진입된다.
단, Connected to an idle instance.라는 메시지가 나온다. (휴지 인스턴스(idle instance)는 데이터베이스가 셧다운 된 상태)
5. 아래의 쿼리를 실행하면, 아래 이미지와 같이 에러가 발생한다.
SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE; -- 현재 접속해 있는 Database와 상태를 확인할 수 있는 쿼리
6. startup을 실행한다. 이미 실행 중이라는 메시지가 나오면, shtdown immediate를 하고 다시 startup 한다.
아래와 같이 에러가 발생한다. (정상적인 서버도 아래 경로에 xxx.ORA파일은 없음)
SQL> startup;
7. [C:\app\aa\virtual\admin\bb\pfile]의 경로로 들어가면 [init.ora. 숫자]로 된 파일이 있는데, 이 파일을 복사하여
[C:\app\aa\virtual\product\12.2.0\dbhome_1\database] 경로 안으로 붙여 넣고 파일 이름을 [initbb.ora]로 변경한다.
(주의 : 빨간색 글씨는 Database명으로, 해당 Database를 선택하면 된다. 경로는 사용자 PC에 따라 달라진다.)
8. SQL에서 startup을 파라미터와 함께 실행한다.
SQL> startup pfile="C:\app\aa\virtual\product\12.2.0\dbhome_1\database\initbb.ora"
-- 아래 이미지와 같이 성공적으로 startup이 된다.
9. 5번의 쿼리를 다시 실행한다. 아까와 달리 조회가 되는 것을 볼 수 있다.
SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE; -- 현재 접속해 있는 Database와 상태를 확인할 수 있는 쿼리
10. 마지막으로 DBeaver에서 Connection Test 해봐도 접속이 잘되는 것을 볼 수 있다.
※ 주의 : 이렇게 서비스가 시작된 것은 윈도우 서비스에서 재시작을 하면, 위와 같이 에러가 똑같이 나기 때문에 startup 할 때, pfile 파라미터를 넘
겨줘서 서비스를 재시작해야 한다.
'Database > Oracle' 카테고리의 다른 글
PL/SQL Developer 유용한 기능 (Version 12.0.5.1828) (0) | 2024.07.07 |
---|---|
C# ORA-01017 오류 간단 해결 (0) | 2024.07.06 |
Oracle DB Dump (exp/imp 이용) (0) | 2024.03.18 |
ORA-12638 신용 검색에 실패 했습니다. 에러 해결 (0) | 2024.01.28 |
ORA-12721, ORA-06552, ORA-06553 해결 방법 및 주의 사항 (2) | 2024.01.27 |