Frage

Um wen es reagieren kann, Wir haben Oracle 11g R2 auf einer Redhat Enterprise Linux 5.4 installiert. Wir versuchen, auf einem SQL Server 2005 zu verbinden, nachdem einige Hinweise der Fehler unter Anwendung ist das Ergebnis, das wir bekamen: "ORA-28513 interne Fehler in heterogenem Remote-Agenten".


listener.ora ist wie folgt:

[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 ist wie folgt:

[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 ist wie folgt:

[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

Wir haben eine Setup System dsn bei SQL Server 2005 namens 'dg4msql', um den Treiber als 'SQL Server' gewählt und Server als 'lokale'

Wir freuen uns, ihre Ideen zu hören, dieses Problem zu lösen,

War es hilfreich?

Lösung

Sie scheinen das Gateway für MySQL zu verwenden Set-up statt der Heterogeneous-Gateway (für ODBC-Verbindungen). Hier ist ein Überblick über den Prozess

Auf SQL Server einen Datenbankbenutzer erstellen und gibt es den Lesezugriff auf die Datenbank / Tabellen, die Sie über den Oracle-Datenbank-Link lesen möchten.

Im Gateway zu Hause jede SQL Server-Datenbank Sie zugreifen möchten, sollte eine init.ora haben befindet sich in $ OH / dg4msql / admin in der Form initSID.ora wo sid ist der Name die Datenbank in der Verbindung verwendet werden soll (z initbob.ora), so erstellen

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

Sie müssen nun den neuen sid zu dem listener.ora im Gateway zu Hause unter Verwendung eines zusätzlichen SID_DESC Abschnitts innerhalb des bestehenden SID_LIST hinzufügen, zum Beispiel

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

Sie sollten nun stoppen und starten Sie den Gateway-Hörer so, dass der neue sid wird aktiv. NB ein Nachladen ist nicht genug.

Sie müssen nun den neuen sid in der Datei tnsnames.ora für den Hörer von jedem hinzufügen Datenbank, in der Sie einen Link erstellen werden. Sie dies nicht im Gateway zu Hause tun müssen, es sei denn, es auch eine Home-Datenbank ist, in dem Sie eine Datenbankverknüpfung erstellen wird.

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

Hinweis: Der Host und Port ist für das Gateway nicht für die SQL Server-Datenbank

In jeder Datenbank, die einen Link zu der MS-SQL-Datenbank erfordert, dass Sie eine Datenbank Link zu Ihrem neuen Gateway sid erstellen sollen.

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

Dabei gilt ms-Benutzer und ms-Passwort sind SQL Server-Benutzer Sie gleich zu Beginn erstellt.

Jetzt können Sie die neue Datenbankverbindung testen

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

Sobald Sie diese Arbeiten Sie die initSID.ora Datei verändern können Parameter hinzufügen, um Ihre Verbindung zu entsprechen. Wenn Sie es auf diese Weise tun können Sie ganz einfach hinzufügen und verwalten viele verschiedene Datenbanken über das Gateway.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top