2017-04-05 4 views
0

2 개의 Oracle 데이터베이스에 대한 전체 사용 권한이있는 사용자 이름과 암호가 있습니다. 나는 A와 B에서 데이터베이스 링크를 만들 때, 나는 오류를 볼 :원격 Oracle 11g 링크 된 데이터베이스에서 데이터를 읽지 못함

ALTER SESSION SET CURRENT_SCHEMA = TPMDBO; 

CREATE DATABASE LINK link_to_uat 
CONNECT TO {UAT username} 
IDENTIFIED BY {UAT user password} 
USING '{UAT fqdn}:2053/ocrdev'; 

내가 연결된 서버에 대해 쿼리를 실행하려고 :

SELECT * FROM [email protected]_to_uat; 

내가 나타납니다

ORA-02019: Connection description for remote database not found 

Oracle Sql Developer 및 기타 도구에서 위의 사용자 이름과 암호를 사용하여 원격 데이터베이스에 연결할 수 있지만 오라클은이를 파악할 수 없습니다.

지금 당장이 회사에서 개발 작업을하고있는 모든 컴퓨터를 잠그기 때문에 TNSNames.ora 파일을 수정할 수 없습니다.

내가 사용하여 연결된 서버를 만드는 시도 :

CREATE DATABASE LINK link_to_uat 
CONNECT TO {remote username} 
IDENTIFIED BY {remote user\'s password} 
USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={fqdn})(PORT=2053)))(CONNECT_DATA=SERVER=DEDICATED)(SERVICE_NAME=ocrdev)))'; 

을하지만 분명히 그 나쁜 구문이 있고 난이 얻을 :

ORA-12154: TNS: could not resolve the connect identifier... 

권장하는 모든 작업은 tnsnames.ora 파일을 수정 포함 여기 감옥에서 가능하지 않습니다.

원격 및 로컬 데이터베이스 모두 관리자 권한이 있습니다.

여기에 아쿠아 데이터 스튜디오 내에서 두 서버 내 연결의 스크린 샷입니다 :

UAT Localhost

이 문제를 해결하기 위해 다른 방법이 있나요?

+0

sql 개발자를 사용하여 원격 서버에 연결할 때 사용하는 SID 또는 서비스 이름은 무엇입니까? 또는 당신을 위해 일하는 SQL 개발자 연결 창의 스크린 샷을 제공 할 수 있습니까? – JSapkota

+0

스크린 샷으로 질문을 업데이트했습니다. –

+0

데이터베이스 링크 연결 설명에 서비스 이름 대신'SID = ocrdev'를 사용할 수 있습니다 – JSapkota

답변

0

좋아, 잠시 동안 이걸로 주위를 dinking 후 나는 PUBLIC 링크 된 데이터베이스를 만들어야합니다. 마찬가지로 :

CREATE PUBLIC DATABASE LINK "LINK_TO_PROD" 
    CONNECT TO {username} IDENTIFIED BY {password} 
    USING '(DESCRIPTION =(ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = {prod server})(PORT = 2053))) 
    (CONNECT_DATA = (SERVICE_NAME = orcprd)))'