2011-01-11 3 views
2

누구에게 응답할지, Redhat Enterprise Linux 5.4에 Oracle 11g r2를 설치했습니다. 일부 메모를 적용한 후 Sql Server 2005에 연결하려고하면 다음과 같은 오류가 발생합니다. "ORA-28513 이기종 원격 에이전트의 내부 오류".dg4msql 문제를 사용하여 SQL Server에 Oracle 11gr2 연결


listener.ora를는 아래와 같다 :

[[email protected] admin]$ less listener.ora 
) 
(SID_DESC = 
(SID_NAME = dg4msql) 
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) 
(PROGRAM = dg4msql) 
(ENVS=LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/dg4msql/lib:/u01/app/oracle/product/11.2.0/db_1/lib) 
) 
) 

LOGGING_LISTENER = on 

LISTENER = 
(DESCRIPTION_LIST = 
(DESCRIPTION = 
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521)) 
) 
) 

ADR_BASE_LISTENER = /u01/app/oracle 

TRACE_LEVEL_LISTENER = on 

의 tnsnames.ora은 아래와 같다 :

[[email protected] admin]$ less tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 
# Generated by Oracle configuration tools. 

fasdat = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521)) 
) 
(CONNECT_DATA = 
(SID = fasdat) 
) 
) 
dg4msql = 
(DESCRIPTION = 
(ADDRESS = 
(PROTOCOL= TCP) 
(HOST = oracledb) 
(PORT = 1521) 
) 
(CONNECT_DATA= 
(SID=dg4msql)) 
(HS=OK)) 

init4msql.ora은 아래와 같다 :

[[email protected] admin]$ less initdg4msql.ora 
# This is a customized agent init file that contains the HS parameters 
# that are needed for the Database Gateway for Microsoft SQL Server 

# 
# HS init parameters 
# 
HS_FDS_CONNECT_INFO=192.168.1.48:1433//NAVISION 
# alternate connect format is hostname/serverinstance/databasename 
#HS_FDS_TRACE_LEVEL=0 
HS_FDS_RECOVERY_ACCOUNT=RECOVER 
HS_FDS_RECOVERY_PWD=RECOVER 
#HS_LANGUAGE=turkish_turkey.WE8ISO8859P9 
HS_NLS_NCHAR=WE8ISO8859P9 
#HS_FDS_TRACE_LEVEL=DEBUG 

우리는 설치 'dg4msql'라는 이름은 SQL Server 2005에서 시스템 DSN이 우리는이 문제를 해결하기 위해 어떤 아이디어를 듣고 기쁠

'현지'로 '는 SQL 서버'서버로 드라이버를 선택

+0

skaffman, 포맷 해 주셔서 감사합니다. –

답변

1

이기종 게이트웨이가 아닌 MySQL 설치용 게이트웨이 (ODBC 연결 용)를 사용하는 것 같습니다. 다음은 프로세스 개요입니다

SQL Server에서 데이터베이스 사용자를 만들고 Oracle 데이터베이스 링크를 통해 읽으려는 데이터베이스/테이블에 대한 읽기 권한을 부여하십시오. 홈 게이트웨이는 SID가에서 사용되는 데이터베이스의 이름은 양식 initsid.ora에 $ OH/dg4msql/관리자에 위치한 init.ora의 가 있어야 액세스 할 각 SQL Server 데이터베이스에서

링크 (예 : initbob.ora)는, 그래서 하나

HS_FDS_CONNECT_INFO=msserver1:1234//Example_Database 
HS_FDS_TRACE_LEVEL=OFF 
HS_FDS_RECOVERY_ACCOUNT=RECOVER 
HS_FDS_RECOVERY_PWD=RECOVER 
HS_TRANSACTION_MODEL=READ_ONLY 

이제 예를 들어, 기존의 SID_LIST 내부에 추가 SID_DESC 섹션을 사용하여 게이트웨이 가정에서 listener.ora를 새 SID를 추가해야 만들

(SID_DESC = 
(SID_NAME=bob) 
(ORACLE_HOME=/oracle/gateway/product/11.2.0) 
(ENVS=LD_LIBRARY_PATH=/oracle/gateway/product/11.2.0/dg4msql/driver/lib;/oracle/gateway/product/11.2.0/lib) 
(PROGRAM=dg4msql) 
) 

이제 새 sid가 이 활성화되도록 게이트웨이 수신기를 중지했다가 다시 시작해야합니다. 주의 : 재 장전만으로는 충분하지 않습니다.

이제 링크를 만들 데이터베이스 인 의 수신자에 대해 새 sid를 tnsnames.ora 파일에 추가해야합니다. 게이트웨이 링크를 작성하는 데이터베이스 홈이 아니면 게이트웨이 홈에서이를 수행 할 필요가 없습니다.

bob = 
(DESCRIPTION = 
(ADDRESS = (PROTOCOL = TCP)(HOST = severname.example.com)(PORT = 1690)) 
(CONNECT_DATA = (SID = bob)) 
(HS = OK) 
) 

NB : 호스트 및 포트는 게이트웨이입니다하지 당신의 새로운 게이트웨이에 대한 데이터베이스 링크를 생성해야하는 MS-SQL 데이터베이스에 대한 링크를 필요로하는 SQL Server 데이터베이스 각 데이터베이스에서

에 대한 시드.

MS 사용자 및 MS-암호가 바로 시작에서 만든 SQL Server 사용자입니다
CREATE PUBLIC DATABASE LINK bob 
CONNECT TO "ms_user" IDENTIFIED BY "ms-passwd" USING 'bob'; 

.당신이 당신이 당신의 연결을 맞게 매개 변수를 추가 할 initsid.ora 파일을 변경할 수 있습니다 작업하면

이제 새로운 데이터베이스 링크를

SELECT COUNT(*) FROM "Table_Name"@bob; 

을 테스트 할 수 있습니다. 이런 식으로하면 게이트웨이를 통해 여러 데이터베이스를 쉽게 추가하고 관리 할 수 ​​있습니다.

+0

지연되어서 죄송합니다. 몇 달 동안 계속 쇠약 해졌습니다. 우리는 그것을 해결했지만 어떻게 솔직히 기억하지 못합니까? 솔루션의 하향식 목록이 좋습니다. 걱정 해 주셔서 감사합니다 –

관련 문제