oracle scheduler - doag.org · via oracle scheduler agent ! mit oracle 11gr1 wurde der oracle...
Post on 03-Nov-2019
28 Views
Preview:
TRANSCRIPT
www.inconso.de
IntegrationConsultingSoftware
Oracle Scheduler „Know it or leave it“
DOAG Konferenz 2013
12.11.13 //// Seite 2
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
8. Kleines Fazit
12.11.13 //// Seite 3
Das Unternehmen auf einen Blick
Gründung:
Hauptsitz:
Standorte:
2002
Bad Nauheim
10 x in Deutschland, 1 x in Frankreich (Lyon)
Rechtsform:
Aktionäre:
Mitarbeiter:
Aktiengesellschaft
je 50 % Management und Cora GmbH, Hamburg
450
Umsatz 2011:
Rendite:
Finanzierung:
41,9 Mio. €
13 %
Vollständig eigenkapitalfinanziert (Eigenkapitalquote > 65 %)
Handel, Konsumgüterindustrie, Chemie, Pharma, Automotive, Food, Logistikdienstleister, produzierende Industrie
Kernbranchen:
Kunden:
Über 300 Installationen bei mehr als 200 Kunden in 20 Ländern auf allen 5 Kontinenten
12.11.13 //// Seite 4
Leistungsangebot im Überblick
Dispositive Ebene
Operative Ebene
inconso Logistics Suite
Warehouse Management mit inconsoWMS Product Suite
Transport Management mit inconsoTMS
SCM / SCE Supply Chain Execution mit inconsoSCE
Logistikleitstand und Controlling, SC-Visibility, Event Management
SAP Lösungen
Warehouse Management mit SAP SAP EWM + MFS, SAP LES + TRM
SAP ERP und SAP SCM SAP BUSINESS ALL-IN-ONE für LDL
Integration mit SAP NetWeaver
Transport Management mit SAP SAP TM
Technische Ebene
Technik + Services
Full Managed Application Services
n Hotline + Support 24/7 n Test und Inbetriebnahme n Endgeräte Support n Rechenzentrumsbetrieb
Mobile + Embedded Solutions
n Mobile Applications n Embedded Software n Fernüberwachung + Steuerung
via Internet
IT + Systemtechnik
n LAN, WLAN , Mobiler Datenfunk, RFiD, Pick-by-Voice
n Hochverfügbarkeits-Cluster (Cluster Ware, Oracle RAC, VMWare)
n Oracle Datenbanken Administration n Komplette Betriebsführung
der Systeme
12.11.13 //// Seite 5
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
12.11.13 //// Seite 6
Oracle Scheduler im Überblick
n Löst seit Oracle RDBMS 10gR1 DBMS_JOBS ab n Dient der zeit- oder event-gesteuerten Ausführung von
Datenbankprogrammen n Das Package dbms_scheduler stellt den Großteil der API zur
Verfügung
12.11.13 //// Seite 7
Oracle Scheduler im Überblick
n Alle Scheduler Objekte (Jobs, Programs, Schedules, Chains, etc.) sind Datenbank-Objekte und sind auch deren Regeln und Konventionen unterworfen. n Sie besitzen einen Eigentümer (Owner) n Es darf kein anderes Objekt (z.B. eine Tabelle) mit dem
gleichen Namen existieren
n Empfehlung: Bei größeren Batch-Systemen den Zugriff auf das dbms_scheduler Package durch ein eigenes Interface kapseln
12.11.13 //// Seite 8
Oracle Scheduler im Überblick
Scheduler Jobs sind im wesentlichen definiert durch
n Unterschiedliche Job-Typen n PLSQL_BLOCK n STORED_PROCEDURE n EXECUTABLE (Ausführung externer Programme außerhalb der DB) n CHAIN
n Einer entsprechenden Aktion und Parameterdefinition n Einem Ausführungszeitplan (Startzeit und Intervall) oder einem Event
12.11.13 //// Seite 9
Oracle Scheduler im Überblick
n Job-Typ, Aktion und Parameter können auch als wiederverwendbares Programm vordefiniert werden
n Der Ausführungszeitplan kann ebenfalls in ein Schedule-Objekt ausgelagert werden
Achtung: Es wird zwischen Job-Creator und Job-Owner unterschieden!
12.11.13 //// Seite 10
Oracle Scheduler im Überblick
Schedules n Sind definiert durch
n Eine Startzeit (optional!) n Einem REPEAT_INTERVAL
n Ermöglicht eine komplexe Definition von Wiederholungszeitpunkten
n Einfaches Bsp.: FREQ=DAILY; BYHOUR=17; BYMINUTE=45
n Der REPEAT_INTERVAL (Schedules sind schachtelbar) n Eine Endzeit, die optional das Ende der Gültigkeit des
Schedules angibt
12.11.13 //// Seite 11
Oracle Scheduler im Überblick
Achtung n Bei Definition einer Startzeit, gilt diese als Referenz für
die Berechnung der wiederholenden Startzeiten der Jobs, sonst ist die Startzeit des Jobs die Referenz für diese Berechnung
n Abhängig vom Intervall wird ein zum berechneten Startzeitpunkt auf disabled stehender Job ggf. nicht sofort gestartet, sobald er enabled wird!
12.11.13 //// Seite 12
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
12.11.13 //// Seite 13
Oracle Scheduler Views
Die Scheduler-Views liefern dem Operator Informationen über den Zustand aller definierten und laufenden Jobs.
n ALL_SCHEDULER_JOBS n Basis-View mit allen Definitions- und Statusdaten
der Jobs n ALL_SCHEDULER_RUNNING_JOBS
n Enthält erweiterte Laufzeit-Informationen, wie z.B. Session-ID, CPU-Nutzung, Instance, etc.
n Enthält ausschließlich zur Laufzeit des Jobs Einträge
12.11.13 //// Seite 14
Oracle Scheduler Views
n ALL_SCHEDULER_RUN_DETAILS n Wird In der Regel erst nach Beendigung eines Jobs befüllt
(Ausnahme bei den Job-Chains) n Enthält die Laufzeitdaten aus der RUNNING_JOBS-View
und zusätzliche statistische Daten sowie nochmals Statusinformationen
n Enthält für jeden Lauf einen Eintrag, somit ist der Jobname hier nicht mehr eindeutig
n Weitere aber nicht so zentrale Views auf die Definitionsdaten der Scheduler-Objekte: ALL_SCHEDULER_PROGRAMS, ALL_SCHEDULER_SCHEDULES, etc.
Damit der Operator einen kompletten Überblick für eine ausreichende Entscheidungsgrundlage besitzt, müssen die oben benannten Hauptviews gejoint werden (per Outer-Join und Decode)
12.11.13 //// Seite 15
Oracle Scheduler Views
Performance der Views n Kritisch bei > 10.000 Jobs n Case und Decodes n Union mit Lightwaight-Jobs n Join der Views häufig
erforderlich n Cost-Base-Optimizer ist
schnell überfordert n Führung eigener Metadaten-
Tabellen zur Steigerung der Performance n Aktualisierung über
Callbacks
12.11.13 //// Seite 16
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
12.11.13 //// Seite 17
Event-Jobs, File-Events und Callbacks
Scheduler-Jobs können n Beim Ändern des Job-Status Events auslösen und darüber
n Callbacks in der Form von PL/SQL-Prozeduren starten n E-Mail-Notifikationen auslösen (11gR2)
n Von anderen Events ausgelöst werden n Über Event-Messages aus beliebigen n Advanced Queuing (AQ)-Tables n Über File-Events (11gR2)
Das gesamte Event-Handling des Schedulers erfolgt über Oracle Advance Queuing (AQ)
12.11.13 //// Seite 18
Event-Jobs, File-Events und Callbacks
Event-Jobs besaßen bis Oracle 10g eine schwerwiegende Einschränkung n Ein laufender Event-Job konsumiert alle bestehenden und während seines
Laufes eintreffende Event-Messages. Mehrfach ausgelöste Events führen nur zu einem Job-Durchlauf. Das ist aber nicht immer/selten gewünscht.
n Oracle 11gR1 führt die Lightweight-Jobs ein und die Möglichkeit darüber parallele Job-Instanzen zur Ausführung von Event-Jobs aufzubauen, wodurch jedes Event durch einen separaten parallelen Job verarbeitet wird
n Achtung: Das ist auch unter 11gR2 noch nicht der Default!
12.11.13 //// Seite 19
Event-Jobs, File-Events und Callbacks
File-Events n Seit Oracle 11gR2 Bestandteil des Oracle
Scheduler (File Watcher) n Zuvor als inoffizielles FileArrival-Package auf
OTN verfügbar (mit dem es jetzt starke Ähnlichkeiten hat)
12.11.13 //// Seite 20
Event-Jobs, File-Events und Callbacks
File Events n Eine File Watcher –Definition umfasst
n Pfad und Dateinamen (mit Wildcards) der zu überwachenden Datei(en)
n OS-Credentials für die Zugriffsberechtigung auf die Dateien n Parameter zur Feinjustierung der Vollständigkeitsprüfung
n min_file_size – minimale Dateigröße einer vollständigen Datei n steady_state_duration – Zeitraum ab der eine sich in der
Größe nicht mehr verändernde Date als vollständig gilt
12.11.13 //// Seite 21
Event-Jobs, File-Events und Callbacks
File-Events n Die Vollständigkeitsprüfung des File Watchers deckt die meisten Praxis-Fälle
korrekt ab n Der Erkennung neuer Dateien, die unter gleichen Namen wiederholt eingestellt
werden, kann aber zu Problemen führen n Je nach OS und oder File-Transfertool kann es bei Dateien mit gleicher
Größe dazu führen, dass kein Event ausgelöst wird! n Unter Linux z.B. Dateien, die per mv (move)-Befehl erneut eingestellt
werden n Der cp (Copy)- Befehl funktioniert, da sich damit das
Erstellungsdatum ändert n Insbesondere beim File Watcher muss der „parallel_instances“ –Parameter
gesetzt werden, sonst kann er Dateien verschlucken!
12.11.13 //// Seite 22
Event-Jobs, File-Events und Callbacks
Callbacks n Für jeden Scheduler-Job kann definiert werden, ob und bei welchen
Statusänderungen dieser ein Event auslösen soll
n Events werden in eine vordefinierte AQ-Event-Queue des Schedulers geschrieben (SYS.SCHEDULER$_EVENT_QUEUE) n Da es sich hierbei um eine normale AQ-Event-Queue handelt,
erfolgt die „Subscription“ entsprechend der gängigen AQ-Praxis n Ein spezieller DBMS_SCHEDULER.ADD_EVENT
_QUEUE_SUBSCRIBER fast die notwendigen Schritte für die „Subscription“ zusammen, filtert aber auch automatisch auf Events, die durch Jobs des Benutzers ausgelöst wurden.
n Über die AQ-Mechanismen lassen sich auch PL/SQL-Stored-Procedures an die Event-Queue registrieren, die dann als Callback-Methoden fungieren.
12.11.13 //// Seite 23
Event-Jobs, File-Events und Callbacks
Hinweise zur Verwendung von Callback-Methoden n Callback-Methoden können zur Aktualisierung eigener Meta-Daten-Tabellen
verwendet werden n Die Methoden sollten unbedingt performant sein und möglichst alle
„Exceptions“ abfangen n AQ-Callback-Methoden werden wiederum von internen
Scheduler-Jobs ausgeführt n Seit Oracle 11gR1 wird nicht mehr jedes Callback mit
einem eigenen Job abgearbeitet n Der QMON-Prozess verwaltet die Callback-Jobs und
die Verteilung der Events auf diese n Auf einem RAC ließen sich Mehrfach-Zuweisungen
des gleichen Events beobachten, deshalb unbedingt innerhalb der Callback-Prozeduren mit einem Timeout auf das Event zugreifen
n Der QMON-Prozess läuft in einer RAC-Umgebung unter Clusterkontrolle!
12.11.13 //// Seite 24
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
8. Kleines Fazit
12.11.13 //// Seite 25
Job-Chains
n Chains verketten mehrere Jobs (Steps) zu einem Workflow n Die Chain läuft unter einem Mainjob n Die Steps laufen als Subjobs n Hinter einem Step kann selber wieder eine Chain stehen
(Bildung von Hierarchien und Wiederverwendung) n Die Verbindung der Steps erfolgt über Rules
n Die Definition der Chains erfolgt über keine Meta-Sprache
n Sondern durch PL/SQL-Prozeduraufrufe
12.11.13 //// Seite 26
Job-Chains
n Die Steps einer Chain können über Prozeduren n Übersprungen werden n Pausiert werden (Achtung die Pause erfolgt erst nach dem Step) n Und zur Laufzeit zusätzlich
n Gestoppt werden n Als noch nicht gestartet deklariert werden
n Programmatisch werden Steps über
n Den (Sub)Job- und Step-Namen angesprochen n Bei verschachtelten Chains auch über Punkt-Notation
(CHAIN_A_STEP1.CHAIN_B_STEP1)
12.11.13 //// Seite 27
Job-Chains
n Der Oracle SQLDeveloper bietet eine Tool-Unterstützung zur Definition von Chains n Frage: Ist ein Operator wirklich dazu in der Lage?
n Ein Operator braucht auch eine Oberfläche zur Administration laufender Jobs!
n Eine hierarchische Verkettung ist auch programmatisch ohne Chains möglich!
n Beides hat Vor- und Nachteile und sollte zuvor abgewogen werden
12.11.13 //// Seite 28
Job-Chains: Vor- und Nachteile
n Einfaches Absetzen synchroner Jobs n Einfache Parallelisierung n Einfaches „Einfangen“ von parallel
laufenden Jobs n Trennung der Ablaufsteuerung vom
Programmcode n Workflow ist einsehbar und editierbar
Vorteile
n Notwendige Tool-Oberflächen für den Operator sind meist nur aufwendig zu realisieren
n Teils sehr komplexe Handhabung (kleine Änderung große Wirkung)
n Kontrollstrukturen (insbesondere Schleifen) schwierig bis kaum umsetzbar
n Starke Einschränkungen bei der Parametrisierung von Steps
n Teilweise Zerlegung eines fachlichen Steps in technische Teil-Steps notwendig
Nachteile
12.11.13 //// Seite 29
Job-Chains: Vor- und Nachteile programmatischer hierarchischer Jobs
Vorteile Nachteile
n Oberfläche für das Operating relativ einfach umsetzbar
n Beliebig komplexe „Rules“ möglich n Keine unnötige Zerlegung in Teil-Steps
notwendig n Beliebige dynamische Kontrollstrukturen
definierbar n Parametrisierung wie bei „normalen“
Prozeduren möglich
n Absetzen synchroner Jobs n Nur einfach wenn dieser auch in der
gleichen Session und Transaktion laufen darf
n „Einfangen“ paralleler Jobs nur kompliziert, ggf. über eigene AQ-Mechanismen, möglich
n Workflows sind nicht editierbar, bzw. zukünftige Steps manipulierbar
n Mindestens für die Hierarchienbildung ist eine eigene Metadaten-Pflege notwendig
12.11.13 //// Seite 30
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
12.11.13 //// Seite 31
Remote-Job-Execution via Oracle Scheduler Agent
n Mit Oracle 11gR1 wurde der Oracle Scheduler Agent eingeführt
n Erlaubt die Ausführung von Executables auf Remote-Systemen durch den Oracle Scheduler
n Die Installation erfolgt aus den Installationsquellen des Datenbank-Clients
n Muss als eigenständige Installation in einem separaten ORACLE_HOME auf dem Remote-System erfolgen und kann nicht in einem bestehenden Client-Home nachinstalliert werden
12.11.13 //// Seite 32
Remote-Job-Execution via Oracle Scheduler Agent
n Ab 11gR2 wurde das Konzept auch auf Remote-Database-Jobs ausgeweitet n Auf der Remote-Datenbank muss zusätzlich der Scheduler Agent
installiert werden n Die Ausführung erfolgt nicht über einen Database-Link n Der Scheduler Agent meldet sich, wie bei einer normalen SQL-
Connection an der Datenbank an und führt die übergebene PL/SQL-Stored-Procedure aus
n Standard-Out und Standard-Error der Executables werden für jeden Job in ein Log-Verzeichnis des Scheduler-Agents geschrieben. n Über dbms_scheduler.get_file
kann der Inhalt von der Datenbank aus gelesen werden
12.11.13 //// Seite 33
Remote-Job-Execution via Oracle Scheduler Agent
n Bei der Definition eines File Watcher-Objektes kann als Destination ebenfalls ein registrierter Scheduler Agent angegeben werden
n Dieses ermöglicht auch die Überwachung von Remote-Verzeichnissen n Auch in diesem Fall gilt, das ausgelöste Event enthält nur den Pfad und den Dateinamen! n Den Inhalt der Datei kann man ebenfalls mit der dbms_scheduler.get_file vom Remote-
System zur Datenbank übertragen und steht dann direkt als LOB-Objekt zur Verfügung n Prinzipiell böten die dbms_scheduler.get_file und das Pendant dbms_scheduler.put_file
eine hervorragende Möglichkeit eines allgemeinen Filetransfers zwischen einer Datenbank und einem Remotesystem
n Problem: Die Methoden liefern bei Verwendung gegen ein Remote-System bei einen Dateioperationsfehler keine Fehlermeldung.
n Antwort vom Oracle-Support: It‘s a feature, not a bug! n Die gleichen Methoden gegen den lokalen DB-Host liefern sehr wohl einen Fehler.
Achtung: In der DB kann unter bestimmten Umständen ein falscher Job-Status stehen!
n Prozesse, deren Jobs in der DB auf Stopped oder Failed stehen, können auf dem Remote-System noch laufen
n Ein Neustart des Scheduler Agent -Dienstes kann z.B. dazu führen
12.11.13 //// Seite 34
Agenda
1. Vorstellung
2. Der Oracle Scheduler im Überblick
3. Die Oracle Scheduler Views
4. Event-Jobs, File-Events und Callback-Routinen
5. Job-Chains
6. Remote-Job-Execution via Oracle Scheduler Agent
7. Datenbank-Migration und –Updates
12.11.13 //// Seite 35
Datenbank Migration und Updates
n Besonderheiten bei Datenbank-Migrationen per Import– und Export-Tools n Zum Beispiel beim Downgrade (Enterprise => Standard) n Im Besonderen bei Exports ohne Daten
n Viele Scheduler-Objekte liegen als Daten in Tabellen vor n Oracle exportiert diverse Objekte nicht als Create-Anweisungen n Diverse Objekte werden über temporäre Tabellen exportiert,
die bei beim Export ohne Daten nicht exportiert werden! n Tipp: Möglichst die Scheduler-Objekte und Jobs nicht in dem gleichen Schemata
anlegen/laufen lassen, in denen große Datenmengen liegen
n Besonderheit beim Datenbank- /Patchset-Upgrade n Niemals Samstags upgraden?
n Tage an denen Jobs definiert sind die in einem Scheduler-Window laufen scheinen problematisch zu sein n Das gilt zum Beispiel für die Oracle Standard-Maintenance-Jobs!
n Nach dem Upgrade könnte das aktive Window als Global-Scheduler-Attribute übernommen worden sein. Sobald dieses schließt läuft kein Job mehr!
n Siehe MY ORACLE SUPPORT NOTE Doc ID 731678.1
12.11.13 //// Seite 36
MY ORACLE SUPPORT Doc ID 731678.1
12.11.13 //// Seite 37
Ansprechpartner
Torsten von Osten Seniorberater
Tvonosten@inconso.de
Vielen Dank für Ihre Aufmerksamkeit. Für weitere Informationen stehe ich Ihnen gern zur Verfügung.
inconso AG Dieselstraße 1 – 7 61231 Bad Nauheim TEL: +49 6032 348–0 FAX: +49 6032 348–100 www.inconso.de
top related