En esta entrada vamos a ver, de forma rápida, como localizar y manipular sesiones de RMAN en Oracle Database. Específicamente, cómo matar sesiones lanzando un alter system kill session
una vez localizado el SID y SERIAL# de la misma.
El primer paso es localizar las sesiones activas de RMAN, para ello conectamos vía SQLPLUS a la base de datos y lanzamos la siguiente consulta:
SQL> select b.sid, b.serial#, a.spid, b.client_info from v$process a, v$session b where a.addr=b.paddr and client_info like 'rman%';
El resultado será un listado de las sesiones de RMAN junto a su SID, SERIAL# y SPID:
SID SERIAL# SPID CLIENT_INFO ---------- ---------- ------------ --------------------------------- 351 31412 632 rman channel=ORADSK01
Con esta información, ya podemos manipular la sesión. En el caso de querer finalizarla/matarla, la query a ejecutar en SQLPLUS es la siguiente:
SQL> alter system kill session '351,31412' immediate;
El output de la ejecución del comando debería mostrar:
system altered.
Y el proceso de RMAN a nivel de sistema operativo rman target /
también debería haber finalizado:
[oracle@db01 ~]$ ps -ef | grep rman | grep -v grep [oracle@db01 ~]$
Tras matar la sesión desde SQLPLUS (o si hicierais un SIGKILL al proceso directamente…), la salida de la ejecución de RMAN mostrará la confirmación de finalización del job:
[...] RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/12/2019 ORA-00028: your session has been killed continuing other job steps, job failed will not be re-run RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/12/2019 ORA-00028: your session has been killed [...]