Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1....

47
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Oracle GW / MSSQL Linked Server Setup und Besonderheiten Rainer Klomps

Transcript of Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1....

Page 1: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF

HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH

Oracle GW / MSSQL Linked ServerSetup und Besonderheiten

Rainer Klomps

Page 2: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Agenda

Oracle RDBMS vs. SQL Server2 9/6/2018

1. Oracle Gateway / MS SQL Linked Server, was ist das?

2. Motivation zum Einsatz

3. Setup

4. Verhalten / Features / Bugs

5. Demos

Page 3: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle RDBMS vs. SQL Server3 9/6/2018

Oracle Gateway / MS SQL Linked

Server, was ist das?

Page 4: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle Gateway / MS SQL Linked Server, was ist das?

Oracle RDBMS vs. SQL Server4 9/6/2018

Vergleichbar mit DB-Links in Oracle

Kommunikationsmittel zwischen Datenbanken unterschiedlicher Hersteller *

* Linked Server ist – wie einige andere SQL Server Features - unter Linux nicht

verfügbar

(vgl. https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes?view=sql-

server-2017) * *

* * Ausnahme: Linked Server zwischen zwei SQL Server DBs

Page 5: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle Gateway / MS SQL Linked Server, was ist das?

Oracle RDBMS vs. SQL Server5 9/6/2018

Graphische Darstellung der Kommunikation MSSQL – Oracle DB

https://docs.microsoft.com/de-de/sql/relational-databases/linked-servers/linked-servers-database-engine

Page 6: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle Gateway / MS SQL Linked Server, was ist das?

Oracle RDBMS vs. SQL Server6 9/6/2018

Graphische Darstellung der Kommunikation Oracle DB - MSSQL

Oracle DB NetzwerkOracle TNS Oracle Gateway für MSSQL MSSQL

Page 7: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle RDBMS vs. SQL Server7 9/6/2018

Motivation zum Einsatz

Page 8: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Motivation zum Einsatz

Oracle RDBMS vs. SQL Server8 9/6/2018

DB Kommunikation

Integration

Migration

Lizenzkosteneinsparung

Datenkonsolidierung

Page 9: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle RDBMS vs. SQL Server9 9/6/2018

Setup

Page 10: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup - Standard Linked Server

Oracle RDBMS vs. SQL Server10 9/6/2018

– Bestandteil der SQL Server Installation

• OLE DB Provider für Microsoft Directory Services (ADsDSOObject)

• OLE DB Simple Provider (MSDAOSP)

• Microsoft OLE DB Provider for ODBC Drivers (MSDASQL)

• Microsoft OLE DB Provider for Analysis Services 14.0 (MSOLAP)

• Microsoft OLE DB Provider for Search (Search.CollatorDSO)

• SQL Server Native Client 11.0 (SQLNCLI11)

• Microsoft OLE DB Provider for SQL Server (SQLOLEDB)

• OLE DB Provider for SQL Server Integration Services (SSISOLEDB)

Page 11: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup - Verfügbare Oracle Gateways

Oracle RDBMS vs. SQL Server11 9/6/2018

– Die folgenden Gateways sind im Rahmen der Oracle Gateway Installation

auswählbar

– Oracle Database Gateway für

▪ Informix

▪ Sybase

▪ MS SQL Server

▪ Teradata

▪ APPC (advanced program to

program communication IBM

mainframe)

▪ WebSphere MQ

▪ ODBC (keine Lizenzkosten,kein

Support)

▪ DRDA (Distributed Relational

Database Architecture)

▪ Oracle Provider for DRDA

Page 12: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (1)

Oracle RDBMS vs. SQL Server12 9/6/2018

– Aktivierung von Mixed Mode Authentifizierung in der DB-Instanz

Page 13: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (2)

Oracle RDBMS vs. SQL Server13 9/6/2018

– Installation des Oracle Provider for OLE DB 64 bit (Komponente der

benutzerdefinierten Oracle Client-Installation)

Page 14: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (3)

Oracle RDBMS vs. SQL Server14 9/6/2018

– Die Einstellung der Eigenschaft „InProcess“ für den Oracle OLE DB Provider ist

zwingend erforderlich.

Page 15: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (4)

Oracle RDBMS vs. SQL Server15 9/6/2018

– Neuen Linked Server / „Verbindungsserver“ anlegen

Page 16: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (5)

Oracle RDBMS vs. SQL Server16 9/6/2018

– Informationen zur Anmeldung der SQL Server Session bei Oracle im Menü

„Sicherheit“

Page 17: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (6)

Oracle RDBMS vs. SQL Server17 9/6/2018

– Konfiguration der Serveroptionen

Page 18: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (6)

Oracle RDBMS vs. SQL Server18 9/6/2018

USE [master]

GO

EXEC master.dbo.sp_addlinkedserver @server =

N'MSSQL_2_P_GWDEMO', @srvproduct=N'',

@provider=N'OraOLEDB.Oracle‘,

@datasrc=N'RKLs-Datenquirl/p_gwdemo'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'collation compatible', @optvalue=N'false'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'data access', @optvalue=N'true'

GO

Page 19: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (7)

Oracle RDBMS vs. SQL Server19 9/6/2018

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'dist', @optvalue=N'false'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'pub', @optvalue=N'false'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'rpc', @optvalue=N'true'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'rpc out', @optvalue=N'true'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'sub', @optvalue=N'false'

GO

Page 20: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (8)

Oracle RDBMS vs. SQL Server20 9/6/2018

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'connect timeout', @optvalue=N'0'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'collation name', @optvalue=null

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'lazy schema validation', @optvalue=N'false'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'query timeout', @optvalue=N'0'

GO

Page 21: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Linked Server (9)

Oracle RDBMS vs. SQL Server21 9/6/2018

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'use remote collation', @optvalue=N'true'

GO

EXEC master.dbo.sp_serveroption @server=N'MSSQL_2_P_GWDEMO',

@optname=N'remote proc transaction promotion', @optvalue=N'true'

GO

USE [master]

GO

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname =

N'MSSQL_2_P_GWDEMO', @locallogin = NULL , @useself = N'False',

@rmtuser = N‘scott', @rmtpassword = N‘tiger'

GO

Page 22: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (1)

Oracle RDBMS vs. SQL Server22 9/6/2018

Installationsverzeichnis

Page 23: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (2)

Oracle RDBMS vs. SQL Server23 9/6/2018

Produkte

Page 24: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (3)

Oracle RDBMS vs. SQL Server24 9/6/2018

Informationen zur SQL Server DB

Page 25: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (4)

Oracle RDBMS vs. SQL Server25 9/6/2018

Listener / Tnsnames-Konfiguration

Page 26: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (6)

Oracle RDBMS vs. SQL Server26 9/6/2018

Listener Name / Protokoll

Page 27: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (7)

Oracle RDBMS vs. SQL Server27 9/6/2018

Listener Port

Page 28: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (8)

Oracle RDBMS vs. SQL Server28 9/6/2018

Für das Gateway muss eine Oracle SID eingerichtet werden (Default: dg4msql)

Für jede Verbindung und für jede Kombination von Gateway-Parametern muss es

eine separate SID („GWSID“) geben.

Die zu einer GWSID gehörenden Konfigurationsdateien befinden sich unter

<GW_HOME>\<GWSID>, also beispielsweise

C:\app\oragw\product\18.0.0\tghome_1\dg4msql

<GW_HOME>\<GWSID>\admin\dg4msql_cvw.sql (Views)

<GW_HOME>\<GWSID>\admin\dg4msql_tx.sql (TX-Log)

<GW_HOME>\<GWSID>\admin\ initdg4msql.ora (Parameter)

Ausnahme: TNS-Dateien

<GW_HOME>\network\admin\listener.ora, tnsnames.ora, sqlnet.ora

Page 29: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (9)

Oracle RDBMS vs. SQL Server29 9/6/2018

Die 12c Gateway-Installation änderte die TNS-Einstellungen, so dass der Listener

aus dem neuen GW_HOME verwendet wurde (18c OK)

Pflege der Dateien listener.ora, tnsnames.ora und sqlnet.ora damit bei 12c in

GW_HOME

In der master-DB von SQL Server muss eine Tabelle zur Unterstützung des Two-

Phase-Commit angelegt werden (<TG_HOME>\<GW_SID>\admin\dg4msql_tx.sql)

Im Zielschema des DB-Links müssen Views zum Zugriff auf Spalten-Informationen

angelegt werden (<TG_HOME>\<GW_SID>\admin\dg4msql_cvw.sql)

– "dbo"."ALL/USER_CONS_COLUMNS_vw“

– "dbo"."ALL /USER _IND_COLUMNS_vw“

Page 30: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (10)

Oracle RDBMS vs. SQL Server30 9/6/2018

listener.ora ($GW_HOME\network\admin)

LISTENER_GW =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = RKLs-Datenquirl)(PORT = 1522))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))

)

)

Page 31: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Setup Oracle Gateway (11)

Oracle RDBMS vs. SQL Server31 9/6/2018

listener.ora ($GW_HOME\network\admin)

SID_LIST_LISTENER_GW =

(SID_LIST =

(SID_DESC =

(SID_NAME = dg4msql)

(PROGRAM = dg4msql)

(ORACLE_HOME = C:\app\oragw\product\18.0.0\tghome_1)

)

)

# ohne Endung .exe

Page 32: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Konfiguration

Oracle RDBMS vs. SQL Server32 9/6/2018

Zur Konfiguration der Dateien listener.ora, tnsnames.ora, init<GW_SID>.ora und des

DB-Links bietet Oracle Support unter Doc ID 1351616.1 ein Tool an, das nach

Eingabe der benötigten Parameter die entsprechenden Dateien / das Statement für

den DB-Link generiert.

Page 33: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Konfiguration

Oracle RDBMS vs. SQL Server33 9/6/2018

Page 34: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle RDBMS vs. SQL Server34 9/6/2018

Verhalten / Features / Bugs

Page 35: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

Oracle / Gateway (1)

Oracle RDBMS vs. SQL Server35 9/6/2018

(<TG_HOME>\<GW_SID>\admin\initdg4msql.ora

– HS_FDS_CONNECT_INFO=RKLS-DATENQUIRL/RKLS-

DATENQUIRL/AdventureWorks2012

– select user from dual@sqlsrv

– FEHLER in Zeile 1:

– ORA-28500: Verbindung von ORACLE zu Fremdsystem gab diese Nachricht zurück:

– HS_FDS_CONNECT_INFO='RKLS-DATENQUIRL'/'RKLS-DATENQUIRL'/AdventureWorks2012

– [Oracle][ODBC SQL Server Wire Protocol driver]General error. select failed: 0

– {HY000}

– ORA-02063: vorherige 2 lines von SQLSRV

In 12c

Page 36: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

Oracle / Gateway (2)

Oracle RDBMS vs. SQL Server36 9/6/2018

(<TG_HOME>\<GW_SID>\admin\initdg4msql.ora

– HS_FDS_CONNECT_INFO=RKLS-DATENQUIRL//AdventureWorks2012

behebt das Problem

Unix-Pfad bei HS_FDS_TRACE_FILE_NAME

– HS_FDS_TRACE_FILE_NAME=C:/app/oracle/product/12.1.0/tghome_1/hs/trace/

dblink_trace.txt

HS_FDS_RECOVERY_ACCOUNT / HS_FDS_RECOVERY_PWD

– Default: Password unverschlüsselt

HS_FDS_RECOVERY_PWD = * Verschlüsselungstool

<TG_HOME>\BIN\dg4pwd.exe

In 12c

In 12c

Page 37: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

Oracle / Gateway (3)

Oracle RDBMS vs. SQL Server37 9/6/2018

Oracle puffert die Metadaten verwendeter Objekte

Wird ein Objekt nach der Verwendung von Oracle auf SQL Server Seite strukturell

geändert, ist die alte Struktur weiter präsent und es kommt zu Fehlermeldungen

Abhilfe: Rollback!!!

Transaktionen werden durch explizites commit abgeschlossen

Page 38: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

Oracle / Gateway (4)

Oracle RDBMS vs. SQL Server38 9/6/2018

Die Gateway-Installation ändert die TNS Umgebung, so dass der Listener aus dem

neuen GW_HOME verwendet wird (12c, 18c OK)

Dem entsprechend müssen Konfigurationen der TNS-Parameterdateien im GW-

Home durchgeführt werden (12c, 18c OK)

Default Authentifizierung: DB

Page 39: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

MSSQL / Linked Server (1)

Oracle RDBMS vs. SQL Server39 9/6/2018

Transaktionen werden implizit nach jedem DML-Statement abgeschlossen

Transaktionsverhalten entsprechend Oracle möglich mit

• set xact_abort on

• begin distributed transaction

• …

• go

Für alle OLE DB Provider inkl. SQL Server erforderlich, außer, wenn der OLE DB

Provider geschachtelte Transaktionen zulässt

Page 40: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Verhalten / Features / Bugs

MSSQL / Linked Server (2)

Oracle RDBMS vs. SQL Server40 9/6/2018

Default Authentifizierung: OS

Mengendifferenz „except“ statt „minus“

Page 41: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Oracle RDBMS vs. SQL Server41 9/6/2018

Demos

Page 42: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Demo 1: SQL Statements SQL Server Oracle

Oracle RDBMS vs. SQL Server42 9/6/2018

Demo: Benutzung der üblichen SQL-Server Syntax

Vorteil: relativ einfach

Nachteil: SQL Server holt sich die Daten vom Linked Server (hier Oracle) und führt

die Abfrage aus relativ langsam, insbesondere bei Joins

insert into [MSSQL_2_P_GWDEMO]..[RKL].[DEMO_1] values(1,'Erste Zeile')

Page 43: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Demo 2: SQL Statements SQL Server Oracle

Oracle RDBMS vs. SQL Server43 9/6/2018

Demo: Benutzung der openquery Syntax

Vorteil: pass-through query, Abfragen werden auf dem Linked Server ausgeführt,

schneller, insbesondere bei größeren Joins oder relativ kleiner Ergebnismenge

Nutzung existierender Indizes auf dem Linked Server

Es werden nur die Ergebnisse der Abfrage zurückgeliefert

insert into openquery ( MSSQL_2_P_GWDEMO, 'select * from DEMO_2 where 0=1')

values (1,'Erste Zeile')

Page 44: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Demo 3: SQL Statements SQL Server Oracle

Oracle RDBMS vs. SQL Server44 9/6/2018

Demo: Direktes Übertragen von Statements an Oracle mittels exec()

Vorteil: Der komplette in der exec-Klammer stehende String wird 1:1 an Oracle zur

Bearbeitung übergeben

– Performance

Keine Einschränkung auf DML-Statements, auch DDL, DCL, TCL sind möglich

PL/SQL ist ebenfalls möglich

exec ('create table demo_3( id number, contents varchar2(20))') at

MSSQL_2_P_GWDEMO;

Page 45: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

SQL Statements Oracle MSSQL Server

Oracle RDBMS vs. SQL Server45 9/6/2018

Übliche, von der Verwendung von Datenbank-Links her bekannte Syntax

Einige von Oracle her bekannte Tabellen/Views werden vom Gateway simuliert

Beispiele:

– dual

– all/dba_users

– user/all/dba_cons_columns

Page 46: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Demo 4: SQL Statements Oracle SQL Server

Oracle RDBMS vs. SQL Server46 9/6/2018

Demo: Anlegen einer lokalen Kopie einer SQL Server Tabelle

Mengendifferenzbildung SQLSRV Datensätze - kopierte Datensätze

Timing Mengendifferenzbildung

Page 47: Oracle GW / MSSQL Linked Server - doag.org€¦ · Agenda 2 9/6/2018 Oracle RDBMS vs. SQL Server 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3.

Rainer Klomps

Senior Consultant

Tel. +49 162 292 34 36

[email protected]

9/6/2018 Oracle RDBMS vs. SQL Server47