[Oracle] DB Link 설정

2024. 9. 11. 10:59·Oracle

* Oracle 19c 기준으로 테스트를 진행한 자료입니다.

 

DB Link란?

- 간략하게 원격지에 위치한 다른 DB에 있는 데이터를 조회하고자 할 때 사용하는 링크를 의미함.

- 데이터를 직접 전송하거나 API를 사용하지 않고도 쿼리만으로 다른 서버의 데이터에 접근할 수 있으므로 실무에서 유용하게 쓰임.


테스트 환경

- 로컬 DB: TEST_A

- 원격지 DB: TEST_B

 

1) DB Link 생성을 원하는 유저에 DB Link 생성 권한 부여 및 확인 (TEST_A)

-- SYS 계정으로 접속하여야 함
-- 권한 부여
SQL> GRANT CREATE DATABASE LINK to 유저명;

-- 권한 확인
SQL> SELECT GRANTEE, GRANTED_ROLE FROM DBA_SYS_PRIVS WHERE GRANTEE='유저명';

 

2) tnsnames.ora 수정 (TEST_A)

-- 19c 기준 파일 위치
-- $ORACLE_HOME/network/admin 아래에 위치함
-- 테스트 환경의 구성에 따라 $ORACLE_HOME의 경로는 상이할 수 있음

[oracle@localhost admin]$ pwd
/oracle/app/oracle/product/19c/db_1/network/admin


-- tnsnames.ora 파일에 아래 내용 추가
- tnsnames.ora 파일에 내용 추가
[oracle@localhost admin]$ vi tnsnames.ora
TEST_B = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname 혹은 host IP)(PORT = 포트 번호)) 
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TEST_B)
    )
  )

 

tnsnames.ora 파일을 추가할 때 세 부분을 명시하여 추가해 주어야 한다

 - HOST: 원격지 DB (TEST_B) 상의 (/etc/hosts에 명시하였을 경우)  hostname 혹은 host ip

 - PORT: 원격지 DB (TEST_B) 의 포트 번호

 - SERVICE_NAME: 원격지 DB (TEST_B) 의 서비스 명

 

3) DB Link 생성 (TEST_A)

SQL> CREATE [PUBLIC] DATABASE LINK DBLINK명 CONNECT TO 연결유저명 IDENTIFIED BY 유저 비밀번호 USING 'TEST_B';

 

DB Link에는 접근제한자가 존재한다.

 

PUBLIC: 모든 유저가 사용할 수 있는 공용 링크를 생성. 생성 시 PUBLIC을 명시해 주어야 함.

PRIVATE: 특정 유저만 사용할 수 있는 링크를 생성. 생성 시에 명시해 주지 않아도 되고, 생성한 유저만 사용할 수 있음.

 

생성 후 DB Link 조회의 경우 아래의 쿼리로 조회가 가능하다.

-- 아래의 예시는 SYS 유저에서 생성한 DB Link

SQL> SELECT * FROM DBA_DB_LINKS;
OWNER      DB_LINK              USERNAME     HOST       CREATED     HID SHA VAL I
---------- -------------------- ------------ ---------- ----------- --- --- --- -
SYS        LINK_TEST            DBLINK       ORCL11     20-FEB-24   NO  NO  YES N

 

4) DB Link 사용 예시

-- 아래의 예시처럼 TABLE명@DBLINK명으로 조회가 가능함

SQL> select count(*) from TB1@LINK_TEST;

  COUNT(*)
----------
     30000

 

'Oracle' 카테고리의 다른 글

[Oracle] 11g RAC Node 삭제  (0) 2024.10.04
[Oracle] Oracle to Sybase DB Link 설정  (0) 2024.09.27
[Oracle] 11g RMAN Table Recovery (테이블 복구) TEST  (2) 2024.09.26
[Oracle] alert log, listener log 경로 변경  (0) 2024.09.19
[Oracle] Listener Password 설정  (0) 2024.09.12
'Oracle' 카테고리의 다른 글
  • [Oracle] Oracle to Sybase DB Link 설정
  • [Oracle] 11g RMAN Table Recovery (테이블 복구) TEST
  • [Oracle] alert log, listener log 경로 변경
  • [Oracle] Listener Password 설정
큐쿠
큐쿠
현업 오픈소스 DBA. Oracle 및 오픈소스 DB (PostgreSQL, MariaDB 등) 그리고 인프라 전반적인 부분에 대하여 공부하고 있습니다.
  • 큐쿠
    qqollb 님의 블로그
    큐쿠
  • 전체
    오늘
    어제
    • 분류 전체보기 (11)
      • Oracle (8)
      • PostgreSQL (3)
      • Infra (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    shut abort
    리스너
    리스너 패스워드
    oracle to sybase
    이기종 디비링크
    pg 아카이브 모드
    db link 설정
    rman recovery
    이기종 db link
    oracle
    rac node delete
    diag
    rman table recover
    pg 아카이브 설정
    PostgreSQL
    alert log 경로 변경
    alert log
    index usage
    경로 변경
    DB link
    노드 삭제
    싸이베이스
    postgresql 아카이브 설정
    아카미브 설정
    Oracle RMAN
    source build
    오라클
    인덱스 사용 체크
    rac node 삭제
    아카이브 모드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
큐쿠
[Oracle] DB Link 설정
상단으로

티스토리툴바