* 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 |