Sp auto
| Fiche express | |
|---|---|
| Type | Script SQL*Plus d'administration (Statspack) |
| Voir aussi | Sp auto 15 · SGA usage |
Sp auto crée, via DBMS_JOB, une tâche planifiée exécutant un instantané
Statspack (statspack.snap) toutes les heures pile. À exécuter connecté sous le
compte propriétaire du référentiel Statspack (typiquement PERFSTAT) ; le script
invite lui-même à saisir son mot de passe via connect perfstat.
Pré-requis : le paramètre d'instance job_queue_processes doit être supérieur à 0
pour que les jobs planifiés s'exécutent réellement — le script affiche sa valeur courante en
fin d'exécution pour vérification, ainsi que le numéro de job créé (à noter pour le modifier
ou le supprimer par la suite) et la prochaine échéance planifiée.
Statspack reste une alternative gratuite à AWR (Automatic Workload Repository), qui nécessite
de son côté une licence Diagnostics Pack — pertinent en Standard Edition, ou sur une
Enterprise Edition non licenciée pour ce pack. DBMS_JOB est l'ordonnanceur
historique d'Oracle, remplacé depuis Oracle 10g par DBMS_SCHEDULER (plus complet :
fenêtres de maintenance, chaînes de jobs, contraintes de ressources...) mais toujours
fonctionnel et suffisant pour ce cas d'usage simple.
Script
PROMPT =========================================================================
PROMPT Ce script crée un nouveau job DBMS_JOB exécuté au sommet de chaque heure.
PROMPT Le job effectue un instantané Statspack via le package STATSPACK fourni
PROMPT par Oracle.
PROMPT
PROMPT À exécuter connecté en tant que propriétaire du référentiel STATSPACK
PROMPT (typiquement PERFSTAT). Le script demande le mot de passe PERFSTAT.
PROMPT
PROMPT Le paramètre init.ora job_queue_processes doit être supérieur à zéro
PROMPT pour pouvoir soumettre et exécuter un job.
PROMPT =========================================================================
PROMPT
PROMPT Appuyer sur [ENTRÉE] pour continuer, ou CTRL-C pour annuler...
PAUSE
PROMPT Mot de passe de l'utilisateur PERFSTAT :
CONNECT perfstat
-- Planifie un instantané exécuté sur cette instance toutes les heures pile
VARIABLE jobno NUMBER;
VARIABLE instno NUMBER;
BEGIN
SELECT instance_number INTO :instno
FROM v$instance;
DBMS_JOB.SUBMIT(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'),
'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
COMMIT;
END;
/
PROMPT Numéro de job (à noter pour le modifier ou le supprimer) :
PRINT jobno
PROMPT Valeur courante de 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
- Sp auto 15 — même principe, toutes les 15 minutes
- SGA usage — occupation mémoire, autre volet du suivi de performance