Oracle Database
데이터베이스 링크
수색…
데이터베이스 링크 만들기
CREATE DATABASE LINK dblink_name
CONNECT TO remote_username
IDENTIFIED BY remote_password
USING 'tns_service_name';
원격 DB는 다음과 같은 방법으로 액세스 할 수 있습니다.
SELECT * FROM MY_TABLE@dblink_name;
연결된 데이터베이스의 개체 이름을 알 필요없이 데이터베이스 링크 연결을 테스트하려면 다음 쿼리를 사용하십시오.
SELECT * FROM DUAL@dblink_name;
연결된 데이터베이스 서비스에 대한 도메인을 명시 적으로 지정하기 위해 도메인 이름이 USING
문에 추가됩니다. 예 :
USING 'tns_service_name.WORLD'
도메인 이름을 명시 적으로 지정하지 않으면 Oracle은 링크가 작성되는 데이터베이스의 도메인을 사용합니다.
데이터베이스 링크 생성을위한 Oracle 문서 :
- 10g : https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm
- 11g : https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm
- 12g : https://docs.oracle.com/database/121/SQLRF/statements_5006.htm#SQLRF01205
데이터베이스 링크 만들기
"ORA1"과 "ORA2"라는 두 개의 데이터베이스가 있다고 가정합니다. 데이터베이스 링크를 사용하여 "ORA1"데이터베이스에서 "ORA2"의 오브젝트에 액세스 할 수 있습니다.
전제 조건 : 개인용 데이터베이스 링크를 작성하려면 CREATE DATABASE LINK
특권이 필요합니다. 개인용 데이터베이스 링크를 작성하려면 CREATE PUBLIC DATABASE LINK
특권이 필요합니다.
* Oracle Net 은 두 인스턴스 모두에 있어야합니다.
데이터베이스 링크를 만드는 방법 :
ORA1에서 :
SQL> create <public> database link ora2 connect to user1 identified by pass1 using <tns name of ora2>;
데이터베이스 링크가 생성되었습니다.
이제 DB 링크가 설정되었으므로 ORA1에서 다음을 실행하여 증명할 수 있습니다.
SQL> Select name from V$DATABASE@ORA2; -- should return ORA2
사용자 user1
이 ORA2에있는 객체에 대한 SELECT
권한을 가지고 있다면 (아래 TABLE1처럼), "ORA1"에서 "ORA2"의 DB 객체에 접근 할 수 있습니다 :
SELECT COUNT(*) FROM TABLE1@ORA2;
사전 requistes :
- 두 데이터베이스가 모두 실행 중이어야합니다 (열린 상태).
- 두 데이터베이스 리스너 모두 실행 중이어야합니다.
- TNS가 올바르게 구성되어야합니다.
- 사용자 user1은 ORA2 데이터베이스에 있어야하며 암호는 확인하고 확인해야합니다.
- 사용자 user1은 적어도
SELECT
권한을 가지고 있거나 ORA2의 오브젝트에 액세스하는 데 필요한 다른 권한이 있어야합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow