Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:oracle_scheduler

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
dba:oracle_scheduler [2018/08/01 10:24] – [Scheduler Calendaring Syntax] gpipperrdba:oracle_scheduler [2023/03/08 13:54] (aktuell) – [Job Überwachen] gpipperr
Zeile 1: Zeile 1:
-===== Der Oracle Job Scheduler 10g/11g ===== +===== Der Oracle Job Scheduler 10g/11g/12c/18c/19c ===== 
-**10g, 11g, 12c**+**Erste Version 08/2018 - 10g, 11g, 12c, 18c, 19c**
  
 Der Oracle Jobs Scheduler in der Datenbank ist sehr mächtig und kann sehr umfangreich konfiguriert werden. Der Oracle Jobs Scheduler in der Datenbank ist sehr mächtig und kann sehr umfangreich konfiguriert werden.
  
-Mit dem Scheduler lassen sich komplexe Job Ketten aufbauen und komplexe Zeitpläne realisieren.+Mit dem Scheduler lassen sich komplexe Job Ketten aufbauen und komplexe Zeitpläne realisieren, das Filesystem überwachen etc.
  
 Leider ist daher eine einfache Definition eines Standard Job im Umkehrschluss oft etwas kompliziert, da viele Parameter definiert werden können und/oder müssen. Leider ist daher eine einfache Definition eines Standard Job im Umkehrschluss oft etwas kompliziert, da viele Parameter definiert werden können und/oder müssen.
  
 Verstärkend kommt hinzu, das einzelne Elemente bei der Definition eines Jobs wiederum optional sind und mehrere Weg damit zum gleichen Ziel führen. Verstärkend kommt hinzu, das einzelne Elemente bei der Definition eines Jobs wiederum optional sind und mehrere Weg damit zum gleichen Ziel führen.
 +
 +Siehe auch:
 +
 +  * PDF => {{ :dba:job_steuerung_oracle-scheduler-doag_2021_datenbank_gunther_pipperr_v01.pdf | DOAG 2021 Datenbank mit Exaday - Job Steuerung in der Datenbank mit dem Oracle Scheduler  - Montag 17.Mai 2021  14:00 bis 14:40 Online}}
 +  * PDF => {{ :prog:apex-automation-oracle-scheduler-connect-2021_gunther_pipperr_v01.pdf | APEX Connect 2021 - APEX 20.2 Automations Feature und der Oracle Scheduler im Einsatz - Mittwoch, 5. Mai 2021 , 14:00 - 14:40 Online }}
 +
 +----
 +
  
 Übersicht über die Abhängigkeiten bei einer Definition eines Jobs: Übersicht über die Abhängigkeiten bei einer Definition eines Jobs:
Zeile 531: Zeile 539:
 siehe auch [[dba:oracle_db_statistik_veraltet|Datenbank Auto Statistik Job überwachen - Fehlerursache bei veralteten Statistiken]] siehe auch [[dba:oracle_db_statistik_veraltet|Datenbank Auto Statistik Job überwachen - Fehlerursache bei veralteten Statistiken]]
  
 +
 +
 +===ORA-27486: Nicht ausreichende Berechtigungen===
 +
 +Problem:
 +<code sql>
 +ORA-27486: Nicht ausreichende Berechtigungen
 +ORA-06512: in "SYS.DBMS_ISCHED", Zeile 168
 +ORA-06512: in "SYS.DBMS_SCHEDULER", Zeile 288
 +ORA-06512: in Zeile 2
 +</code>
 +
 +Lösung:
 +<code sql>
 +grant create job to <SCHEMA>;
 +</code>
  
  
Zeile 565: Zeile 589:
 / /
 </code> </code>
 +
 +==== Auswertung des Job Logs sehr langsam ====
 +
 +
 +Evlt. sind es einfach zuviele Einträge im Log, siehe => How To Purge DBA_SCHEDULER_JOB_LOG and DBA_SCHEDULER_WINDOW_LOG (Doc ID 443364.1)
 +
 +Hierzu auch folgende Anmerkungen beachten => [[dba:oracle_scheduler_log_pflege|DBMS_SCHEDULER Job Log Lösch-Verhalten - Löschen optimieren]]
 +
 +----
 +==== Job Überwachen ====
 +
 +Hier ein SQL um alle Jobs mit Ihren Laufzeiten und den letzten Fehler aus den Log zu überwachen:
 +<code sql>
 +with jobs as (
 +select  js.owner
 +       ,  js.job_name
 +       ,  decode (js.state, 'SHUD', 'SCHEDULED', 'DIS' , 'DISABLED', 'RUN', 'RUNNING',   js.state) as state
 +       ,  js.run_count
 +       ,  js.failure_count
 +       ,  to_char (js.last_start_date, 'dd.mm hh24:mi') as last_start_date
 +       ,  to_char (js.next_run_date, 'dd.mm hh24:mi'  as next_run_date
 +       , LAST_RUN_DURATION
 +    from dba_scheduler_jobs js
 +)
 +
 +last_log_date as (
 +select owner
 +    , job_name 
 +    , max(log_date) as log_date
 + from dba_scheduler_job_log 
 +group by  owner
 +    , job_name
 +    )
 +, last_logs as (
 +  select l.* 
 +    from dba_scheduler_job_log l  
 +inner join last_log_date ld 
 +  on (    ld.owner=l.owner 
 +      and  ld.job_name=l.job_name
 +      and ld.log_date=l.log_date
 +    )
 +
 +)
 +
 +select j.OWNER
 +    , j.JOB_NAME
 +    , j.STATE
 +    , j.RUN_COUNT
 +    , j.FAILURE_COUNT
 +    , round( EXTRACT( SECOND FROM j.LAST_RUN_DURATION ) 
 +          + EXTRACT( MINUTE FROM j.LAST_RUN_DURATION ) * 60 
 +          + EXTRACT( HOUR FROM j.LAST_RUN_DURATION ) * 60 * 60 
 +          + EXTRACT( DAY FROM j.LAST_RUN_DURATION ) * 60 * 60 * 24
 +            ,2) as LAST_RUN_DURATION_SEC
 +    , j.LAST_START_DATE
 +    , j.NEXT_RUN_DATE
 +    , to_char(l.LOG_DATE, 'dd.mm hh24:mi') as last_log_date
 +    , nvl(l.STATUS,'NO_LOG_FOR_THIS_JOB') as  last_log_status
 +  from jobs j 
 + left join last_logs l
 +   on  (j.owner=l.owner and  j.job_name=l.job_name)
 +where 1=1
 + -- only active  Jobs
 + and state != 'DISABLED'
 +order by j.owner,j.job_name
 +;
 +
 +
 +</code>
 +
 +----
  
 ===== Quellen zum Thema ===== ===== Quellen zum Thema =====
Zeile 578: Zeile 673:
             * https://www.eehelp.com/question/syntax-of-calendar-dbms-scheduler-repeat-interval/             * https://www.eehelp.com/question/syntax-of-calendar-dbms-scheduler-repeat-interval/
             * http://www.snapdba.com/2014/10/dbms_scheduler-jobs-running-an-hour-late-dstbst-issues/#.WyE8yO6FPmE             * http://www.snapdba.com/2014/10/dbms_scheduler-jobs-running-an-hour-late-dstbst-issues/#.WyE8yO6FPmE
 +            * https://otsteam.tistory.com/390
  
  
  
 +Bei 19c zu beachten => https://mikedietrichde.com/2020/05/21/dbms_job-one-off-patch-needed-for-oracle-19-3-0-19-7-0/
dba/oracle_scheduler.1533111894.txt.gz · Zuletzt geändert: 2018/08/01 10:24 von gpipperr