问题背景
如果,你负责的数据库服务器,在RMAN进行全备时,业务又有大量数据要处理,一时间,系统资源直接被耗尽,影响到了业务的正常,你准备怎么处理?
解决办法
【不推荐】当时我们组的另外一个同事在没有询问我的情况下,直接修改oracle分配内存参数,关闭监听,关闭oracle数据库。数据库停了半小时才停下来。当然数据库停下来,所有进程都消失,资源都释放了。
【推荐】其实还有更好的方法,那就是直接杀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%';
SIDSPID CLIENT_INFO
11315898 rman channel=ORA_DISK_1
11915899 rman channel=ORA_DISK_2
12015900 rman channel=ORA_DISK_3
11715901 rman channel=ORA_DISK_4
(2)根据第(1)中得到的进程号,终止RMAN备份
注:这里既要kill 掉RMAN备份脚本的PID,www.linuxidc.com?也要kill 掉RMAN中分配的各个通道的PID