ORA-12154 에러는 TNS(TNSNAMES.ORA 또는 LDAP에 저장된 접속 식별자)를 해석할 수 없을 때 발생합니다. 이는 데이터베이스에 연결하려고 할 때, 지정된 SID나 서비스명을 찾을 수 없는 경우에 발생합니다.
에러 원인
TNS 설정 오류: TNSNAMES.ORA 파일에 올바르지 않은 정보가 포함되어 있는 경우에 발생합니다.
네트워크 설정 오류: 네트워크 연결이 정상적으로 구성되지 않아 데이터베이스 서버를 찾을 수 없는 경우에 발생합니다.
서비스명 또는 SID 오류: 데이터베이스 서비스명 또는 SID가 잘못된 경우에 발생합니다.
해결방법
일반적으로 TNSNAMES.ORA 파일은 Oracle 클라이언트에서 데이터베이스에 접속할 때 필요한 네트워크 연결 정보를 담고 있습니다.
이 파일은 클라이언트 컴퓨터의 ORACLE_HOME/network/admin 디렉토리에 위치합니다.
이제 TNSNAMES.ORA 파일의 구성을 예시와 함께 설명해보겠습니다.
아래는 일반적인 TNSNAMES.ORA 파일의 예시입니다
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
위 예시에서는 "ORCL"이라는 서비스명을 사용하여 데이터베이스에 접속하고 있습니다.
여기서 중요한 부분은 "SERVICE_NAME"입니다.
이 부분이 데이터베이스의 서비스명을 정의하고 있으며, 이 값이 정확한지 확인해야 합니다.
또한, SID를 사용하여 접속하는 경우에는 다음과 같이 TNSNAMES.ORA 파일을 구성할 수 있습니다
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl)
)
)
위 예시에서는 "SID"를 사용하여 데이터베이스에 접속하고 있습니다.
마찬가지로 "SID" 부분이 데이터베이스의 SID를 정의하고 있습니다.
이 값이 정확한지 한번 더 확인해야 합니다.
간단 정리
1. TNANAMES.ORA 파일을 연다.
Windows: %ORACLE_HOME%\network\admin\tnsnames.ora
Linux 또는 Unix: $ORACLE_HOME/network/admin/tnsnames.ora
2. SERVICE_NAME 또는 SID 가 맞는지 확인한다.
'SW > Database' 카테고리의 다른 글
ORA-00979: Not a Group By Expression / 원인과 해결방법 (0) | 2024.04.05 |
---|---|
ORA-01747: invalid user.table.column, table.column, or column specification / 원인과 해결 방법 (0) | 2024.04.04 |
ORA-00933: SQL command not properly ended / 원인과 해결방법 (0) | 2024.04.02 |
ORA-01000: maximum open cursors exceeded / 원인과 해결방법 (0) | 2024.03.19 |
ORA-01555: snapshot too old / 원인과 해결방법 (0) | 2024.02.12 |