Oracle GW / MSSQL Linked Server

Ähnliche Dokumente
ODBC-Verbindungen in Oracle-Datenbanken nutzen

1.1 Datenbankprogramm Oracle für MCIS MDA

Neue Features Oracle Database 12.2 Wann denn endlich?

Verbinde die Welten. Von Oracle auf MySQL zugreifen

Überblick über APEX Carolin Hagemann

<Insert Picture Here> z/os Migration und Integration

Ab Version 10g werden von Oracle alle unwichtigen Accounts automatisch bei der Installation über den grafischen Installer gesperrt.

Oracle Virtual Private Database

Berechnung von Kennzahlen mit der SQL Model Clause

SQL Developer Unit Tests

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Oracle 10g Einführung

Webbasierte Informationssysteme

Oracle Workload für den Mainframe

Praktische SQL-Befehle

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

APEX 5.0 als wertvolle Ergänzung einer SharePoint-Umgebung. Alexej Schneider DOAG 2015

Oracle 10g Einführung

Daniela Reiner. Stuttgart,

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Üben von DDL und DML. Ergebnis:

Installation von ib-normcad 11 unter rz-industriebau 2012

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Unified-E SQL Adapter

Konfiguration der SAP-Oracle-Datenbankschnittstelle

Automatisierte Datenmigration mit dynamischen SQL

Erstellen einer Oracle Instanz für GEOS Pro 2.2

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Aufgabenstellung. Bekannte Lösungsansätze. Die Idee. Native Informix Architektur

HERZLICH WILLKOMMEN. Oracle Fail Safe ein Review Martin Schmitter 17. Oktober 2012

PHP- Umgang mit Datenbanken (1)

Folien php/mysql Kurs der Informatikdienste

Integration von heterogenen Datenbanken mit Oracle

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Oracle 9i Einführung Performance Tuning

Safexpert Oracle Datenbank Konnektor

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Installation von Microsoft SQL Server 2014 Express in Verbindung mit Postbuch

Oracle native json Support. Erste Schritte

Transaktionen. Concurrency Management in MS SQL Server

SQL structured query language

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Wie greifen Sie mit WinCC Runtime Advanced über ein Skript auf eine SQL- Datenbank zu?

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Hier folgt eine kurze Aufstellung über die verwendete Architekur. Die Angaben sind ohne Gewähr für Vollständigkeit oder vollständige Richtigkeit.

Oracle Datenbanken Clonen. aber richtig. Wir kümmern uns!

Inhaltsverzeichnis. Vorwort Teil I Einführung. 1 Einleitung Der Microsoft SQL Server... 19

Performante Verarbeitung großer Datenbanken am praktischem Beispiel

Transaktionsverwaltung

ERSTELLUNG EINES DATENEXPORTS MIT ORGAMAX

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Apex und Datenbanklinks Einsatz in Produktivumgebungen

Oracle Application Express 3 für die schnelle und schlanke Business Intelligence Lösung


Oracle Audit Vault nach einem Jahr

DOAG 2016 Oracle APEX Security

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

DER ORACLE CONNECTION MANAGER (CMAN) ALS FIREWALL FÜR DAS ROUTING VON DATENBANK VERBINDUNGEN

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

HERZLICH WILLKOMMEN. Continuous Database Integration. Andrej Pashchenko Köln,

Oracle 9i Einführung Performance Tuning

SQL. Fortgeschrittene Konzepte Auszug

BusinessPlanner Installationsanleitung

Willkommen. Datenbanken und Anbindung

5.8 Bibliotheken für PostgreSQL

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Upgrade auf APEX 5. 9 Datenbanken, 400 Workspaces, über 1000 Anwendungen ein Erfahrungsbericht Carola

Firebird 2.1 Das freie RDBMS. Robert Dollinger

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS Transaktionen & ACID. Dr. Christian Senger Transaktionen & ACID 1

Wiederholung VU Datenmodellierung

APEX New Features Carola Berzl

FEHLERTOLERANTE LADEPROZESSE IN ORACLE

Übung PL/SQL Trigger Lösungen

SQL (Structured Query Language) Schemata Datentypen

OPENService Dokumentation. Oracle 10.2 Client Installation (Benutzerdefiniert ohne Patch)

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Datenbank und Tabelle mit SQL erstellen

Oracle SQL. Seminarunterlage. Version vom

Transkript:

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

Agenda 1. Oracle Gateway / MS SQL Linked Server, was ist das? 2. Motivation zum Einsatz 3. Setup 4. Verhalten / Features / Bugs 5. Demos 2 9/6/2018

Oracle Gateway / MS SQL Linked Server, was ist das? 3 9/6/2018

Oracle Gateway / MS SQL Linked Server, was ist das? 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=sqlserver-2017) * * * * Ausnahme: Linked Server zwischen zwei SQL Server DBs 4 9/6/2018

Oracle Gateway / MS SQL Linked Server, was ist das? Graphische Darstellung der Kommunikation MSSQL Oracle DB https://docs.microsoft.com/de-de/sql/relational-databases/linked-servers/linked-servers-database-engine 5 9/6/2018

Oracle Gateway / MS SQL Linked Server, was ist das? Graphische Darstellung der Kommunikation Oracle DB - MSSQL Oracle DB Oracle TNS Oracle Gateway für MSSQL Netzwerk MSSQL 6 9/6/2018

Motivation zum Einsatz 7 9/6/2018

Motivation zum Einsatz DB Kommunikation Integration Migration Lizenzkosteneinsparung Datenkonsolidierung 8 9/6/2018

Setup 9 9/6/2018

Setup - Standard Linked Server 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) 10 9/6/2018

Setup - Verfügbare Oracle Gateways 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 11 9/6/2018

Setup Linked Server (1) Aktivierung von Mixed Mode Authentifizierung in der DB-Instanz 12 9/6/2018

Setup Linked Server (2) Installation des Oracle Provider for OLE DB 64 bit (Komponente der benutzerdefinierten Oracle Client-Installation) 13 9/6/2018

Setup Linked Server (3) Die Einstellung der Eigenschaft InProcess für den Oracle OLE DB Provider ist zwingend erforderlich. 14 9/6/2018

Setup Linked Server (4) Neuen Linked Server / Verbindungsserver anlegen 15 9/6/2018

Setup Linked Server (5) Informationen zur Anmeldung der SQL Server Session bei Oracle im Menü Sicherheit 16 9/6/2018

Setup Linked Server (6) Konfiguration der Serveroptionen 17 9/6/2018

Setup Linked Server (6) 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 18 9/6/2018

Setup Linked Server (7) 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 19 9/6/2018

Setup Linked Server (8) 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 20 9/6/2018

Setup Linked Server (9) 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 21 9/6/2018

Setup Oracle Gateway (1) Installationsverzeichnis 22 9/6/2018

Setup Oracle Gateway (2) Produkte 23 9/6/2018

Setup Oracle Gateway (3) Informationen zur SQL Server DB 24 9/6/2018

Setup Oracle Gateway (4) Listener / Tnsnames-Konfiguration 25 9/6/2018

Setup Oracle Gateway (6) Listener Name / Protokoll 26 9/6/2018

Setup Oracle Gateway (7) Listener Port 27 9/6/2018

Setup Oracle Gateway (8) 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 <GW_HOME>\<GWSID>\admin\dg4msql_tx.sql <GW_HOME>\<GWSID>\admin\ initdg4msql.ora Ausnahme: TNS-Dateien (Views) (TX-Log) (Parameter) <GW_HOME>\network\admin\listener.ora, tnsnames.ora, sqlnet.ora 28 9/6/2018

Setup Oracle Gateway (9) 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 29 9/6/2018

Setup Oracle Gateway (10) listener.ora ($GW_HOME\network\admin) LISTENER_GW = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = RKLs-Datenquirl)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) ) ) 30 9/6/2018

Setup Oracle Gateway (11) listener.ora ($GW_HOME\network\admin) SID_LIST_LISTENER_GW = (SID_LIST = (SID_DESC = (SID_NAME = dg4msql) # ohne Endung.exe (PROGRAM = dg4msql) (ORACLE_HOME = C:\app\oragw\product\18.0.0\tghome_1) ) ) 31 9/6/2018

Konfiguration 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. 32 9/6/2018

Konfiguration 33 9/6/2018

Verhalten / Features / Bugs 34 9/6/2018

Verhalten / Features / Bugs Oracle / Gateway (1) (<TG_HOME>\<GW_SID>\admin\initdg4msql.ora HS_FDS_CONNECT_INFO=RKLS-DATENQUIRL/RKLS- DATENQUIRL/AdventureWorks2012 In 12c 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 35 9/6/2018

Verhalten / Features / Bugs Oracle / Gateway (2) (<TG_HOME>\<GW_SID>\admin\initdg4msql.ora HS_FDS_CONNECT_INFO=RKLS-DATENQUIRL//AdventureWorks2012 behebt das Problem In 12c 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 In 12c HS_FDS_RECOVERY_PWD = * Verschlüsselungstool <TG_HOME>\BIN\dg4pwd.exe 36 9/6/2018

Verhalten / Features / Bugs Oracle / Gateway (3) 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 37 9/6/2018

Verhalten / Features / Bugs Oracle / Gateway (4) 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 38 9/6/2018

Verhalten / Features / Bugs MSSQL / Linked Server (1) 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 39 9/6/2018

Verhalten / Features / Bugs MSSQL / Linked Server (2) Default Authentifizierung: OS Mengendifferenz except statt minus 40 9/6/2018

Demos 41 9/6/2018

Demo 1: SQL Statements SQL Server Oracle 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') 42 9/6/2018

Demo 2: SQL Statements SQL Server Oracle 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') 43 9/6/2018

Demo 3: SQL Statements SQL Server Oracle 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; 44 9/6/2018

SQL Statements Oracle MSSQL Server Ü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 45 9/6/2018

Demo 4: SQL Statements Oracle SQL Server Demo: Anlegen einer lokalen Kopie einer SQL Server Tabelle Mengendifferenzbildung SQLSRV Datensätze - kopierte Datensätze Timing Mengendifferenzbildung 46 9/6/2018

Rainer Klomps Senior Consultant Tel. +49 162 292 34 36 Rainer.klomps@trivadis.com 47 9/6/2018