DBLINK 란?
- 의미 그대로 다른 데이터 베이스에서 접속할 수 있는 링크
- DML 문에서 "FROM 테이블명@DB링크" 형식으로 사용하여, 다른 DB 쿼리 수행 가능
- 다른 DB에 특정 유저에 대한 링크를 만들어 해당 스키마에 테이블을 접근하는 기술
접근 제한
- 접근 제한자(PUBLIC/PRIVATE)가 존재
- PUBLIC 모든 유저가 사용가능한 공통 링크를 만들때 지정
- PRIVATE 특정 유저만 사용가능한 DB 링크를 만들때 지정
DBLINK 관련 뷰
- DBA_DB_LINKS all database link
- USER_DB_LINKS by current user database link
OWNER | VARCHAR2(128) | NOT NULL | Owner of the database link |
DB_LINK | VARCHAR2(128) | NOT NULL | Name of the database link |
USERNAME | VARCHAR2(128) | Name of the user when logging in | |
HOST | VARCHAR2(2000) | Oracle Net connect string | |
CREATED | DATE | NOT NULL | Creation time of the database link |
HIDDEN | VARCHAR2(3) | For internal use only |
DB LINK 생성
- PUBLIC 형태
SQL> CREATE PUBLIC DATABASE LINK 링크이름
CONNECT TO <연결하고자 하는 user>IDENTIFIED BY <연결하고자 하는 user password>
USING '원격 db alias'
- PRIVATE 형태
SQL> CREATE DATABASE LINK 링크이름
CONNECT TO <연결하고자 하는 user>IDENTIFIED BY <연결하고자 하는 user password>
USING '원격 db alias'
DBLINK 삭제
- PUBLIC 형턔
DROP PUBLIC DATABASE LINK [링크이름];
- PRIVATE 형태
(1) 해당 유저에 접속할 수 있는 경우
DROP DATABASE LINK [링크이름];
(2) 해당 유저에 접속할 수 없는 경우
- drop 시 database link not found ORA-022024 에러발생
--create procedure
CREATE OR REPLACE [OWNER].DROP_DB_LINKS
BEGIN
EXECUTE IMMEDIATE 'DROP DATABASE LINKE [링크이름]';
EXECUTE IMMEDIATE 'DROP DATABASE LINKE [링크이름]';
EXECUTE IMMEDIATE 'DROP DATABASE LINKE [링크이름]';
...
END [OWNER].DROP_DB_LINKS;
/
--execute
EXEC [OWNER].DROP_DB_LINKS;
--drop
DROP PROCEDURE [프로시저명];
'DB > Oracle' 카테고리의 다른 글
[TS] ORA-01449 & PK 컬럼추가(PK 재생성) (0) | 2023.12.18 |
---|---|
[Tuning] 오라클 힌트(Hint) 개념 및 사용 방법 (0) | 2023.07.24 |
[MIG] Oracle 12c rac to single clond DB (수정중) (0) | 2023.04.14 |
[RAC] RAC 환경 Archive log mode 변경 (0) | 2023.04.07 |
[SQL] 처리중인 SQL 쿼리문 진행 상황 확인 (0) | 2023.03.24 |