HOW TO Author: Martin Decker Date: 08.10.2008 Subject: Installation von Oracle Transparent Gateway for MS SQL 10gR2 Installation von Oracle Transparent Gateway 10gR2 Download von 10201_gateways_win32.zip von http://download.oracle.com/otn/nt/oracle10g/10201/10201_gateways_win32.zip HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 1 of 8 Microsoft SQL Server: mssql01 (physischer Host) Microsoft SQL Database: msdb01 HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 2 of 8 HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 3 of 8 c:\Program Files\Oracle\Inventory\logs\installActions2006-01-17_10-32-50AM.log HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 4 of 8 Review des OUI Logfiles c:\Program Files\Oracle\Inventory\logs\installActions200601-17_10-32-50AM.log. Konfiguration: • • • Es soll auf 2 MS SQL Datenbanken auf dem Server mssql01 zugegriffen werden: msdb01 und msdb02 Der Username ist für beide mdecker Das Passwort ist bekannt. Es müssen zwei TG4MSQL Instanzen definiert werden. Eine Instanz kann nur auf eine Datenbank zugreifen. SID msdb01 SID msdb02 OTG Listener.ora in ORACLE GATEWAY HOME: LISTENER_OTG = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = otghost1.intra)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) SID_LIST_LISTENER_OTG = (SID_LIST = (SID_DESC = (SID_NAME = msdb01) (ORACLE_HOME = C:\oracle\otg10gR2) HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 5 of 8 (PROGRAM = tg4msql) ) (SID_DESC = (SID_NAME = msdb02) (ORACLE_HOME = C:\oracle\otg10gR2) (PROGRAM = tg4msql) ) (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oracle\otg10gR2) (PROGRAM = extproc) ) ) Restart des Listeners: HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 6 of 8 Konfiguration von tnsnames.ora in RDBMS Home: MSDB01 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = otghost1.intra)(PORT = 1522)) ) (CONNECT_DATA = (SID = MSDB01) ) (HS=OK) ) MSDB02 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = otghost1.intra)(PORT = 1522)) ) (CONNECT_DATA = (SID = MSDB02) ) (HS=OK) ) Init.ora´s in ORACLE GATEWAY HOME: $ORACLE_HOME/tg4msql/admin/initmsdb01.ora: HS_FDS_CONNECT_INFO=MSSQL01.msdb01 HS_FDS_TRACE_LEVEL=ON HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER HS_FDS_TRANSACTION_MODEL=READ_ONLY $ORACLE_HOME/tg4msql/admin/initmsdb02.ora: HS_FDS_CONNECT_INFO= MSSQL01.msdb02 HS_FDS_TRACE_LEVEL=ON HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER HS_FDS_TRANSACTION_MODEL=READ_ONLY Database links im Benutzer-Schema connect mdecker CREATE DATABASE LINK MSDB01 CONNECT TO “mdecker” identified by password USING MSDB01; CREATE DATABASE LINK MSDB02 CONNECT TO “mdecker” identified by password USING MSDB02; Tests: HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 7 of 8 SQL> select count(*) from demo@MSDB01; COUNT(*) ---------4045 Problem: Die System-Tabellen können nicht abgefragt werden. herausgefunden werden, welche Tabellen existieren: Es kann leider nicht SQL*Plus: Release 9.2.0.1.0 - Production on Mi Jan 18 11:07:13 2006 Copyright (c) 1982, 2002, Oracle Corporation. reserved. All rights Kennwort eingeben: Verbunden mit: Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production SQL> select count(*) from user_tables@PVPROD; ERROR: ORA-00600: internal error code, arguments: [733], [33686080], [top uga heap], [], [], [], [], [] Es wurden keine Zeilen ausgewõhlt SQL> Es wurde ein TAR eröffnet mit dem Ergebnis, dass dieses Problem beim 10g Gateway in Verbindung mit 9iR2 Datenbank auftritt. Sobald das Oracle RDMBS auf 10g migriert wurde, ist das Problem behoben. Fazit: Beim Test traten sehr viele Stabilitätsprobleme auf. Es hat sich bewährt, Materialized Views in Oracle anzulegen und die Tabellen regelmäßig von MS SQL zu refreshen. HowTo_Installation_von_Oracle_Transparent_Gateway_for_MS_SQL.pdf Page 8 of 8