I'm running 11.2.0.2 on Solaris and want to know what is the proper way to kill an RMAN backup job that has already started?
This sounds like something as simple as: ps -ef |grep rman, then, kill -9 both rman processes. Right? Wrong!
$ /home/oracle>ps -ef |grep rman
oracle 27493 10700 0 14:08:44 pts/1 0:00 /bin/ksh rman_bkup_db_lvl0.ksh MYDB
oracle 27524 11155 0 14:09:00 pts/3 0:00 grep rman
oracle 27508 27493 0 14:08:44 pts/1 0:01 rman target /
$ /home/oracle>kill -9 27493 27508
$ /home/oracle>ps -ef |grep rman
oracle 27552 11155 0 14:09:56 pts/3 0:00 grep rman
Rman process seems to be killed.
But, looking in the database, the process is still running.
SQL> select username, program from v$session where username = 'SYS';
USERNAME PROGRAM
------------------------ ------------------------------------------------
SYS rman@myhost (TNS V1-V3)
SYS rman@myhost(TNS V1-V3)
SYS OMS
SYS sqlplus@myhost (TNS V1-V3)
SYS rman@myhost (TNS V1-V3)
(and several others from previous runs that I killed off at the OS level)
When I looked in OEM, I could see a spike in user I/O and sys I/O and the processes were the RMAN processes.
I found one web page that shows if I select from and join V$SESSION_WAIT, V$SESSION, and V$PROCESS
WHERE s.client_info LIKE 'rman%', I can get the SID and Serial# to kill the sessions within the database.
Is there an easier way to do it than this? In my case, I ended up using Toad and killed all the RMAN processes, but then I hit bug 11872103 which left status showing RUNNING and which causes a performance problem when resync'ing the catalog.