데이터베이스 작업 중에 다른 서버에 있는 데이터베이스로 연결하여 데이터를 조회하거나 처리해야 하는 경우가 종종 있습니다. 하지만 연결 과정에서 'ORA-02019: connection description for remote database not found'라는 오류가 발생하기도 하는데요, 이 오류는 원격 DB에 대한 설명이 제대로 설정되지 않았을 때 발생합니다. 😭
발생하는 가장 큰 이유는 다음과 같아요.
- tns 접속 정보 변경으로 인하여, 접속 기술자를 찾을 수 없을 때
- 설정한 원격 데이터베이스 링크 오류로 인하여, 원격 데이터베이스 접속이 안 될 때
이 문제를 해결하려면 'DB 링크'를 확인해야 해요! 'DB 링크'는 로컬 데이터베이스에서 원격 데이터베이스로의 연결을 설정하는 수단인데요, 원격 DB의 테이블에 접근하려면 '테이블명@DB서버이름' 과 같은 형식으로 접근할 수 있습니다. 예를 들어,
SELECT * FROM TABLE_NAME@db_link_NAME;
위와 같은 쿼리로 원격 DB의 테이블을 조회하는데, 이때 반드시 원격 DB에 대한 연결이 미리 설정되어 있어야 합니다. 이 연결은 바로 'DB 링크'를 통해 이루어집니다.
DB 링크 확인 방법
원격 DB에 대한 연결이 이미 설정되어 있는지 확인하려면, 'DBA_DB_LINKS' 테이블을 조회해야 합니다. 다음 쿼리로 현재 설정된 DB 링크들을 확인할 수 있어요.
SELECT * FROM DBA_DB_LINKS;
이 쿼리를 실행하면 시스템에 설정된 DB 링크 목록을 확인할 수 있으며, 'db_link_NAME' 컬럼을 통해 각 링크의 이름을 확인할 수 있습니다. 원격 DB의 사용자 이름과 연결 설명도 함께 제공하니 확인해 보세요~
DB 링크를 통해 다른 DB에 연결하는 방법
- DB 링크 설정 여부 확인: 우선,
DBA_DB_LINKS테이블에서 연결하려는 DB가 이미 설정되어 있는지 확인합니다. 없다면, 아래 방법으로 새롭게 DB 링크를 생성해야 합니다. - DB 링크 생성: DB 링크가 없는 경우, DBA 권한을 가진 사용자는 다음과 같이 DB 링크를 생성할 수 있습니다.
CREATE DATABASE LINK db_link_NAME CONNECT TO remote_user IDENTIFIED BY password USING 'remote_db_connection';db_link_NAME: 원하는 DB 링크 이름을 지정합니다.remote_user와password: 원격 DB에 접속하기 위한 계정 정보를 입력합니다.remote_db_connection: 원격 DB에 연결할 수 있는 정확한 연결 설명입니다.
- DB 링크를 통한 쿼리 실행: 이제 DB 링크가 설정되면, 원격 DB의 테이블에 접근할 수 있습니다.
SELECT * FROM TABLE_NAME@db_link_NAME;
이 과정은 원격 데이터베이스에 접근하기 위한 필수 단계입니다. DB 링크가 설정되면 로컬 DB처럼 원격 DB와의 데이터 교환이 가능해져, 여러 서버 간 데이터를 손쉽게 관리할 수 있어요.
마무리, ORA-02019 오류 해결 방법
요약하면 ‘ORA-02019’ 오류는 DB 링크가 없거나 잘못 설정되었을 때 발생하는데요, 이를 해결하기 위해서는 ‘DBA_DB_LINKS’ 테이블을 확인하고, 필요 시 새롭게 DB 링크를 설정하면 됩니다.
