Oracle Workspace Manager Datenversionierung mit Apex kombinieren

Ähnliche Dokumente
Evaluierung der Vuzix m300 AR-Brille

Der sprechende Kickertisch

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

Continuous Delivery mit Orcas

Historisierung und Versionierung

länger brauchen (sollen) Eine Einführung in die Arbeit mit dem Oracle Workspace Manager

TOra - Toolkit for Oracle

quick documentation Inhalt Datenmodellierung

Continuous Delivery mit Orcas

XML in Oracle 12c. Wolfgang Nast

Serverless at BSH - the way to a modern architecture. Siegfried Höck (OPITZ CONSULTING), Jörg Schneider (BSH) September 2018

Oracle 10g Einführung

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Neue Features Oracle Database 12.2 Wann denn endlich?

Oracle SQL. Seminarunterlage. Version vom

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Codegenerator für APEX Collections und Tabular Forms

Berechnung von Kennzahlen mit der SQL Model Clause

Forms 12c, Reports und Weblogic in Docker betreiben

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

DWH Modernisierung mit Data- Lake, Lab und Governance

Data Dictionary for Oracle

DataVault in der Praxis

SQL (Structured Query Language) Schemata Datentypen

Inhaltsverzeichnis. Vorwort... 11

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Oracle Virtual Private Database

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1

SQL Developer Unit Tests

Historisierung und Versionierung mit Oracle Workspace Manager im Einsatz bei der Deutschen Bahn AG

Oracle Real Application Security (RAS) in APEX5

Ein APEX für alle und alle für APEX! Niels de Bruijn, Fachbereichsleiter APEX , DOAG DB Konferenz

Tag 4 Inhaltsverzeichnis

APEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH

Die Nutzung von Webservices in der Oracle Datenbank. 11 März 2010

Grundlagen von Datenbanken

REST Services To-Go Einfacher Einstieg in die REST Programmierung

Historisierung auf Knopfdruck

Apex und Datenbanklinks Einsatz in Produktivumgebungen

Vorfahrtsregeln in APEX-Umgebungen: Ressourcen-Konflikte mit dem Ressourcen-Manager lösen

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 10 Stored Outlines. Universität Hannover. Eigenschaften. Migration. Erstellen mit OEM.

Automatisierung von Schritten in Geschäftsprozessen als Einstieg in SOA

GESTERN OWB, HEUTE ODI

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Abfragen (Queries, Subqueries)

Ulrike Schwinn und Carsten Czarski

Üben von DDL und DML. Ergebnis:

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia)

Warum wird mein Index nicht benutzt?

Datenzugriffskomponente mit JPA 2.1

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Transaktionsverwaltung

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Erzeugung und Veränderung von Tabellen

Neue Wege zur Oracle-Migration

Hochverfügbarkeit mit AlwaysOn für die SSISDB. Stefan Grigat,

Daniela Reiner. Stuttgart,

Aktualisierungsinstruktionen von R5.x auf R6.0

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Die InnoDB Storage Engine. Handy aus?

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Erfahrungsbericht - Oracle ADF 11g im produktiven Einsatz

Oracle Integration Cloud Service

Tobias Braunschober DAS GENERISCHE DWH WENIGER CODE WENIGER KOSTEN

Professioneller Einstieg in Oracle Database 11g SQL

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

Praktische SQL-Befehle

Transaktionsverwaltung

Oracle Forms und APEX

Oracle BI Publisher - PDF und einiges mehr

APEX Datenverwaltung Wo sind die Daten gerade?

Oracle 10g Einführung

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

Moderne Anwendungen und relationale Datenbanken? Natürlich!

Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG

ORACLE Lizenzierung. Die größten Fallen in der Praxis. Andreas Ströbel Director License Management Consulting. Überraschend mehr Möglichkeiten

Datenversionierung in Business-Anwendungen

Regionaltreffen Rhein Main 26. März 2007

EMCLI Überblick, Nutzen und Beispiele aus der Praxis

Oracle Database Vault Beispiele zur Benutzung


EU-DSGVO im DWH Praxisbericht aus der Versicherungsbranche

Vorstellung DIE QSC AG. Datum:

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

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

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

Automatisierte Datenmigration mit dynamischen SQL

APEX OOS TOOLS & HELFER

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

Oracle GoldenGate Die Replikation beginnt mit Initial-Load! DOAG Konferenz Nürnberg 16. November 2011

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

DOAG 2016 Oracle APEX Security

Oracle 9i Einführung Performance Tuning

Online-Schema-Updates - Qualität & Quantität

Transkript:

Überraschend mehr Möglichkeiten! Oracle Workspace Manager Datenversionierung mit Apex Apex Connect 2017, Berlin André Borngräber

Überraschend mehr Möglichkeiten! André Borngräber Senior Consultant andre.borngraeber@opitz-consulting.com Oracle Apex seit 2009, PL/SQL, DWH/BI Lebensmittelpunkt München, geboren in Berlin WWW.OPITZ-CONSULTING.COM @OC_WIRE OPITZCONSULTING opitzconsulting opitz-consulting-bcb8-1009116

überraschend mehr Möglichkeiten! Mit unserer Leidenschaft für neue Technologien und unserem Anspruch an herausragende Beratung sind wir bei unseren Kunden der Motor für die digitale Transformation. Bernhard Opitz, CEO von OPITZ CONSULTING Kunden (Auszug) Portfolio: Spezialist für digitale Transformation Software Development BI & Big Data BPM & Systemintegration Cloud & Infrastruktur Internet der Dinge Managed Services Oracle Lizenzmanagement Strategy & Change Überblick: Gründung 1990 8 Standorte in Deutschland 3 Standorte in Polen Ca. 400 Mitarbeiter Inhabergeführt Breites Themenportfolio Herstellerunabhängige Beratung Märkte: Branchenübergreifend 600 Kunden 2/3 aller Dax-Unternehmen 29% Handel/Logistik/Service 29% Industrie/Versorgung/ Telko 42% Finanzsektor/Public Seite 3

Agenda 1 2 3 4 5 Was ist der Oracle Workspace Manager? Übersicht Datenbank Objekte Demo + wichtige Workspace Operationen Besonderheiten in Kombination mit Apex Zusammenfassung Seite 4

Was ist der Oracle Workspace Manager? Key Features Funktionsweise Installation 1 Seite 5

Key Features Workspace = Datenbestand (LIVE oder abgeleitet) Sammeln, Prüfen und Commit von logisch zusammenhängenden DML Operationen, bevor sie als Paket in den LIVE Datenbestand übernommen werden Was-Wäre-Wenn-Analysen ohne den LIVE Datenbestand zu beeinflussen und ohne teures kopieren des Datensatzes Historisierung (optional: gültig von bis Datensätze) Konflikt-Management Savepoints / Rollback

Funktionsweise Workspace LIVE refresh merge Workspace WS 1 SP1 SP2 t Workspace WS 4 SP7 t Workspace WS 5 SP10 SP11 t Workspace WS 2 SP5 SP9 t Workspace WS 3 SP6 SP8 t Multiparent Workspace WS 6 SP13

Ein erster Einstieg in die Workspace Manager Welt Szenario 1 (create, goto): Anlegen zweier voneinander unabhängiger Arbeitsbereiche für eine Was-Wäre-Wenn-Analyse mit Produktivdaten: Herr Dr. Prof. Meier und Herr Dr. Prof. Müller möchten ihre Theorien zur Farbgestaltung in Hotels / Hotelzimmern testen Sollte sich in der Zwischenzeit etwas ändern im LIVE Datenbestand, dann sollen beide Workspaces das automatisch mitbekommen und den Datenbestand aktualisieren BEGIN DBMS_WM.CreateWorkspace(workspace IN VARCHAR2, isrefreshed IN BOOLEAN, description IN VARCHAR2 DEFAULT NULL, auto_commit IN BOOLEAN DEFAULT TRUE); END; BEGIN DBMS_WM.GotoWorkspace(workspace IN VARCHAR2); END;

Übersicht Datenbank Objekte Installation Was passiert bei der Tabellen-Versionierung? Wichtige Dictionary Views 2 Seite 9

Installation In das Verzeichnis <ORACLE_HOME>/rdbms/admin wechseln SQLPlus als SYS ausführen Skript owminst.plb starten Installationsdauer ca. 10-15min Datenbank-Schema WMSYS wird erzeugt Tabellen WM versionierbar machen DBMS_WM.enableVersioning(table_name => EMP );

Was passiert bei der Tabellen-Versionierung? EMP = table = view = schema DBMS_WM.enableVersioning (table_name => EMP ); EMP_LT EMP EMP_HIST EMP_LOCK EMP_CONF EMP_LOCK EMP_AUX EMP_DIFF EMP_MW WMSYS

Wichtige Dictionary Views WM_INSTALLATION aktuelle WM Parameter wie z.b. WM Version, Multiparent WS Konfiguration, Lock Verhalten pessimistisch / optimistisch, Parameter änderbar per DBMS_WM.setSystemParameter(name, value) ALL_WM_VERSIONED_TABLES Infos zu allen WM versionierten Tabellen z.b. Name, Konflikt-Status, Owner, Historienkonfiguration, ALL_WORKSPACES Liste aller aktuellen Workspaces mit Infos Owner, Parent WS, Freeze Status, Refreshverhalten, ALL_WORKSPACE_SAVEPOINTS Infos zu aktuellen Savepoints z.b. Typ implizit / explizit, zurückrollbar ja /nein,

Demo + wichtige Workspace Operationen Szenarien Umgang mit dem DBMS_WM Package 3 Seite 13

Demo + wichtige Workspace Operationen Szenario 2 (merge, remove): Die Farbkomposition pink setzt sich durch und soll für alle sichtbar in den LIVE Datenbestand übernommen werden Der andere Entwurf kann verworfen werden BEGIN DBMS_WM.SetDiffVersions(workspace1 END; SELECT * FROM <table_name>_diff; BEGIN DBMS_WM.MergeWorkspace(workspace IN VARCHAR2, create_savepoint IN BOOLEAN DEFAULT FALSE, remove_workspace IN BOOLEAN DEFAULT FALSE, auto_commit IN BOOLEAN DEFAULT TRUE); END; BEGIN DBMS_WM.RemoveWorkspace(workspace IN VARCHAR2, auto_commit IN BOOLEAN DEFAULT TRUE); END; IN VARCHAR2, workspace2 IN VARCHAR2, onlymodified IN BOOLEAN DEFAULT FALSE);

Demo + wichtige Workspace Operationen Szenario 3 (Konflikte!): Der Hotelcheffin gefällt das reine pink nicht so gut als, sie ändert es leicht ab für alle Doppelzimmmer direkt im LIVE Datenbestand Währenddessen wird der pinke Farb-Entwurf weiterentwickelt, auch hier werden Doppelzimmer angepasst es entsteht offenbar ein Konflikt zwischen Workspace und LIVE Datenbestand, da beide die Farben für Doppelzimmer ändern Dieser Konflikt soll behoben werden Zukünftig sollen Konflikte grundsätzlich vermieden werden

Demo + wichtige Workspace Operationen SELECT * FROM <table_name>_conf; BEGIN DBMS_WM.beginResolve(workspace IN varchar2); -- loop through conflict PK's DBMS_WM.resolveConflicts(workspace IN VARCHAR2, table_name IN VARCHAR2, where_clause IN VARCHAR2, keep IN VARCHAR2, resolve_base_ne IN boolean DEFAULT FALSE); -- commit required here! commit; DBMS_WM.commitResolve(workspace IN VARCHAR2); END; BEGIN DBMS_WM.setSystemParameter(name => 'CR_WORKSPACE_MODE', value => 'PESSIMISTIC_LOCKING'); DBMS_WM.setSystemParameter(name => 'NONCR_WORKSPACE_MODE', value => 'PESSIMISTIC_LOCKING'); END;

Demo + wichtige Workspace Operationen Szenario 4: Die Hotelcheffin und der Professor einigen sich zukünftig nur noch extrem wasserlösliche Farbe zu verwenden im LIVE Datenbestand, so dass sie nach einer Farbänderung wieder leicht auf die Ursprungsfarbe zurückwechseln können BEGIN DBMS_WM.CreateSavepoint(workspace IN VARCHAR2, savepoint_name IN VARCHAR2, description IN VARCHAR2 DEFAULT NULL, auto_commit IN BOOLEAN DEFAULT TRUE); END; BEGIN DBMS_WM.RollbackToSP(workspace IN VARCHAR2, savepoint_name IN VARCHAR2, auto_commit IN BOOLEAN DEFAULT TRUE); END;

Besonderheiten Workspace Manager in Kombination mit Apex 4 Statuslosigkeit im Web (Rendering / Processing) Workspaces auf APP_USER Ebene Wizards und WM versionenabled tables Workspace Management im Apex Kontext Seite 18

Besonderheiten WM in Kombination mit Apex Statuslosigkeit im Web: Endet die Datenbank-Session, endet auch der Workspace Ausführungskontext Initialization: in den gewünschten Workspace wechseln Cleanup: Workspace-Sessions freigeben indem man in den LIVE Workspace wechselt

Besonderheiten in Kombination mit Apex Workspaces auf APP_USER Ebene: Ein Workspace-Owner kann technisch nur ein Datenbank Schema sein, Apex wird unter APEX_PUBLIC_USER ausgeführt Möchte man auf APP_USER Ebene Workspaces speichern oder benötigt zusätzliche Attribute (APP_ID, Farben), so muss man dies parallel in eigenen Metadaten speichern wm_helper_package.ws_create( ) wm_helper_package.ws_goto( ) DBMS_WM.createWorkspace( ) META_WORKSPACES DBMS_WM.gotoWorkspace( ) META_WORKSPACES _CURRENT

Besonderheiten in Kombination mit Apex Wizards und WM versionenabled tables: Für Dateneingabe-Regionen (Interactive Grid, Forms, Report with Form, ) muss beí WM versionierten Tabellen immer der PK angegeben werden

Besonderheiten in Kombination mit Apex Workspace Management im Apex Kontext: Unbedingt sicherstellen, dass die Anzeige von Workspaces und Durchführung von Operationen wie goto, merge, remove, rollback, usw. nur mit Workspaces geschehen darf, die zur Anwendung gehören!!! Z.B. durch eigene zusätzliche Metadatentabellen SELECT * FROM all_workspaces ws JOIN meta_workspaces meta ON (ws.workspace_id = meta.ws_id -- including LIVE OR ws.workspace_id = 0) WHERE meta.ws_app_id = :app_id;

Sonstige Fakten die man wissen sollte mergeworkspace() hat Auswirkungen auf den Parent WS, nicht zwangsläufig auf LIVE er muss nicht von LIVE abgeleitet sein mergeworkspace() bei Multiparent WS hat Auswirkungen auf ALLE darüber liegenden WS auch auf LIVE rollbacktosavepoint() ist nicht möglich, wenn in der Zwischenzeit ein Kind Workspace erstellt wurde (impliziter Savepoint) Konflikte können nur zwischen Parent und Child Workspace entstehen bei optimistischem Locking (Geschwister Workspaces verursachen keine Konflikte)

Zusammenfassung Vorteile Geringer Implementierungsaufwand Keine zusätzlichen Lizenzkosten Privilege Management Lock Management Support für: DDL, VPD, Bulk Loading, Nachteile Index-Organisierte Tabellen nicht supported Eingreifen in das Datenmodell Vielzahl an Datenbank-Objekten Fehlende Transparenz (Befüllung Metadaten Tabellen, Aufbau der Metadatenviews) 5 Seite 24

Hier geht es zur Vortragsbewertung: http://bit.ly/2pqm0tf Vielen Dank! apex.doag.org

Fragen & Antworten? Seite 26