■ DB Link(Database Link)란?
-. 데이터베이스 링크(Database Link, 이하 DB Link)는 다음 조건을 만족하는 데이터베이스 서버들을 연동하여,
사용자 요구가 있을 때 각 데이터베이스 서버의 개별 자료를 통합, 처리하는 기술이다.
-. 연동되는 데이터베이스 서버들은 다음과 같은 조건을 만족해야 한다.
① 상호 논리적인 관계로 구성
② 컴퓨터 통신망에 연결
③ 지역적인 분리
-. 논리적인 관계가 있다는 것은 개별 서버에 분산된 데이터들이 서로 상관 관계를 가지고 있어야 하고,
연산에 필요한 권한 등이 부여되어 있다는 것을 의미한다.
(개별 서버에 분산된 데이터 원본들을 한곳으로 모았을 경우, 데이터가 중앙집중적으로(Centralized) 구성될 수 있어야 한다.)
-. 네트워크에 연결된다는 것은 하드웨어와 소프트웨어를 통하여 서로 접근이 가능한 상태를 의미한다.
(그 범위는 가깝게는 인트라넷 혹은 동일 서브넷이며 멀리는 WAN 또는 인터넷이다.)
-. 지역적으로 분리되었다는 것은 데이터 서비스를 제공하는 주체, 즉 데이터베이스 서버가 서로 독립적으로 동작이 가능하도록 구축되었다는 의미이다.
(근거리에 위치한 하드웨어 플랫폼에서 개별적으로 구성된 사이트까지 포함한다.)
01. system 계정으로 접근하여 DB_Link에 붙을 사용자 ID에 권한을 부여한다.
풀이 |
GRANT CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK TO 사용자 이름; |
예제 |
GRANT CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK TO scott; |
출력결과 |
02. Oracle 설치 경로의 'tnsnames.ora'파일을 텍스트 편집기로 오픈한다.
(경로 : C:\oracle\product\10.2.0\db_1\network\ADMIN)
03. 로컬 'A' DB의 tnsnames.ora 파일에 원격지 'B'DB 접속 정보를 추가한다.
풀이 |
서비스 이름 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 원격 서버 IP Address)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = PLSExtProc) (SERVICE_NAME = 원격서버 접속이름)) ) ) |
예제 |
LINK_NAME = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 00.00.000.00)(PORT = 1521)) (CONNECT_DATA = (SERVER = PLSExtProc) (SERVICE_NAME = LINKNAME) ) ) |
04. DB Link 연결 여부 확인하기.
풀이 |
SQL> SQLPLUS 원격서버 사용자 ID / 원격서버 사용자 Password @ 서비스 이름 |
예제 |
SQL> SQLPLUS control_id(가제) / control_pw(가제) @ LINK_NAME |
출력결과 |
05 - 1. DB Link 설정 명령
설정 |
CREATE [PUBLIC] DATABASE LINK DB LINK 이름 CONNECT TO 원격서버 사용자 ID IDENTIFIED BY 원격서버 사용자 Password USING '서비스 이름' |
예 |
CREATE [PUBLIC] DATABASE LINK db_link CONNECT TO control_id(가제) IDENTIFIED BY control_pw(가제) USING 'LINK_NAME' |
출력결과 |
☞ DB Link 연결시 ORA-01017, ORA-02063 에러 발생한 경우...
05 - 2. tnsnames.ora 설정 없이 DB Link를 설정하는 방법
풀이 |
CREATE [PUBLIC] DATABASE LINK DB LINK 이름 CONNECT TO 원격서버 사용자 ID IDENTIFIED BY 원격서버 사용자 Password USING ' (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 원격 서버 IP Address)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = PLSExtProc) (SERVICE_NAME = 원격서버 접속이름)) ) ) ' |
예제 |
CREATE [PUBLIC] DATABASE LINK db_link CONNECT TO scott IDENTIFIED BY tiger USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 00.00.000.00)(PORT = 1521)) (CONNECT_DATA = (SERVER = PLSExtProc) (SERVICE_NAME = LINKNAME) ) ' |
출력결과 |
05. DB Link 사용
풀이 |
SELECT * FROM 원격 DB 테이블명@DB LINK 이름 |
예제 |
SELECT * FROM emp@db_link |
출력결과 |
06. DB Link 삭제
풀이 |
DROP DATABASE LINK DB LINK 이름 |
예제 |
DROP DATABASE LINK db_link |
출력결과 |
'[DATABASE]' 카테고리의 다른 글
[참고][Oracle] OGG란? CDC솔루션 쓰는 이유!! (116) | 2024.01.25 |
---|---|
Query 작성시 사용하면 좋은 습관 (0) | 2022.07.24 |
[AWS] [DB] MSSQL DBLink(디비링크) 방법 (0) | 2022.07.12 |
ORACLE DB LINK for AWS (0) | 2022.07.12 |
댓글