题记:最近客户的一套订购数据库经常会因为数据及业务压力太大,在rman进行全备或是增备时,而此时业务有大量要处理时,系统资源
题记:最近客户的一套订购数据库经常会因为数据及业务压力太大,在rman进行全备或是增备时,,而此时业务有大量要处理时,系统资源就会被耗尽,会影响到业务的正常,所以常有时需要先终止掉rman备份,这里提供了我在处理过程中的方法,希望大家喜欢!
本文的目的就是在紧急状态下,需要立即终止正在进行的rman备份进程。
(1)查看rman分配的各个通道的进程号
sql> select sid, spid, client_info
from v$process p, v$session s
where p.addr = s.paddr
and client_info like '%rman%';
sid spid client_info
---------- ------------------------ -------------------------
525 26244 rman channel=t1
1023 26245 rman channel=t2
699 26246 rman channel=t3
(2)根据第(1)中得到的进程号,终止rman备份
注:这里既要kill 掉rman备份脚本的pid, 也要kill 掉rman中分配的各个通道的pid
subsdb1:~ # ps -ef | grep 26244
oracle 26244 26224 7 17:12 ? 00:01:49 oraclesubsdb (description=(local=yes)(address=(protocol=beq)))
root 9877 9603 0 17:34 pts/11 00:00:00 grep 26244
subsdb1:~ # kill -9 26244
subsdb1:~ # ps -ef | grep 26245
oracle 26245 26224 5 17:12 ? 00:01:13 oraclesubsdb (description=(local=yes)(address=(protocol=beq)))
root 9968 9603 0 17:35 pts/11 00:00:00 grep 26245
subsdb1:~ # kill -9 26245
subsdb1:~ # ps -ef | grep 26246
oracle 26246 26224 4 17:12 ? 00:01:03 oraclesubsdb (description=(local=yes)(address=(protocol=beq)))
root 10009 9603 0 17:35 pts/11 00:00:00 grep 26246
subsdb1:~ # kill -9 26246
subsdb1:~ # ps -ef | grep rman
oracle 26224 25962 0 17:11 pts/3 00:00:03 rman target / nocatalog
root 10061 9603 0 17:35 pts/11 00:00:00 grep rman
subsdb1:~ # kill -9 26224
subsdb1:~ # ps -ef | grep rman
root 10102 9603 0 17:36 pts/11 00:00:00 grep rman
subsdb1:~ # ps -ef | grep 26246
root 10213 9603 0 17:36 pts/11 00:00:00 grep 26246
此时rman备份操作已经被终止。查看(1)中的sql语句时,结果为空。
说明:如果单单kill掉rman的进程号,那么rman备份并没有停止,而是要连channel进程也一起掉才可以!