Bonjour,
Je teste actuellement la procédure dbms_snapshot.purge_snapshot_from_log et je rencontre quelques difficultés.
Soit la table MLOG$_BJ contenant 871 lignes et n'étant plus rafraichie
Je recherche les snapshot_id faisant référence à cette table de log
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT owner, table_name, num_rows FROM dba_tables WHERE table_name = 'MLOG$_BJ' / OWNER TABLE_NAME NUM_ROWS ------------------------------ ------------------------------ ---------- SIGP MLOG$_BJ 871
Je teste la procédure sur le snapshot_id 565
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT snapshot_id, master, current_snapshots FROM dba_snapshot_logs WHERE log_table='MLOG$_BJ' ORDER BY 3 / SNAPSHOT_ID MASTER CURRENT_SNAPSHOTS -------------------------------------------------------------- 565 BJ 2005/11/12-15.03.22 1774 BJ 2008/06/02-14.31.25
Je vérifie ensuite si le nombre de ligne à diminué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 BEGIN DBMS_SNAPSHOT.PURGE_SNAPSHOT_FROM_LOG (565); END; / Procédure PL/SQL terminée avec succès.
Ce n'est pas le cas, en revanche le snapshot_id n'apparait plus dans la vue dba_snapshot_logs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT owner, table_name, num_rows FROM dba_tables WHERE table_name = 'MLOG$_BJ' / OWNER TABLE_NAME NUM_ROWS ------------------------------ ------------------------------ ---------- SIGP MLOG$_BJ 871
J'ai procédé à l'identique avec le snapshot_id 1774 sans plus de succès, aurais-je oublié quelque chose ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT snapshot_id, master, current_snapshots FROM dba_snapshot_logs WHERE log_table='MLOG$_BJ' ORDER BY 3 / SNAPSHOT_ID MASTER CURRENT_SNAPSHOTS ----------- ------------------------------ ------------------- 1774 BJ 2008/06/02-14.31.25
Merci pour votre aide,
Alain
Partager