ORA-12514 “TNS:리스너는 현재 연결 기술자에 요청된 서비스를 알지 못합니다”는 Oracle 데이터베이스에서 발생하는 에러입니다. 이 에러는 클라이언트가 연결 기술자(TNS connect descriptor)에 요청된 서비스를 리스너가 인식하지 못할 때 발생합니다. 아래에는 이 에러의 원인과 해결 방법, 예시를 설명하겠습니다.
Table of Contents
원인
- 잘못된 서비스 이름: 연결 기술자에 지정된 서비스 이름이 잘못되었을 경우에 발생할 수 있습니다. 올바른 데이터베이스 서비스 이름을 사용해야 합니다.
- 리스너 구성 오류: 리스너 구성에 문제가 있을 경우에도 이 에러가 발생할 수 있습니다. 리스너가 데이터베이스 서비스를 인식하지 못하는 상황입니다.
- 리스너 동작 중지: 리스너가 동작 중지되어 있는 경우에도 이 에러가 발생할 수 있습니다. 리스너가 정상적으로 실행되고 있는지 확인해야 합니다.
에러가 발생하는 예시
다음은 잘못된 서비스 이름으로 인해 ORA-12514 에러가 발생하는 예시입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OracleConnectionExample {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:INVALID_SERVICE";
String username = "your_username";
String password = "your_password";
try {
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("데이터베이스 연결 성공!");
conn.close();
} catch (SQLException e) {
System.out.println("데이터베이스 연결 실패: " + e.getMessage());
}
}
}
에러 메시지: ORA-12514: TNS:리스너는 현재 연결 기술자에 요청된 서비스를 알지 못합니다.
해결방법
- 올바른 서비스 이름 사용: 연결 기술자에 올바른 데이터베이스 서비스 이름을 지정해야 합니다. 데이터베이스 관리자에게 올바른 서비스 이름을 확인하고 사용해야 합니다.
- 리스너 구성 확인: 리스너 구성에 문제가 있는지 확인해야 합니다. 리스너 설정 파일(tnsnames.ora 또는 listener.ora)을 확인하고 수정해야 할 수도 있습니다. 필요한 경우, 데이터베이스 관리자에게 도움을 요청해야 합니다.
- 리스너 실행 상태 확인: 리스너가 실행 중인지 확인해야 합니다. 리스너가 중지되어 있다면, 리스너를 시작해야 합니다. 데이터베이스 관리자 또는 시스템 관리자에게 리스너를 시작하도록 요청해야 합니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OracleConnectionExample {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:VALID_SERVICE";
String username = "your_username";
String password = "your_password";
try {
Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("데이터베이스 연결 성공!");
conn.close();
} catch (SQLException e) {
System.out.println("데이터베이스 연결 실패: " + e.getMessage());
}
}
}
해당 예시에서는 url
변수에 올바른 데이터베이스 서비스 이름인 “VALID_SERVICE”를 사용하여 연결 기술자를 수정하였습니다. 이렇게 하면 ORA-12514 에러가 발생하지 않고 데이터베이스 연결이 성공합니다.
주의사항
실제 에러 메시지와 상황에 따라 원인과 해결 방법은 달라질 수 있습니다. 따라서, 발생한 에러 메시지를 정확히 확인하고 해당 상황에 맞는 해결 방법을 찾아야 합니다. 데이터베이스 관리자에게 도움을 요청하는 것도 좋은 방법입니다.