728x90
반응형
SMALL
728x90
반응형
LIST
728x90
반응형
SMALL
Oracle 서버 설치, 추가적으로 클라이언트까지 설치하고, DB를 Import 하기 위해서 SQLPLUS를 접속하였으나,
ORA-12560: TNS:프로토콜 어댑터 오류가 났다.
열심히 구글링을 하였으나, 리스너를 재시작하라는 말뿐, 리스너는 정상적으로 잘 작동되고 있었다.
이럴 경우, 확인해야 할 사항이 있는데 지금부터 알아보도록 하자.

 

■ Listener가 정상적으로 작동하고 있을 때 확인해야 할 사항

1. 명령 프롬프트를 실행하여, sqlplus를 접속한다.

C:\Users> sqlplus / as sysdba

2. ORA-12560: TNS:프로토콜 어댑터 오류

  - 원래 이 오류는 Listener가 정상적으로 작동하고 있지 않을 때 나온다고 한다.

3. 오라클 서버, 클라이언트를 모두 설치하였기 때문에, sqlplus가 서버 sqlplus로 실행되는지, 클라이언트 것으로 실행되는지 확인해야 한다.

    파일을 검색해 보면 아래와 같이 2개가 있는 것을 확인할 수 있다. (위의 것이 클라이언트, 아래의 것은 서버)

4. sqlplus로 실행해 보면, 서버는 정상적으로 접속이 되고, 클라이언트는 처음 이미지와 같이 오류가 발생하는 것을 확인할 수 있다.

위의 것은 클라이언트, 밑에 것은 서버 (경로를 보면 확인할 수 있다.)

5. 그럼 이제 명령 프롬프트로 실행했을 때, 서버 sqlplus로 접속되게 하는 방법은 환경변수를 수정하는 것이다.

    시작에서 시스템 환경 변수 편집 메뉴로 들어간다.

6. 시스템 속성 - 고급 - 환경변수 버튼을 클릭한다.

7. 시스템 변수에서 편집 버튼을 클릭한다.

8. 환경변수 순서를 보면 클라이언트가 서버보다 위에 위치한 것을 볼 수 있다.

    서버를 클라이언트 위로 이동한다.

9. 저장 후, 다시 명령프롬프트로 sqlplus를 실행해 보면, 접속이 되는 것을 확인할 수 있다.

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