Oracle meets MS SQL Server – Zugriff von Oracle auf das

Werbung
Datenbank
Oracle meets MS SQL Server –
Zugriff von Oracle auf das Fremdsystem
Vladimir Poliakov, AREVA NP GmbH
Sind Sie ein Oracle DBA oder Entwickler? Läuft Ihre Datenbank auf Linux, aber Ihre Kunden oder Lieferanten arbeiten mit
dem MS SQL Server auf Windows? Möchten Sie das Datentransfer-Verfahren und den Zugriff auf Fremdsysteme vereinfachen? Dann wären Oracle Heterogeneous Services eine mögliche Lösung.
Abbildung 1: Server-Landschaft
Oracle Heterogeneous Services [1] sind
ein Bestandteil des Oracle DatenbankServers und wurden entwickelt, um auf
die Daten in Fremdsystemen ohne großen Aufwand über eine ODBC-Schnittstelle zugreifen zu können. Der Artikel
zeigt anhand eines Beispiels aus der
Praxis, wie man von der Oracle Datenbank die Daten aus einer MS SQL Datenbank lesen beziehungsweise in diese
schreiben kann (siehe Abbildung 1).
Die
Kommunikation
zwischen
Oracle Datenbank und MS SQL Server
erfolgt über ODBC-Schnittstelle und
Oracle Heterogeneous Agent, der vom
Listener gestartet wird. Nach der Listener-Konfigurierung wird der Database
Link zur MS SQL Datenbank erstellt,
damit die Daten mit Oracle SQL-Mitteln bearbeitet werden können.
Konfigurieren einer ODBC-Verbindung
Wie schon gesagt, erfolgt die Kommunikation zwischen der Oracle Daten#
# HS init parameters
#
HS_FDS_CONNECT_INFO = TESTHS
HS_FDS_TRACE_LEVEL = OFF
Listing 1: Konfigurationsdatei des Oracle
Heterogeneous Agents
56 | www.doag.org
bank und MS SQL Server über Oracle
Heterogeneous Agent, der seinerseits
die ODBC-Schnittstelle verwendet.
Deswegen wurden erst auf einem separaten Server B (siehe Abbildung 1) die
ODBC-Treiber installiert und danach
eine ODBC-System-DSN zum MS SQL
Server eingerichtet und getestet (siehe
Abbildung 2).
Da die Oracle Heterogeneous Services ein Bestandteil des Datenbank-Servers sind, muss man auf dem Server B
entsprechende Oracle-Software ohne
irgendeine Datenbank-Instanz installieren. Danach befindet sich die Konfigurationsbeispieldatei im Verzeichnis
„$ORACLE_HOME\hs\admin\“ und
heißt „inithsodbc.ora“. Für den Agent
im Beispiel wurde noch der Name der
Datei im Format „init<DNSODBC>.
ora“ angepasst, wobei „DNSODBC“
mit dem ODBC-System-DSN-Namen
übereinstimmen muss (siehe Abbildung 2). Der Inhalt der Konfigurationsdatei ist in Listing 1 dargestellt.
Konfigurieren des Oracle Listeners
Nachdem der Oracle Heterogeneous
Agent konfiguriert worden ist, wird die
Konfigurationsdatei des Oracle Listeners entsprechend angepasst (siehe Listing 2). Wichtig ist, dass der Listener auf
dem gleichen Server läuft, auf dem der
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = <Server_B_Name>)(PORT =
<Server_B_Listenerport>))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = <Pfad_zum_
ORACLE_HOME_auf_dem_Server_B>)
(SID_NAME = <ODBC_Name_
Abbildung_2>)
(PROGRAM = HSODBC)
)
)
Listing 2: Konfigurationsdatei des Oracle
Listeners
TESTHS_SERVER_B =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = <Server_B_Name>)
(PORT = <listenerport_on_
Server_B>)
)
(CONNECT_DATA = (SID = <SID_
NAME_LISTENER.ORA_Listing_2>))
(HS=OK)
)
Listing 3: Ausschnitt aus der TNSNAMES.
ORA-Datei
Datenbank
Oracle Heterogeneous Agent gestartet
werden soll. In unserem Beispiel ist das
der Server B (siehe Abbildung 1).
Konfigurieren der TNSNAME.ORA-Datei
Der letzte Schritt vor dem Erstellen
des Database-Links ist das Konfigurieren der „TNSNAMES.ORA“. Diese Datei liegt auf dem Datenbank-Server, in
unserem Beispiel Server A (siehe Abbildung 1). Sie wird, wie in Listing 3 gezeigt, angepasst. Der Eintrag (HS=OK)
bezeichnet die Heterogeneous-ServiceVerbindung. Sollte etwas nicht stimmen, kann man das Protokollieren der
Zugriffe (HS_FDS_TRACE_LEVEL = ON
in Listing 1) aktivieren. Die Trace-Dateien findet man dann auf dem Server B (siehe Listing 1) im Verzeichnis
„$ORACLE_HOME\hs\trace\“.
Erstellen des Database-Links
Nachdem Oracle Heterogeneous Services, Listener und TNSNAMES.ORA-Da-
tei konfiguriert sind, können der Database-Link erstellt und die Verbindung
zum MS SQL Server aus SQL*Plus getestet werden (siehe Listing 4).
CREATE DATABASE LINK „TESTHS_
DBLINK“ CONNECT TO „<username>“ IDENTIFIED BY „<password>“
USING ‚TESTHS_SERVER_B‘;
SELECT count(*) FROM table_
name@TESTHS_DBLINK;
Listing 4: Erstellen des Database-Links und
Test der Verbindung
Fazit
Abbildung 2: Einrichten der ODBCSystem-DSN
Referenzen
Oracle Heterogeneous Services vereinfachen die Kommunikation zwischen
Oracle und Fremdsystemen via ODBCSchnittstelle. Anstelle des MS SQL Servers können auch eine Excel-Datei
oder eine MS Access Datenbank [2]
verknüpft sein. Somit ist dieses Verfahren eine Alternative zum SQL*Loader
(etwa beim Transfer der Daten).
[1] Oracle Dokumentation zu Oracle Heterogeneous Services: http://download.oracle.
com/docs/cd/E11882_01/appdev.112/
e10492/toc.htm
[2] Heterogeneous Connectivity: http://
www.muniqsoft.de/tipps/monatstipps/
jahr-2004/januar-2004.htm
Kontakt:
Vladimir Poliakov
[email protected]
2.0
1990 - 2010 | 20 Jahre bessere IT-Beratung
Oracle Senior Consultant
Ihre Aufgaben
■
■
■
■
■
Administration, Konfiguration und Support
von komplexen Datenbanklösungen
Monitoring bestehender DB-Systeme
Backup/Recovery- und Hochverfügbarkeitslösungen
Migrationen
Referententätigkeit im Seminarumfeld
Ihre Qualifikationen
■
■
■
■
■
Sehr gute Oracle-Kenntnisse (Unix/Windows)
Gute Unix-/Windows-Kenntnisse
Mindestens 5 Jahre Erfahrung in der Adminstration
von Oracle Datenbanklösungen
Perfektes Deutsch in Wort und Schrift
Uneingeschränkte Reisebereitschaft innerhalb Deutschlands
Das zeichnet ORDIX aus
Interesse?
■
■
■
■
■
■
Dann senden Sie Ihre Bewerbung mit Angabe Ihrer Gehaltsvorstellung
und dem gewünschten Einstellungstermin an:
Interessante Projekte bei namhaften Kunden
Breites persönliches Aufgabenspektrum
Ausgeprägtes, internes Know-how-Netzwerk
Stetige Weiterbildung, persönliche Förderung
Attraktive Vergütung, Firmen-PKW
Soziale Absicherung
ORDIX AG | Christoph Lafeld | Westernmauer 12 - 16 | 33098 Paderborn
Tel.: 05251/1063-0
Weitere Infos unter www.ordix.de
[email protected]
DOAG News Q3-2010 | 57
Herunterladen