现象
需要停止RMAN任务,直接杀掉rman备份主进程后,启动rman备份新任务后,RMAN任务卡顿。
查分析
前一次RMAN进程可能未完全释放数据库资源(如锁、内存结构)、数据库后台进程可能仍在处理上次中断的备份操作等蒋导致数据库卡顿。
需要杀掉rman备份脚本的PID和各个通道的PID;
处理过程:
1.查看rman 进程信息;
SQL> set linesize 300
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
---------- ------------------------ ----------------------------------------------------------------
1011 113286 rman channel=ORA_DISK_4
1024 113958 rman channel=ORA_DISK_7
1143 112812 rman channel=ORA_DISK_2
1215 112587 rman channel=ORA_DISK_1
41 113559 rman channel=ORA_DISK_5
207 114056 rman channel=ORA_DISK_8
350 113026 rman channel=ORA_DISK_3
795 94931 rman channel=ORA_DISK_1
806 94932 rman channel=ORA_DISK_2
818 94933 rman channel=ORA_DISK_3
831 94934 rman channel=ORA_DISK_4
SID SPID CLIENT_INFO
---------- ------------------------ ----------------------------------------------------------------
857 94936 rman channel=ORA_DISK_5
877 94937 rman channel=ORA_DISK_6
901 94940 rman channel=ORA_DISK_7
914 94942 rman channel=ORA_DISK_8
1035 113756 rman channel=ORA_DISK_6
16 rows selected.
2.根据当前rman 日志显示分配通道的SID,筛选出旧通道的SID;
SID SPID CLIENT_INFO
----- ------------------------ ------------------
795 94931 rman channel=ORA_DISK_1
806 94932 rman channel=ORA_DISK_2
818 94933 rman channel=ORA_DISK_3
831 94934 rman channel=ORA_DISK_4
857 94936 rman channel=ORA_DISK_5
877 94937 rman channel=ORA_DISK_6
901 94940 rman channel=ORA_DISK_7
914 94942 rman channel=ORA_DISK_8
3.查看系统进程
查询旧通道的PID后,发现该进程成为孤儿进程,而新rman备份任务的通道归属于新rman备份任务。
旧任务进程:
[oracle@hisdb2 database]$ ps -ef |grep 94931
oracle 94931 1 0 21:00 ? 00:00:30 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 126860 7987 0 22:15 pts/0 00:00:00 grep 94931
[oracle@hisdb2 database]$ ps -ef |grep 94932
oracle 94932 1 0 21:00 ? 00:00:28 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 127039 7987 0 22:15 pts/0 00:00:00 grep 94932
新任务进程
[oracle@hisdb2 database]$ ps -ef |grep 113026
oracle 113026 111114 0 21:42 ? 00:00:03 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 127080 7987 0 22:15 pts/0 00:00:00 grep 113026
[oracle@hisdb2 database]$ ps -ef |grep 111114
oracle 111114 111110 0 21:38 ? 00:00:04 rman app/oracle/db/11.2.0.4/bin/rman target / log /databk/log/incrbackup_hisdb2.log append
oracle 111244 111114 0 21:38 ? 00:00:01 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 111662 111114 0 21:39 ? 00:00:00 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 112587 111114 0 21:41 ? 00:00:05 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 112812 111114 0 21:41 ? 00:00:05 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 113026 111114 0 21:42 ? 00:00:04 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 113286 111114 0 21:42 ? 00:00:06 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 113559 111114 0 21:43 ? 00:00:03 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 113756 111114 0 21:43 ? 00:00:04 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 113958 111114 0 21:44 ? 00:00:02 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 114056 111114 0 21:44 ? 00:00:02 oraclehisdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 129056 7987 0 22:20 pts/0 00:00:00 grep 111114
4.杀掉旧rman任务的通道进程,
# kill -9 26224
再次查询SQL,发现通道任务消失,同时系统中备份过程的临时文件也自动消失。
总结
如果单单kill掉RMAN的进程号,那么RMAN备份并没有停止,而是要连channel进程也一起掉才可以!
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作