수색…


데이터베이스 링크 만들기

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 문서 :

데이터베이스 링크 만들기

"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