Sp purge 30days 10g
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic (Statspack) |
| Voir aussi | Sp purge · Sp purge 30days 9i |
Sp purge 30days 10g supprime tous les snapshots Statspack antérieurs à un nombre de jours donné (30 par défaut), en s'appuyant sur la fonction native statspack.purge disponible à partir d'Oracle 10g — beaucoup plus simple et plus sûr qu'une purge manuelle table par table.
Adapté pour être planifié quotidiennement (via DBMS_JOB ou cron + script shell) afin d'éviter la croissance indéfinie du repository PERFSTAT. Pour Oracle 9i, qui ne dispose pas de statspack.purge, voir Sp purge 30days 9i.
Script
-- Supprime les snapshots Statspack antérieurs à &days_to_keep jours,
-- via la fonction native statspack.purge (Oracle 10g et suivants).
SET LINESIZE 145
SET PAGESIZE 9999
SET FEEDBACK off
SET VERIFY off
DEFINE days_to_keep = 30
WHENEVER SQLERROR EXIT ROLLBACK
SPOOL sp_purge_&days_to_keep._days_10g.lis
prompt Récupération de la base et de l'instance courantes :
COLUMN inst_num FORMAT 99999999999999 HEADING "Instance Num." NEW_VALUE inst_num
COLUMN inst_name FORMAT a15 HEADING "Instance Name" NEW_VALUE inst_name
COLUMN db_name FORMAT a10 HEADING "DB Name" NEW_VALUE db_name
COLUMN dbid FORMAT 9999999999 HEADING "DB Id" NEW_VALUE dbid
SELECT
d.dbid dbid
, d.name db_name
, i.instance_number inst_num
, i.instance_name inst_name
FROM
v$database d
, v$instance i
/
VARIABLE dbid NUMBER
VARIABLE inst_num NUMBER
VARIABLE inst_name VARCHAR2(20)
VARIABLE db_name VARCHAR2(20)
VARIABLE num_days NUMBER
VARIABLE snapshots_purged NUMBER
BEGIN
:dbid := &dbid;
:inst_num := &inst_num;
:inst_name := '&inst_name';
:db_name := '&db_name';
:num_days := &days_to_keep;
:snapshots_purged := statspack.purge(
i_num_days => :num_days
, i_extended_purge => true
, i_dbid => :dbid
, i_instance_number => :inst_num
);
END;
/
prompt Nombre de snapshots supprimés (plus vieux que &days_to_keep jours) :
print snapshots_purged
SPOOL off
COMMIT;
EXIT
Voir aussi
- Sp purge — script d'accueil (purge manuelle par plage de snap_id)
- Sp purge 30days 9i — équivalent pour Oracle 9i
- Sp statspack custom pkg 10g — package encapsulant la même logique (procédure purge)