Pregunta

A quien pueda responder a, Hemos instalado Oracle 11g R2 en un RedHat Enterprise Linux 5.4. Estamos tratando de conectarse a un servidor SQL Server 2005, después de aplicar algunas notas el error a continuación es el resultado que conseguimos: "ORA-28513 error interno en agente remoto heterogéneo".


listener.ora es la siguiente:

[oracle@oracledb 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 es la siguiente:

[oracle@oracledb 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 es la siguiente:

[oracle@oracledb 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

Hemos creado un DSN de sistema en SQL Server 2005 llamado 'dg4msql', eligió el conductor como "SQL Server y el servidor como 'local'

estaría contento de escuchar cualquier idea para resolver este problema,

¿Fue útil?

Solución

Estas usando la puerta de enlace para MySQL puesta a punto en lugar de la puerta de enlace Heterogénea (para conexiones ODBC). He aquí un resumen del proceso

En SQL Server crear un usuario de base de datos y le dan acceso de lectura a la base de datos / tablas que desea leer a través del enlace de base de datos Oracle.

En la puerta de entrada a casa cada base de datos de SQL Server que desea acceder debe tener un init.ora situado en $ OH / dg4msql / admin en los initSID.ora formulario donde SID es el nombre de la base de datos a utilizar en el enlace (por ejemplo initbob.ora), de manera a crear un

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

Ahora debe añadir el nuevo SID para los listener.ora en el hogar puerta de enlace mediante una sección SID_DESC adicional dentro de la SID_LIST existente, por ejemplo

(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)
)

Ahora debe detener y reiniciar el oyente puerta de entrada para que el nuevo SID se convierte activo. NB una recarga no es suficiente.

Ahora debe añadir el nuevo SID en el archivo tnsnames.ora para el oyente de cada base de datos en el que desea crear un enlace. No es necesario hacer esto en el hogar puerta de entrada a menos que también es un hogar base de datos en el que desea crear un enlace de base de datos.

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

NB: El host y el puerto son para la puerta de enlace no para la base de datos SQL Server

En cada base de datos que requiere un enlace a la base de datos MS-SQL se debe crear un enlace de base de datos para su nuevo SID puerta de enlace.

CREATE PUBLIC DATABASE LINK bob
CONNECT TO "ms_user" IDENTIFIED BY "ms-passwd" USING 'bob';

donde MS-MS-usuario y la contraseña son el usuario de SQL Server que ha creado desde el principio.

Ahora usted puede probar el nuevo enlace de base de datos

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

Una vez que tenga este trabajo se puede modificar el archivo initSID.ora añadir parámetros para adaptarse a su conexión. Si lo haces de esta manera se puede agregar fácilmente y gestionar muchas bases de datos diferentes a través de la puerta de entrada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top