728x90
반응형
SMALL
728x90
반응형
LIST
728x90
반응형
SMALL
어느 날 잘 되고 있던 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 파라미터를 넘

              겨줘서 서비스를 재시작해야 한다.

728x90
반응형
LIST

+ Recent posts