DB/Oracle

[Oracle] DBLink @

고구마_왕 2023. 10. 11. 19:56

이름에서 유추가능하듯 각기 서로 다른 DB를 연결해주는 기능으로,

Table명 바로 뒤 @를 이용하여 DBLinkID를 붙혀주어 사용한다.

이때 DBLinkID는 DB의 로그인 아이디가 아닌 별도로 설정한 LinkID가 들어간다.

select * from table@DBLinkID

 

DBLinkID를 생성하는 방법

1. TNSNAME.org에 DB의 정보가 저장되어있다면 USING으로 해당 별칭으로 호출 하여 생성할 수 있다.

CREATE  PUBLIC DATABASE LINK ${DBLinkID}         --사용될 DBLink ID
	CONNECT TO ${Remote_DB_ID}  		 --원격으로 접속할 사용자 ID
    IDENTIFIED BY "${password}" 	 	 --원격으로 접속할 사용자 PW
    USING ${tnsname};		 	  	 --tnsname에 기록되어 불러올 정보, 별칭

 

 

2. TNSNAME.org에 DB정보가 없다면

CREATE  PUBLIC DATABASE LINK ${DBLinkID}         --사용될 DBLink ID
	CONNECT TO ${Remote_DB_ID}  		 --원격으로 접속할 사용자 ID
    IDENTIFIED BY "${password}" 	 	 --원격으로 접속할 사용자 PW
    USING '(DESCRIPTION =
               (ADDRESS_LIST =
                   (ADDRESS = (PROTOCOL = TCP)(HOST = ${IP})(PORT = ${PORTNum}))
                )
                (CONNECT_DATA =
                    (SID = ${DBname})
                )
            )';					 --tnsname에 기록되어 불러올 정보, 별칭