Freitag, Oktober 28, 2011

DBMS_SCHEDULER Grundlagen

Dieser Tage habe ich mich zum ersten Mal ein wenig mit dem DBMS_SCHEDULER beschäftigt und nehme das zum Anlass, ein paar grundlegende Dinge aufzuschreiben und einige Links zu notieren. Grundsätzlich dient der Scheduler zur Definition Zeit- oder Event-gesteuerter Aktionen und bietet dabei deutlich umfangreichere Funktionen als DBMS_JOB - z.B. ist es möglich komplexe Zeitpläne und Ausführungs-Windows zu definieren, Abhängigkeiten anzugeben und ein detailliertes Monitoring der Ausführungen zu erzeugen. Hier nur ein ganz einfaches Beispiel:

-- Loeschung des Jobs (wenn vorhanden)
exec dbms_scheduler.drop_job (job_name => 'my_scheduler_test_job');

-- Job-Definition
begin
  dbms_scheduler.create_job (
    job_name        => 'my_scheduler_test_job',
    job_type        => 'PLSQL_BLOCK',
    job_action      => 'BEGIN TEST_PROC; END;',
    start_date      => systimestamp,
    repeat_interval => 'FREQ=DAILY;BYHOUR=09;BYMINUTE=15',
    end_date        => null,
    enabled         => true,
    comments        => 'belangloser Test-Job zur Ausfuehrung einer belanglosen Test-Prozedur.');

end;
/

-- sofortiger Start des Jobs unabhaengig vom Zeitplan
exec dbms_scheduler.run_job('my_scheduler_test_job')

In der Job-Definition kann man die Aktion und den Zeitplan direkt angeben (wie im Beispiel), man kann aber auch zuvor definierte Schedules und Programme verwenden. Eine umfangreiche Darstellung der Möglichkeiten bietet Tim Halls unten verlinkte Artikelserie, während die beiden einführenden Artikel eher die Grundlagen der Verwendung des Schedulers beleuchten (allerdings deutlich heller, als ich das hier gemacht habe).

Keine Kommentare:

Kommentar veröffentlichen