Una manera útil de ligar procesos de oracle al sistema operativo.
Para poder identificar el proceso a nivel sistema operativo de un respaldo con RMAN, primero debemos de marcarlo antes de ejecutarlo con ayuda del COMMAND ID. En el siguiente ejemplo, muestro como se puede hacer marcando con la etiqueta superbackup
RMAN> run { set command id to 'superbackup'; backup as compressed backupset database; }
De esta manera al realizar un query sobre v$session, la etiqueta aparecerá en la columna CLIENT_INFO, con el siguiente formato:
id=string,rman channel=channel_id
Donde: string es el valor que le dimos, en esta caso superbackup.
Channel_id, el canal del respaldo.
Realizando una consulta sobre v$session o en su caso gv$session si estamos en RAC, podemos ver la etiqueta en la columna CLIENT_INFO .
select SID SERIAL# CLIENT_INFO from gv$session where CLIENT_INFO like '%superbackup%'; SID SERIAL# CLIENT_INFO --- ------- ---------------------------------------------------------------- 189 14190 id=superbackup,rman channel=ORA_DISK_2 191 9799 id=superbackup 195 11643 id=superbackup,rman channel=ORA_DISK_1
Aquí podemos notar las dos sessiones que corresponden al canal 1 y 2 de RMAN. Para obtener el proceso del sistema operativo, hacemos un join contra v$process.
select a.spid, b.sid, b.serial#, b.client_info from v$process a, v$session b where a.addr = b.paddr and b.CLIENT_INFO like '%superbackup%'; spid SID SERIAL# CLIENT_INFO --- ------ ------- ---------------------------------------------------------------- 15233 189 14190 id=superbackup,rman channel=ORA_DISK_2 16556 191 9799 id=superbackup 16557 195 11643 id=superbackup,rman channel=ORA_DISK_1
Los procesos ahora los podemos identificar en el sistema operativo con:
ps -fea |grep 15233 ps -fea |grep 16557