Regionaltreffen Hamburg/Nord Scheduler de Luxe Martin Ritschel & Volker Ricke 21. Februar 2012
POINT. Consulting GmbH Daten & Fakten Standort: Henstedt-Ulzburg Gründung: Januar 1992 Stammkapital: 102.258,38 Geschäftsführung: Johannes Berendes Umsatz 2011: 2.300.000 Consultants 2011: 20 Unser Marktfokus Professional Services als IT-Beratungsunternehmen konzentrieren wir uns ausschließlich auf dieses Marktsegment und erbringen für unsere Kunden individuelle Dienstleistungen. Viele unserer Kunden arbeiten mit uns 5, 10 oder sogar über 19 Jahre zusammen. 2
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 3
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 4
Überblick über den Oracle Job Scheduler Ø Der Scheduler wird zur Steuerung von Arbeitsaufträgen (Jobs) genutzt. Er ist ein Bestandteil der Oracle Datenbank ab der Standard Edition. Ø Scheduler administrieren: - Per GUI im Enterprise Manager - Per API mit dem Paket DBMS_SCHEDULER Enterprise Manager DBMS_SCHEDULER Datenbank 5
Enterprise Manager GUI 6
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 7
Job Scheduler Architektur Modularer Aufbau des Schedulers mit seinen Grundkomponenten: 8
Job Scheduler Architektur Modularer Aufbau des Schedulers mit seinen Grundkomponenten: Ø Das Program definiert Metadaten: - Welcher Programm-Code (PL/SQL Stored Procedure, Anonymous PL/SQL, Shell-Script) wird gestartet. - Welche Parameter werden übergeben. Ø Der Schedule legt fest, wann und in welchem Wiederholungsintervall ein Program gestartet wird. Ø Der Job ist die Kombination aus Program und Schedule die lauffähige Instanz. 9
Job Scheduler Architektur Weitere (optionale) Komponenten: 10
Job Scheduler Architektur Weitere (optionale) Komponenten: Ø Das Window definiert feste Zeitintervalle für die Ressourcen- Bereitstellung mit dem Datenbank Resource Manager. Ø Window Group s fassen mehrere Window s zusammen. Ø Job Classes definieren wiederverwendbare Eigenschaften (Attribute, Service-Nutzung, Ressourcen-Allokation, Prioritäten, ) 11
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 12
Job Scheduler Framework Vorteile des POINT. Job Scheduler Frameworks Das Framework erfindet das Rad nicht neu, es erleichtert aber die Einrichtung und den Betrieb von ORACLE Scheduler Jobs. Ø Konfiguration von Job- und Laufzeiteinstellungen über Metadaten Ø Über Metadaten einstellbare Parallelisierung von Jobs Ø Automatische Berücksichtigung der Parallelisierungs- Einstellungen zur Laufzeit Ø Einfaches und schnelles Einrichten von Jobs Ø Vereinfachung von Administration und Monitoring Ø Definition von Wartungsfenstern Ø Automatische Email-Benachrichtigung für verschiedene Events Ab Oracle 11g Release 2 13
Job Scheduler Framework Monitoring Monitoring Metadaten Dynamik & Administration Parallelisierung Wartung POINT. Job Scheduler Framework Scheduler Program Job Scheduler Class Group Window 14
Job Scheduler Framework Programme: Tabellen jsf_prg_arguments und jsf_programs Ø Argumente (Parameter) zu einem Programm - Name - Position beim Aufruf - Default Wert - Typ Programme Argumente Ø Programmdefinition - Name - Programmtyp PL/SQL Blöcke PL/SQL Stored Procedures Java Stored Procedures Executables auf Betriebssystemebene - Programm-Name / PL/SQL Block - Anzahl Argumente - Sofortige Aktivierung (Ja/Nein) 15
Job Scheduler Framework Scheduler: Tabelle jsf_schedulers Ø Scheduler (Zeitplan der Job-Ausführung) - Name - Wiederholungsintervall - Start-Datum - Ende-Datum Scheduler Definition der Scheduler über die Oracle-gängige Kalendersyntax, Beispiele: Ø Jede Stunde: FREQ=HOURLY; INTERVAL=1 Ø Alle 2 Wochen: FREQ=WEEKLY; INTERVAL=2 Ø Alle 30 Tage: FREQ=DAILY; INTERVAL=30 Ø Alle 5 Minuten: FREQ=MINUTELY; INTERVAL=5 Ø Jede Sekunde: FREQ=SECONDLY Ø 6:23 a.m. jeden Dienstag: FREQ=WEEKLY; BYDAY=TUE; BYHOUR=6; BYMINUTE=23 Ø Zu jedem DOAG Regio Hamburg Treffen, dritter Dienstag alle zwei Monate J 16
Job Scheduler Framework Definition: Tabellen jsf_job_definitions und jsf_job_mails Ø Definition der Jobs - Name - Typ (PLSQL_BLOCK,STORED_PROCEDURE,EXECUTABLE) - Job-Klasse (Standard DEFAULT_JOB_CLASS) Ø Definition des Mail-Versands Ab Oracle 11g Release 2 - Mail senden (J/N) - Mail Ereignisse (Events, auf die reagiert werden soll) JOB_FAILED JOB_BROKEN JOB_SCH_LIM_REACHED JOB_CHAIN_STALLED JOB_OVER_MAX_DUR - Mail Empfänger (kommaseparierte Liste) -.. Definition Mail 17
Job Scheduler Framework Steuerung: Tabelle jsf_job_control Ø Zusammenfassung von Programm, Definition und Scheduler zu einem Job - Priorität (Priorität des Jobs) - Min Jobs (Anzahl der minimal parallel laufenden Jobs) - Max Jobs (Anzahl der maximal parallel laufenden Jobs) Steuerung Über diese Tabelle wird die Parallelität gesteuert. Mit den Feld Max_Jobs wird eingestellt, wie viele parallele Jobs (Job-Instanzen) gestartet werden sollen. 18
Job Scheduler Framework Laufzeit-Informationen: Tabelle jsf_job_instances Ø Laufzeit-Informationen zu den Job-Instanzen - Job Instance Name (Job-Name + Nummer) - Job Sequenz (Interne Nummer des Jobs) - Aktivitäts-Kennzeichen (ist der Job aktiv?) - Status-Kennzeichen (Status des Jobs) Laufzeit- Informationen Diese Tabelle wird vom Control-Job gepflegt und darf nicht geändert werden. Die einzige Ausnahme ist das Aktivitäts-Kennzeichen zur Aktivierung bzw. Deaktivierung einer Job-Instanz. 19
Job Scheduler Framework Ausfallzeiten: Tabelle jsf_downtimes Ø Ausfallzeiten (Zeitplan für die Unterbrechung eines Jobs) - Job - Typ (geplant, ungeplant) - Start-Datum - Ende-Datum Ausfallzeiten Über diese Tabelle werden die Ausfallzeiten eingestellt. Zu Beginn einer Ausfallzeit werden alle Job-Instanzen zum Job automatisch deaktiviert und nach dem Ende der Ausfallzeit wieder aktiviert. 20
Job Scheduler Framework ER Modell des Job Scheduler Frameworks Scheduler Argumente Programme Steuerung Definition Mail Ausfallzeiten Laufzeit- Informationen 21
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 22
Monitoring Views Zum Überwachen des Job Scheduler Frameworks stehen einige Views zu Verfügung: Ø SCHEDULER_JOBS_V1 Informationen zu den erstellten Job-Instanzen - Startdatum - Status - Anzahl der fehlerhaften Läufe Ø SCHEDULER_JOB_ARGS_V1 Argumente und Werte zu den erstellten Job-Instanzen - Wert des Arguments - Position des Arguments 23
Monitoring Views Ø SCHEDULER_JOB_RUN_DETAILS_V1 Historische Details zu den Job-Instanzen - Status des Laufs - Laufzeit gesamt - CPU-Zeit gesamt Ø SCHEDULER_RUNNING_JOBS_V1 Informationen zu den aktuell laufenden Job-Instanzen - Session ID - Prozess ID des Betriebssystem - Laufzeit der Job-Instanz 24
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 25
Control-Job Zyklus Schreiben der Laufzeitinformationen Ø Status der Job-Instanzen Ø Laufende Nr. bei Parallelität Job Control Zentraler DB-Job des Frameworks Protokoll Analyse Anpassen der Job-Instanzen Ø Parallelität Ø Aktivieren/Deaktivieren Ø Neue Job-Instanzen anlegen Adaption Analysieren der Metadaten/ Laufzeitinformationen, z.b. Ø Parallelität Ø Status der Job-Instanzen 26
Control-Job Zyklus Datenbank-Job JOB_CONTROL kontrolliert die Jobs: Job Control Ø Überwachung der Job-Instanzen Ø Anlegen/Löschen von Job-Instanzen Ø Aktivieren/Deaktivieren von Job-Instanzen Ø Schreiben der Laufzeit-Informationen Protokoll Analyse Adaption 27
Control-Job Zyklus Analyse der Metadaten und Laufzeit-Informationen zu den Job-Instanzen: Job Control Ø Lesen der Tabelle mit den Laufzeit- Informationen Ø Lesen der Steuerungstabelle Ø Lesen der Tabelle mit den Ausfallzeiten Ø Sind Jobs vorhanden? Ø Anzahl der Job-Instanzen? Ø Status der Job-Instanzen (aktiv oder inaktiv) Protokoll Adaption Analyse 28
Control-Job Zyklus Anpassen der Datenbankjobs: Ø Anlegen/Löschen von Jobs Ø Anlegen/Löschen von Job-Instanzen Ø Parameter zu den Job-Instanzen setzen Ø Aktivieren/Deaktivieren von Job-Instanzen anhand der Laufzeit-Informationen Ø Aktivieren/Deaktivieren von Job(-Instanzen) anhand der Ausfallzeiten Protokoll Job Control Analyse Adaption 29
Control-Job Zyklus Protokollierung der Laufzeit-Informationen zu den Job-Instanzen: Job Control Ø Erstellen der Laufzeit-Informationen, u.a. - Status der Job-Instanz - Name der Job-Instanz - Laufende Nummer Ø Aktualisierung von Laufzeit-Informationen Protokoll Analyse Adaption 30
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 31
Jobs einstellen Vorgabe zu dem Beispiel: - Programm: pck_bsp.start_main - Parameter: job_instanzname - Scheduler: Täglich 12 Uhr - Instanzen: 2 - Mail bei: JOB_FAILED - Mail an: bsp_dba@domain.local Tabelle jsf_programs program_type = STORED_PROCEDURE program_name = BEISPIEL program_action = pck_bsp.start_main Number_of_arguments = 1 enabled = J 32
Jobs einstellen Vorgabe zu dem Beispiel: - Programm: pck_bsp.start_main - Parameter: job_instanzname - Scheduler: Täglich 12 Uhr - Instanzen: 2 - Mail bei: JOB_FAILED - Mail an: bsp_dba@domain.local Tabelle jsf_prog_arguments argument_name = job_instanzname argument_position = 1 default_value = argument_type = VARCHAR2 out_argument = N Eintragen der Referenz zur Tabelle jsf_programs. Zum Registrieren des Programms jsf_admin.fpc_register_program ausführen. 33
Jobs einstellen Vorgabe zu dem Beispiel: - Programm: pck_bsp.start_main - Parameter: job_instanzname - Scheduler: Täglich 12 Uhr - Instanzen: 2 - Mail bei: JOB_FAILED - Mail an: bsp_dba@domain.local Tabelle jsf_job_definitions job_name = BEISPIEL job_type = STORED_PROCEDURE Job_class = DEFAULT_JOB_CLASS start_date = 01.01.2012 enabled = J 34
Jobs einstellen Vorgabe zu dem Beispiel: - Programm: pck_bsp.start_main - Parameter: job_instanzname - Scheduler: Täglich 12 Uhr - Instanzen: 2 - Mail bei: JOB_FAILED - Mail an: bsp_dba@domain.local Tabelle jsf_job_mails mail = J mail_recipients = bsp_dba@domain.local mail_events = JOB_FAILED Ab Oracle 11g Release 2 Eintragen der Referenz zur Tabelle jsf_job_definitions. 35
Jobs einstellen Vorgabe zu dem Beispiel: - Programm: pck_bsp.start_main - Parameter: job_instanzname - Scheduler: Täglich 12 Uhr - Instanzen: 2 - Mail bei: JOB_FAILED - Mail an: bsp_dba@domain.local Tabelle jsf_job_control name = BEISPIEL priority = 1 min_jobs = 2 max_jobs = 2 Eintragen der Referenzen zu den Tabellen jsf_programs, jsf_schedulers und jsf_job_definitions. Der Control-Job legt bei seinem nächsten Lauf die Job-Instanzen an. 36
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 37
Jobs überwachen Ø Einstellen der Events, die überwacht werden sollen (Tabelle jsf_job_mails) Ø View scheduler_job_run_details_v1 Ø View scheduler_job_v1 Ab Oracle 11g Release 2 38
Scheduler de Luxe Ø Überblick Oracle Job Scheduler Ø Oracle Job Scheduler Architektur Ø POINT. Job Scheduler Framework Ø Monitoring Views Ø Control-Job Zyklus Ø Administration - Jobs einstellen - Jobs überwachen Ø Live Demo 39
Live Demo Demo 40
Noch Fragen? 41
Kontakt Martin Ritschel martin.ritschel@point-gmbh.com Download www.point-gmbh.com Volker Ricke volker.ricke@point-gmbh.com 42