Sp auto 30

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic (Statspack)
Voir aussi Sp auto 5 · Sp snap · Sp statspack custom pkg 10g

Sp auto 30 planifie, via DBMS_JOB, un job qui déclenche un snapshot Statspack (statspack.snap) toutes les 30 minutes, aligné sur les demi-heures pleines (xx:00 / xx:30 précises).

Le script se connecte au compte propriétaire du repository Statspack (généralement PERFSTAT) puis soumet le job. Il faut que le paramètre d'instance job_queue_processes soit supérieur à 0, sinon le job ne sera jamais exécuté.

Pour une fréquence différente, voir Sp auto 5 (5 minutes). Une alternative packagée, plus lisible et réutilisable, est proposée dans Sp statspack custom pkg 10g / Sp statspack custom pkg 9i (procédure snap_schedule_30).

Script

-- Planifie un job DBMS_JOB déclenchant statspack.snap toutes les 30 minutes,
-- aligné sur les demi-heures pleines (xx:00 / xx:30).
-- A exécuter connecté comme propriétaire du repository Statspack (PERFSTAT).
-- Pré-requis : job_queue_processes > 0.

prompt Connexion au compte PERFSTAT (mot de passe demandé) :
connect perfstat

VARIABLE jobno  NUMBER
VARIABLE instno NUMBER

BEGIN
  SELECT instance_number INTO :instno FROM v$instance;

  DBMS_JOB.SUBMIT(
      :jobno
    , 'statspack.snap;'
    , TRUNC(sysdate,'HH24') + ((FLOOR(TO_NUMBER(TO_CHAR(sysdate,'MI'))/30)+1)*30)/(24*60)
    , 'TRUNC(sysdate,''HH24'')+((FLOOR(TO_NUMBER(TO_CHAR(sysdate,''MI''))/30)+1)*30)/(24*60)'
    , TRUE
    , :instno
  );

  COMMIT;
END;
/

prompt Numéro du job créé (à conserver pour le modifier ou le supprimer) :
print jobno

prompt Vérification du paramètre job_queue_processes :
show parameter job_queue_processes

prompt Prochaine exécution planifiée :
SELECT job, next_date, next_sec
FROM   user_jobs
WHERE  job = :jobno;

Voir aussi