Sidebar

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

Tips BD