ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN 与 Resource Manager Plan

RMAN 与 Resource Manager Plan

原创 Linux操作系统 作者:emotionking 时间:2012-02-15 16:46:14 0 删除 编辑
ITPUB第一次提问:
服务器:RAID5     三块硬盘
系统    :linux
RMAN :本数据库备份到本机,再tar备份文件上传到指定FTP上。(由于硬件条件等影响,目前使用这种备份方式)
情况:  备份从凌晨12:00做全库(140G数据量)备份,到第二天9:00不能完成备份。超出接受范围。
希望: 本人比较菜,不知道怎么去找它的瓶颈,从哪方面去看,比如I/O是否完全利用上了,RMAN通道的配置个数是否合理等。希望同事们能给出一个检查性能瓶颈的思路和优化的思路(操作系统命令不是很熟,能附上更好,呵呵)。
晚上准备这样去查看(没有做...)
1、诊断性能瓶颈:
     读取文件-->buffer-->写入文件
     1)、大概需要读取多大数据
     2)、大概需要写入多大数据
     3)、buffer是否够用
     4)、硬盘纯读速度
     5)、硬盘纯写速度
     6)、读写同时进行速度
     7)、备份时读速度
     8)、备份时写速度
     9)、备份时所用buffer大小
     10)、数据库此时buffer大小
     11)2个通道是否在平行读写
 
I\O运行时状况: sar -u 1 10 或者 iostat -m、sar -d
思路:         top占有最大资源进程。如果是oracle进程查看v$session event 和 v$session_wait
确定是I\O问题 还是内存问题 
 
 
ITPUB第二次提问:
Oracle11gR1
资源管理计划(Resource Manager plan)中job HM_CREATE_OFFLINE_DICTIONARY产生了离线数据字典 '?/diag/rdbms/xe/XE/ir/offline_dictionary.ir' 文件大小有1G
问题:在做Rman备份的时间发现 通道进出读取这个文件并把cpu全部占用完了。把这个文件清空就没问题了,求教这是什么原因。
   1、RMAN备份在备份前去检查它吗?
   2、这个job有什么作用可以disable吗
     (本人查找资料描述如下:The system job SYS.HM_CREATE_OFFLINE_DICTIONARY executes the dbms_hm.create_offline_dictionary package
                           which creates a LogMiner offline dictionary in the ADR for DRA name translation service.
                          The job for generating the logminer dictionary is scheduled during the maintenance window. This job can be disabled.)
      如果能,怎么disable(没有找到)
   3、求救。。。
 

处理过程总结:
  前言:问题虽然处理,但是还有疑问,发给大家共享下处理的过程,同时也希望大家给出想法。
 
  现象;RMAN备份异常慢。0级本机备份140G的数据库既然要2天时间完成(恐怖).
 
  分析过程:本人比较菜,所以走了很多弯路,不过正是因为这些弯路让我学到了不少。
            1、开始首先想到的是io问题。Rman备份时,top系统发现 oracle进程把内存和cpu占光了,特别是cpu得到100%左右,但是 sar -u 1 10 发现idle还有80%多.
               iostat -x -k 1 10 发现每秒IO很小。说明此时RMAN没有大量的读写操作,或者队列在排队。
            2、安装优化思路去查看这个oracle进程. V$SESSION,V$SESSION_WAIT,V$PROCESS.查看到system I/O,stat=-1说明没有等待,正在执行.查询sql没有执行的相关
               sql.纠结了下。
            3、想到,这个进程到底在干什么,网上搜到跟踪进程命令strace -p 进程。 跟踪发现大量的read(15, ":37:28', 'MM/DD/YYYY HH24:MI:SS'"..., 1024) = 1024
               这类系统调用的函数,这是系统的,他谁需要大量的cpu资源。猜测是从内存中读取的。但是始终找不到。加大内存,还是不行.
            4、经过商量,冷备份的数据库,重装系统和数据库,可以了。
            5  晚上12点再测试备份,不行了。晕,想想在这期间连接了项目,看alter日志,出现数据库 资源管理计划 报告。
            6  继续跟踪进程,这时候发现一篇从OS角度分析RMAN备份进程的文章,柳暗花明啊。ll /proc/进程/fd .发现rman通道进程打开了一个文件 ?/rdbms/ir/offline_dicionary.ir,清空试试。果然速度上来了
               cpu正常了。
             搜索和其相关的信息
              查找资料是由于Resource Manager Plan执行了了系统job HM_CREATE_OFFLINE_DICTIONARY 创建了这个离线字典。至于RMan怎么去读这个文件还不知道。
              查看资料:(http://blog.csdn.net/wyzxg/article/details/6831479)
              2. HM_CREATE_OFFLINE_DICTIONARY
              The job is created by the 11g script. catmwin.sql which mentions that this is a job for creation of offline dictionary
              for Database Repair Advisor.
              The system job SYS.HM_CREATE_OFFLINE_DICTIONARY executes the dbms_hm.create_offline_dictionary package which creates a LogMiner offline dictionary in the ADR for DRA name translation service.
              The job for generating the logminer dictionary is scheduled during the maintenance window. This job can be disabled. ‘
           好像可以disable 这个job
           于是执行:exec dbms_scheduler.disable( name=>'HM_CREATE_OFFLINE_DICTIONARY', force=> TRUE);
           22:00执行资源维护计划的时候没有运行这个job,也没有产生 offline dictionary数据字典。全库恢复测试OK。至此问题解决。
 但是有疑问: 1、RMAN在备份时去读这个 '?/diag/rdbms/xe/XE/ir/offline_dictionary.ir' 文件做什么用途。可以在RMAN配置中去除吗
             2、数据库产生这个文件的作用只有 for Database Repair Advisor 这一个吗 ,是否还有其他作用
 本次用到的总结:
         猜测过问题原因: 数据库文件(控制文件,数据文件,日志文件)部署不合理导致IO争用、内存不够、服务器不行(CPU)、在线日志太小、项目导致Resource Manager Plan产生,然后和RMAN进行资源争用
         linux: top、vmstat 、iostat、sar、strace、ll /proc/进程号/fd
         Oracle: session相关的动态性能视图,Resource Manager Plan,RMAN
         知识点: RMAN备份原理、11g新特性 Resource Manager Plan 、linux操作系统性能监控相关工具
        
   参考网址:
       http://tech.it168.com/db/2007-10-08/200710080842107.shtml(RMAN性能调优)
       http://www.linuxidc.com/Linux/2011-09/42741p2.htm(RMAN 系列(九) ---- 调整RMAN备份与恢复操作的性能)
       http://www.linuxidc.com/Linux/2011-02/31976.htm(Vmware+Linux+Oracle 10G RAC全程详细图解)
       http://soft.chinabyte.com/os/275/11907275.shtml(Linux测试硬盘读写速度)
       http://www.bitscn.com/os/linux/200904/158638_4.html  (利用Linux系统命令行性能检测工具)
       http://langzixin.iteye.com/blog/1145245  (memory_max_target)
       http://www.blogjava.net/sterning/archive/2008/06/15/207978.html(session性能诊断视图)
       http://blog.itpub.net/post/18995/506015(oracle 动态性能视图列表)
       http://tech.it168.com/a2009/0727/612/000000612860_3.shtml(RMAN的备份恢复测试)
       http://wenku.baidu.com/view/ee1e2b1755270722192ef719.html(跟踪进程)
       http://www.oracle.com/pls/db111/search?remark=quick_search&word=dbms_scheduler&partno=(oracle技术网)
       http://www.dbabeta.com/2010/understanding-rman-channel_an-os-processes-perspective.html(从OS进程角度看RMAN通道)感谢:贝塔中的DBA
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22929167/viewspace-716333/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DW
请登录后发表评论 登录
全部评论

注册时间:2009-11-25

  • 博文量
    12
  • 访问量
    25438