ORA-12012: error on auto execute of job “SYS”.”BSLN_MAINTAIN_STATS_JOB” sorununun çözümü

BSLN_MAINTAIN_STATS_JOB işi , ORA-12012: error on auto execute of job “SYS”.”BSLN_MAINTAIN_STATS_JOB” ve ORA-06502: PL/SQL: numeric or value error hataları ile sonlandığında çözüm olarak soruna sebep olan baseline bilgisinin silinmesi gerekmektedir.

Bu hata genellikle , daha önceden bir instance için oluşturulmuş baseline mevcut ise ilgili instance’ın silindikten sonraki çalışmalarında karşılaşılmaktadır.

Muhtemel hatalar aşağıdaki gibi olacaktır.

SQL> EXEC DBMS_SCHEDULER.RUN_JOB('BSLN_MAINTAIN_STATS_JOB');
BEGIN DBMS_SCHEDULER.RUN_JOB('BSLN_MAINTAIN_STATS_JOB'); END;

*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "DBSNMP.BSLN_INTERNAL", line 2073
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_ISCHED", line 185
ORA-06512: at "SYS.DBMS_SCHEDULER", line 486
ORA-06512: at line 1

Mevcut baseline bilgilerini sorguladığımızda , sorun yaratan veri , instance_name olarak mevcut durumda olmayan satır yada LAST_COMPUTE_DATE alanındaki veri diğerlerinden farklı olan satırlardır diyebiliriz. Bu satırların silinmesi gerekmektedir.

 

SQL> set lines 10000                                                    
SQL> select * from DBSNMP.BSLN_BASELINES;

      DBID INSTANCE_NAME				    BASELINE_ID BSLN_GUID			 TIMEGR AUT STATUS					     LAST_COMPUTE_DATE
---------- ------------------------------------------------ ----------- -------------------------------- ------ --- ------------------------------------------------ ------------------
1356374413 ORCL2						      0 440ABCB48C49D5F9A00794CDC2EA519E XX	Y   ACTIVE					     05-FEB-17
1356374413 ORCL1						      0 E75CA15C8DDA8B27A7FBC49A12E6124C XX	Y   ACTIVE					     05-FEB-17
1356374413 ORCL3						      0 A9A4DA860AD6E745434273C1E08BFE09 HX	Y   ACTIVE					     05-FEB-17
1356374413 ORCL4						      0 BD6A23DD119E4FB2DDF1674DA4D633E4 ND	Y   ACTIVE					     29-JUL-12

Yukarıdaki bilgilere göre sorun yaratan satır ORCL4 instance için olan satır olarak görülmektedir. Bu kaydı aşağıdaki gibi siliyoruz.

SQL> DELETE FROM DBSNMP.BSLN_BASELINES WHERE INSTANCE_NAME ='ORCL4';

1 row deleted.

SQL> commit;

Commit complete.

Sonrasında ilgili job’ı çalıştırdığımızda sorunsuz tamamlanacaktır.

SQL> EXEC DBMS_SCHEDULER.RUN_JOB('BSLN_MAINTAIN_STATS_JOB');

PL/SQL procedure successfully completed.

İşlemleri sorgulamak için aşağıdaki sorguyu kullanabiliriz. Sorgu sonusundan da görüleceği gibi en son manuel olarak çalıştırılan job, SUCCEEDED şeklinde bitmiş olacaktır.

SELECT *
  FROM (  SELECT owner,
                 job_name,
                 log_date,
                 status,
                 run_duration
            FROM dba_scheduler_job_run_details a
           WHERE job_name = 'BSLN_MAINTAIN_STATS_JOB'
        ORDER BY log_date)
 WHERE ROWNUM < 10;

Bu job , otomatik olarak hafta sonları çalışmaktadır.

 

Loading

Leave Your Comment