Muitas vezes, em uma atualização de sistema, carga de dados ou até mesmo backup do rman, muitos usuários ficam na dúvida sobre quanto tempo falta para terminar determinado processo no banco de dados.
Já presenciei casos, em que o analista de TI acreditava que o processo ou sistema havia travado.
Também surgem dúvidas como: “Quanto tempo falta para terminar o backup ?”
Para verificar isto, no Oracle, a partir da versão 8, foi criada a Dynamic Performance view chamada v$session_longops.
Esta View é preenchida pelo banco de dados quando uma operação está em execução por mais de 6 segundos.
Com isso, é possível consultar esta view para obter informações sobre o processo em execução no banco de dados através da query:
SELECT SID, SERIAL#, opname, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) COMPLETE
FROM V$SESSION_LONGOPS
WHERE
TOTALWORK != 0
AND SOFAR != TOTALWORK
order by 1;
Outra opção variação da query:
SELECT SID,
SERIAL#,
START_TIME,
((SOFAR/TOTALWORK)*100),’%’,
MESSAGE
FROM V$SESSION_LONGOPS
WHERE TIME_REMAINING > 0 ORDER BY start_time;
Monitorando processos do RMAN – Andamento do Backup RMAN
Podemos utilizar uma variação da mesma query para monitorar o status de um backup via RMAN
SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) “%_COMPLETE”
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE ‘RMAN%’
AND OPNAME NOT LIKE ‘%aggregate%’
AND TOTALWORK != 0
AND SOFAR != TOTALWORK;
Exemplo Resultado:
SID SERIAL# OPNAME SOFAR TOTALWORK COMPLETE
———- ———- ——————– ———- ———- ———-
904 13371 Table Scan 6311 24498 25.76
985 1586 Table Scan 6333 24498 25.85