ORA-12514: 데이터베이스에 접속할 수 없습니다.
%s 서비스가 %s의 리스너에 등록되지 않았습니다. (CONNECTION_ID=UI1rO9stRQaS3cU8zcrD+g==)
1. Oracle 리스너 확인
리스너가 정상적으로 동작하고 있는지 확인하는 과정이다.
1. cmd - 순서대로 명령어 실행
Oracle 리스너가 제대로 실행 중인지 확인해주는 명령어
lsnrctl status
▶ 위 cmd 내용 전문
Microsoft Windows [Version 10.0.22631.3737]
(c) Microsoft Corporation. All rights reserved.
C:\Users\sohee>lsnrctl status
LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 19-6월 -2024 16:12:28
Copyright (c) 1991, 2016, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습 니다
리스너의 상태
------------------------
별칭 LISTENER
버전 TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Production
시작 날짜 19-6월 -2024 13:29:52
업타임 0 일 2 시간. 42 분. 36 초
트레이스 수준 off
보안 ON: Local OS Authentication
SNMP OFF리스너 매개변수 파일 C:\app\oracle_server\product\12.2.0\dbhome_1\network\admin\listener.ora
리스너 로그 파일 C:\app\oracle_server\diag\tnslsnr\themarush\listener\alert\log.xml
끝점 요약 청취 중...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=themarush)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=themarush)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE_SERVER\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
서비스 요약...
"8814476112eb40328e4aee661d9a7a39" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
"CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orcl" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orclXDB" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orclpdb" 서비스는 1개의 인스턴스를 가집니다.
"orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
C:\Users\sohee>
리스너 상태를 확인한 결과, 여러 서비스가 정상적으로 등록되어 있는 것을 알 수 있다.
그런데도 ORA-12514 오류가 발생한다면, 클라이언트 측에서 올바른 데이터베이스 서비스 이름을 사용하고 있는지 확인해야 한다.
2. tnsnames.ora 파일 검토
[내 tnsnames.ora 파일 경로]
C:\app\oracle_server\product\12.2.0\dbhome_1\network\admin
▶ 내 tnsnames.ora 파일 전문 (수정 전)
# tnsnames.ora Network Configuration File: C:\app\oracle_server\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLPDB 서비스에 대한 항목이 누락되어 있었다.
ORCLPDB 서비스에 연결하려면 tnsnames.ora 파일에 다음 항목을 추가해야 한다.
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orclpdb)
)
)
▶ 수정 후 tnsnames.ora 파일 전문
# tnsnames.ora Network Configuration File: C:\app\oracle_server\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orclpdb)
)
)
이제 클라이언트에서 ORCLPDB 서비스에 연결할 때 다음과 같이 연결 가능하다.
sqlplus username/password@ORCLPDB
이렇게 추가해놓고 다시 Connection이 되지 않아서
혹시 몰라서 Database명을 바꿨는데 연결이 되었다.
- 기존 Database : PraticeWorkSpace
- 수정 후 Database : ORCLPDB
꺼진 Database명도 다시보자 !
아직은 신입이니까 ...^^ 알면 됐지 ! 담부턴 이런 실수 안할듯 ~!
'[Etc]' 카테고리의 다른 글
hELLO Tistory 블로그 스킨 적용하기 (1) | 2024.06.25 |
---|---|
[Eclipse] SVN 연결 (0) | 2024.06.24 |
[Error] DBeaver - Can't lock workspace (0) | 2024.06.17 |
[Window] MySQL 5.7 설치 (0) | 2024.06.17 |
[Window] Oracle 12c 설치 (0) | 2024.06.17 |