Last Updated on 1월 21, 2024 by Jade(정현호)
tnsnames.ora 수정
# 2020/11/21 업데이트
먼저 dblink 를 생성 전 tnsnames.ora 에서 추가합니다
리눅스 기준
$ORACLE_HOME/network/admin 의 위치에 tnsnames.ora 파일이 있습니다
db_alias =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 접속하는곳IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 접속대상DB의 SID)
)
)
db_alias 를 testdb2 로 지정하고 접속할 주소는 testdb2.com 이며 해당 db SID가 orcl 이라면 아래와 같이 추가해주면 됩니다
testdb2=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = testdb2.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
DB LINK 생성
# DBLINK 생성 구문
SQL> CREATE [PUBLIC] DATABASE LINK link_name
[CONNECT TO CURRENT_USER]
[USING 'connect_string']
SQL> CREATE DATABASE LINK 링크이름
CONNECT TO <연결하고자 하는 user>
IDENTIFIED BY <연결하고자 하는 user password>
USING '원격 db alias'
위와 같이 생성하면 되며 기본적으로 DB LINK를 생성한 유저만 이용이 가능합니다.
아래와 같이 public 옵션이 들어가면 누구나 이용 가능하게 됩니다.
SQL> CREATE PUBLIC DATABASE LINK 링크이름
CONNECT TO <연결하고자 하는 user>
IDENTIFIED BY <연결하고자 하는 user password>
USING '원격 db alias'
삭제할 때 에도 생성된 형태에 따라 삭제 방법이 약간 다릅니다
누구나 사용이 가능한 public 형태 라면
SQL> drop public database link db_link이름;
생성된 사용자만 이용 가능한 private 하게 되어 있다면 해당유저로 접속해서
drop database link db_link이름;
하면 됩니다
DBLINK 생성 권한
일반유저에게 Private DB LINK 생성권한 부여
SQL> grant create database link to 유저명;
Public 으로 생성할 수 있는 권한 부여
SQL> grant create public database link to 유저명;
dba_db_links dictionary 에서 자세한 내용 조회 가능합니다
SQL> select * from dba_db_links;
사용법은 다음 과 같습니다.
select 컬럼명 from 테이블명@db_link명

Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io