暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RMAN备份恢复典型案例——数据库卡顿

原创 Digital Observer 2025-02-19
211

作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号/墨天轮:Digital Observer;CSDN/PGfans:施嘉伟;ITPUB:sjw1933

一、数据库卡顿

引起数据库卡顿的原因有很多,以下案例为RMAN备份时间设置不当引起的性能问题。

1. 案例背景

某生产数据库5月22日8点05左右业务出现延迟。

2. 案例细节

以下细节省去前期主机性能排查以及数据库基本定位步骤。
截取数据库性能分析报告,如图所示:
故障时间段数据库一直处于繁忙状态,从数据库等待事件及性能分析报告都可以看出高峰时间段数据库正在进行备份操作,消耗了大量资源,导致前台相应时间变长。
为了进一步确认故障时间段是否有备份正在进行,查看备份相关信息,如图所示:

此处已经很明显了,确实备份一直在执行。
因此只要中断备份任务即可解决性能问题。

3. 解决方案

1)查看RMAN分配的各个通道的进程号:
select s.sid, s.serial#, p.spid, s.client_info from vprocessp,vprocess p, vsession s
where p.addr = s.paddr and s.program like ‘%rman%’ ;

SID SERIAL# SPID CLIENT_INFO


    89      64899 5157
   107      49576 5170
    96      39108 5172                     rman channel=ORA_DISK_1

2)根据第上面步骤中得到的进程号,终止RMAN备份:

[root@asmdb ~]# ps -ef | grep beq
oracle    1918     1  0 Jul10 ?        00:00:09 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15790     1  0 08:53 ?        00:00:00 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15892 15885  1 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15897 15885  1 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15898 15885  1 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15899 15885  2 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15900 15885  2 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   15901 15885  5 08:57 ?        00:00:00 oracleasmdb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root     15903 15823  0 08:57 pts/3    00:00:00 grep beq

2)kill相关进程:

[root@asmdb ~]# kill -9 15898
[root@asmdb ~]# kill -9 15899
[root@asmdb ~]# kill -9 15900
[root@asmdb ~]# kill -9 15901

注意 这里既要kill 掉RMAN备份脚本的PID,也要kill 掉RMAN中分配的各个通道的PI

[root@asmdb ~]# ps -ef | grep rman
oracle   15885 15740  1 08:57 pts/2    00:00:02 rman target /
root     15926 15823  0 09:01 pts/3    00:00:00 grep rman
[root@asmdb ~]# kill -9  15885

  1. 案例总结

1)定期调整RMAN备份策略。
随着生产数据库数据量的增加备份策略需要定期调整。
2)检查网络及存储性能瓶颈。
hhh6.jpg

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论