두 오라클 인스턴스 간에 DB 링크를 만드는 방법
두 Oracle 인스턴스 간의 DB 링크 생성 방법.A와 B가 두 가지 예라고 가정해 보겠습니다.인스턴스 A에서 인스턴스 B의 데이터에 액세스하고 싶습니다.
인스턴스 A에서 인스턴스 B의 데이터에 액세스하려는 경우.그러면 쿼리입니다. 각 자격 증명을 편집할 수 있습니다.
CREATE DATABASE LINK dblink_passport
CONNECT TO xxusernamexx IDENTIFIED BY xxpasswordxx
USING
'(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=xxipaddrxx / xxhostxx )
(PORT=xxportxx))
(CONNECT_DATA=
(SID=xxsidxx)))';
이 쿼리 액세스 테이블을 실행한 후
SELECT * FROM tablename@dblink_passport;
DML, DDL, DQL의 모든 작업을 수행할 수 있습니다.
간단한 예로 다음을 참조하십시오.
데이터베이스 링크 생성 _dblink_name__username_에 연결_passwd_에 의해 식별됨'$_ORACLE_SID_' 사용
자세한 내용은 http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm .
DB 링크 생성
CREATE DATABASE LINK dblinkname
CONNECT TO $usename
IDENTIFIED BY $password
USING '$sid';
(참고: sid는 위의 작은 따옴표 사이에 전달됩니다.)
위의 DB 링크에 대한 쿼리 예제
select * from tableA@dblinkname;
insert into tableA(select * from tableA@dblinkname);
db 링크를 만드는 방법은 다음과 같습니다.
- tns 이름 사용:
1단계:
대상 데이터베이스 서비스 세부 정보를 소스의 tns 이름에 추가합니다.
<addressname> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = <hostname of target db>)(Port = <port of target db listener>))
)
(CONNECT_DATA =
(SERVICE_NAME = <service name of target db>)
)
)
2단계:
데이터베이스 연결은 공개 또는 비공개일 수 있습니다.공용 데이터베이스 연결은 모든 사용자가 사용할 수 있는 연결입니다.개인 데이터베이스 링크는 데이터베이스 링크의 소유자만 사용할 수 있습니다.
다음은 개인 및 공용 데이터베이스 링크를 모두 만드는 명령입니다.
공용 데이터베이스 링크
CREATE PUBLIC DATABASE LINK <dbklink name>
CONNECT TO <target db userschemaname>
IDENTIFIED BY <target db userschemapassword>
USING '<addressname defined in tns>';
개인 데이터베이스 링크
개인 DB 링크가 필요한 사용자 스키마에 연결합니다.
CREATE DATABASE LINK <dbklink name>
CONNECT TO <target db userschemaname>
IDENTIFIED BY <target db userschemapassword>
USING '<addressname defined in tns>';
- 전체 연결 문자열을 사용합니다.
CREATE DATABASE LINK dblink
CONNECT TO <target db userschemaname> IDENTIFIED BY <target db userschemapassword>
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname of target db>)(PORT=port of target db listener))
(CONNECT_DATA=(SERVICE_NAME=<service name of target db>))
)';
CDB 구성에 대한 단계가 동일합니다.
DB 링크를 작성한 후 두 인스턴스가 서로 다른 두 데이터베이스에 있는 경우, A 시스템에서 B를 해결하도록 TNS 항목을 설정해야 합니다. 여기를 확인하십시오.
'SID'를 사용하여 PASSWORD로 식별된 사용자 이름에 데이터베이스 링크 이름 연결;
단일 네트워크 연결을 사용하여 여러 사용자가 공유할 수 있는 공용 데이터베이스 링크를 만들려면 SHARED를 지정합니다.SHARED를 지정하는 경우 dblink_authentication 절도 지정해야 합니다.
모든 사용자가 사용할 수 있는 공용 데이터베이스 링크를 만들려면 PUBLIC을 지정합니다.이 절을 생략할 경우, 데이터베이스 연결은 비공개이며 사용자만 사용할 수 있습니다.
CREATE DATABASE LINK remote_db
CONNECT TO remote_username IDENTIFIED BY remote_password
USING '192.168.0.100:1521/orcl';
db_link_name은 데이터베이스 링크에 지정할 이름으로, 사용자 이름과 암호는 원격 데이터베이스에 대한 자격 증명으로, hostname:port/service_name은 원격 데이터베이스에 대한 연결 세부 정보로 바꿉니다.
예를 들어, 원격 데이터베이스가 포트 1521에서 수신 중인 IP 주소 192.168.0.100의 서버에서 호스트되고 서비스 이름이 "orcl"인 경우, 문은 다음과 같습니다.
Oracle Database 링크 쿼리 생성:
CREATE DATABASE LINK "SPLHNDLGLINK"
CONNECT TO "ABCDEF" IDENTIFIED BY "123456"
USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dc05zx21-scan1.internal.sas)
(PORT=1525))(CONNECT_DATA=(SERVICE_NAME=RXPRIORAXTHP)))';
언급URL : https://stackoverflow.com/questions/13267218/how-to-create-a-db-link-between-two-oracle-instances
'source' 카테고리의 다른 글
SQL을 사용하여 테이블의 열 수를 계산하는 방법은 무엇입니까? (0) | 2023.06.15 |
---|---|
Vuex: 상수 대신 돌연변이/작용의 함수 이름을 사용할 수 있습니까? (0) | 2023.06.15 |
는 HttpContent입니다.Async로 읽으시겠습니까? (0) | 2023.06.15 |
numpy 배열 초기화 (0) | 2023.06.15 |
Nodejs vs SignalR: 서버 측 Javascript가 필요한 이유는 무엇입니까? (0) | 2023.06.15 |