오라클 Oracle ORA-12541 에러 해결 방법
오라클 데이터베이스 21c를 설치하고 DBeaver를 통해 Oracle Database에 접속하려는데 "ORA-12541 : 데이터베이스에 접속할 수 없습니다. %에 리스너가 없습니다."라는 에러가 발생했다. 해당 에러는 Oracle 리스너 문제로 발생하는 현상이다.
ORA-12541 에러는 크게 2개의 원인으로 발생된다.
1. Oracle Listener 실행이 안 되는 경우
2. Oracle Listener에 데이터베이스가 없는 경우
이제 2개의 문제에 대해서 차례대로 해결 방법을 조치해 보자
1️⃣ Oracle Listener 실행 여부 확인
제일 먼저 작업 관리자에서 Oracle Listener 실행 여부를 확인해 본다. 상태가 중지됨으로 되어있다면 시작을 해보자. 만약 정상적으로 시작된다면 다행인데 시작이 안되고 다시 중지가 된다면 실행이 안 되는 원인을 찾아야 한다.
자세히 알아보기 위해 명령 프롬프트에서 Oracle Listener 상태를 조회한다.(명령어 : lsnrctl status)
TNS-12545, TNS-12560, TNS-00515, TNS-12541, TNS-12560, TNS-00511 등 다양한 원인으로 Oracle Listener가 정상적으로 실행되지 않았다. 그런데 자세히 보니 HOST 항목에 있는 값이 내 컴퓨터 이름 정보가 현재 내 컴퓨터 이름과 다르다는 걸 발견했다.
2️⃣ listener.ora, tnsnames.ora 수정
잘못된 HOST 정보 값을 수정해야 한다. 수정할 파일은 listener.ora, tnsnames.ora 총 2개의 파일이다. 해당 파일은 Oracle을 설치한 경로에서 homes\OraDB21Home1\NETWORK\ADMIN\ 경로에 존재한다.
listener.ora 파일을 보면 HOST 정보를 현재 내 컴퓨터 이름과 동일하게 변경해 준다.
tnsnames.ora 파일도 동일하게 HOST 정보를 현재 내 컴퓨터 이름과 동일하게 수정해 준다.
수정한 파일을 저장 후 Oracle listener를 다시 시작해 본다.(명령어 : lsnrctl start)
이제 Oracle listener가 정상적으로 작동하는 걸 확인하였다.
HOST 값도 수정한 값으로 잘 보인다.
하지만 DBeaver에서는 여전히 ORA-12541 에러가 발생한다. 리스너가 정상적으로 작동하는 상태에서 해당 에러가 발생할 경우 오라클 리스너에 데이터베이스가 없을 경우 발생할 수 있다.
3️⃣ Oracle Listener 데이터베이스 생성
Oracle Net Manager 프로그램을 관리자 권한으로 실행한다.
생성할 전역 데이터베이스 이름과 SID 정보를 입력하고 네트워크 구성 저장을 한다.
그러면 listener.ora 파일에 아래와 같이 ORCL 항목이 생성된 걸 확인할 수 있다.
이제 다시 Oracle Listener를 멈추고(명령어 : lsnrctl stop) 시작(명령어 : lsnrctl Start)을 한다.
그러면 ORCL 인스턴스도 실행된 걸 확인할 수 있다.
이제 DBeaver에서 Test Connection을 해보면 Database 연결이 성공했다고 나온다.
DB 접속 후 Select 쿼리도 날려보았다. 정상적으로 조회된다.
📋 Database 관련 포스팅
'Database' 카테고리의 다른 글
Oracle 오라클 ORA-01950 테이블스페이스 권한 오류 해결 (0) | 2024.08.29 |
---|---|
Oracle 오라클 계정 생성 삭제, 테이블 스페이스 생성 삭제, 계정 권한 부여 (0) | 2024.08.28 |
Oracle 오라클 계정 생성 오류 해결 방법 ORA-65096 (2) | 2024.08.28 |
GCP 구글 클라우드 MySQL 데이터베이스 구축 및 DBeaver 로 연결하기 (0) | 2024.06.18 |
오라클 데이터베이스 21c 설치하기 (1) | 2023.11.14 |
댓글