RMAN Querys | Monitoring Backup Jobs

Backup Backup Backup - And Test Restores
Image via Wikipedia

Cuando trabajamos con backups muy grandes y estamos en medio de un RESTORE de la Base de Datos,  algunas veces parece no terminar o pareciera que no sucede nada.

Es cuando comenzamos a ponernos ansiosos por que sabemos que ante la miníma falla, el RESTORE se detendrá y es tiempo que muchas veces no tenemos.

Por ello investigando un poco en la documentación encontre una query muy buena que nos dice que Porcentaje fue restoreado ( hecho al momento de la query ) y que porcentaje es necesario para la culminación de la pieza.

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
;

Recordemos que si tenemos varias piezas de backup , este indicador , nos mostrará dichos porcentajes, por pieza que se este ejecutando.

Si tenemos varias piezas de backup, por ejemplo tres, podremos observar los porcentajes de la pieza uno y cuando finalice y lo veamos en el alert.log , al mismo tiempo nos muestra 100% terminado y nos devuelve “no rows selected”, pero si seguimos ejecutando el query podemo observar que el contador comienza de nuevo con la pieza numero dos.

No olvidemos cuando alocamos varios CHANNELS ( Es la manera en cual lo utilizo en mi cluster ), la Query nos retornara , la cantidad de piezas por THREADS abiertos.

Les dejo un ejemplo de la ejecución de la query en un modo de recuperación que aloca varios THREADS.

SQL> SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SES  2  SION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFA  3    4    5    6    7  R <> TOTALWORK
;  8

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   10219264   13965312      73.18
       651         77          1    7689923    8774144      87.64
       646          5          1    7707102    8784064      87.74
       645          1          1    8079297    9577984      84.35

SQL>
SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   10825656   13965312      77.52
       651         77          1    7919040    8774144      90.25
       646          5          1    7843550    8784064      89.29
       645          1          1    8296382    9577984      86.62

SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   11815479   13965312      84.61
       646          5          1    8652033    8784064       98.5
       645          1          1    9221032    9577984      96.27

SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   11887671   13965312      85.12
       646          5          1    8764534    8784064      99.78
       645          1          1    9292071    9577984      97.01

SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   12198711   13965312      87.35
       645          1          1    9572148    9577984      99.94

SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*

       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       647         19          1   13956331   13965312      99.94

SQL> r
  1  SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
  2  ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
  3  FROM V$SESSION_LONGOPS
  4  WHERE OPNAME LIKE 'RMAN%'
  5  AND OPNAME NOT LIKE '%aggregate%'
  6  AND TOTALWORK != 0
  7  AND SOFAR <> TOTALWORK
  8*no rows selected

Espero le sea de utilidad como lo fue para mi.

One thought on “RMAN Querys | Monitoring Backup Jobs

Comments are closed.