Se connecter avec
S'enregistrer | Connectez-vous

Help Script Unix ou Autre

Bonjour,

Est-il possible svp de créer un Shell ou autre qui scrute à intervalles régulier (5 minutes) le résultat de la requête ci dessous.


Avant chaque exécution, il faut repérer si la précédente exécution a retourner des valeurs et comparer ces nouvelles valeurs, si elles sont identiques, déclencher l’envoi d’un mail à l’exploitation.



Exemple :

Exécution 1 è ramène 1 ligne dont le résultat est #45

5 minutes plus tard

Exécution 2 è ramène 2 lignes

è Comparer Exécution 1 et Exécution 2, si ces valeurs sont identiques alors envoi d’un mail à l’exploitation informatique avec les détails.

Exécution 3 è ramène 1 ligne

è Comparer Exécution 2 et Exécution 3, si ces valeurs sont identiques alors envoi d’un mail à l’exploitation informatique avec les détails sinon ne rien faire.



Le but de cette demande est de détecter les locks Oracle.


La requête :



SELECT bs.username "Blocking User", bs.username "DB User",
ws.username "Waiting User", bs.SID "SID", ws.SID "WSID",
bs.sql_address "address", bs.sql_hash_value "Sql hash",
bs.program "Blocking App", ws.program "Waiting App",
bs.machine "Blocking Machine", ws.machine "Waiting Machine",
bs.osuser "Blocking OS User", ws.osuser "Waiting OS User",
bs.serial# "Serial#",
DECODE (wk.TYPE,
'MR', 'Media Recovery',
'RT', 'Redo Thread',
'UN', 'USER Name',
'TX', 'Transaction',
'TM', 'DML',
'UL', 'PL/SQL USER LOCK',
'DX', 'Distributed Xaction',
'CF', 'Control FILE',
'IS', 'Instance State',
'FS', 'FILE SET',
'IR', 'Instance Recovery',
'ST', 'Disk SPACE Transaction',
'TS', 'Temp Segment',
'IV', 'Library Cache Invalidation',
'LS', 'LOG START OR Switch',
'RW', 'ROW Wait',
'SQ', 'Sequence Number',
'TE', 'Extend TABLE',
'TT', 'Temp TABLE',
wk.TYPE
) lock_type,
DECODE (hk.lmode,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR (hk.lmode)
) mode_held,
DECODE (wk.request,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR (wk.request)
) mode_requested,
TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2
FROM v$lock hk, v$session bs, v$lock wk, v$session ws
WHERE hk.BLOCK = 1
AND hk.lmode != 0
AND hk.lmode != 1
AND wk.request != 0
AND wk.TYPE(+) = hk.TYPE
AND wk.id1(+) = hk.id1
AND wk.id2(+) = hk.id2
AND hk.SID = bs.SID(+)
AND wk.SID = ws.SID(+)
ORDER BY 1;

Merci par avance à tous

Autres pages sur : help script unix

Lassé par la pub ? Créez un compte
Tom's guide dans le monde