监视RMAN作业

1. 创建rman备份:

RMAN> run {
  allocate channel ch1 type disk;
  allocate channel ch2 type disk;
  backup as compressed backupset tablespace users;
}

2. 当rman作业运行的时候,使用v$PROCESS和V$SESSION查看client_info信息:

SQL> select sid, spid, client_info from v$process p join v$session s on (p.addr = s.paddr) where client_info like '%rman%';

1. Create two RMAN jobs (in two different RMAN sessions) that back up the USERS and CHGTRK tablespaces and use the SET COMMAND option:
/* session 1 */
RMAN> run {
  set command id to 'bkup users';
  backup as compressed backupset tablespace users;
}
/* session 2 */
RMAN> run {
  set command id to 'bkup chgtrk';
  backup as compressed backupset tablespace users;
} 2.
SQL> select sid, spid, client_info from v$process p join v$session s on (p.addr = s.paddr) where client_info like '%id=%';
SQL> select sid, serial#, opname, sofar, totalwork from v$session_longops where opname like 'RMAN%' and sofar <> totalwork;

调整RMAN

可以通过多种方式来调整RMAN操作。

可以使用多个RMAN通道,然后将数据文件分配到不同的通道,以此来调整备份的总吞吐量。为每个通道分配-个进程,这样可以通过并行处理方式加快备份过程。与此相反,可以将多个备份文件多路复用在同一个备份片中。

对于特定通道而言,可以使用MAXPIECESIZE和MAXOPENFILES参数尽量提高通往特定输出设备的吞吐量,BACKUP命令使用这些参数以及FILESPERSET和BACKUP DURATION参数来优化备份操作。

如果数据库必须保持可用,而且要满足严格的SLA要求,还可以使用BACKUP DURATION来尽最减少备份操作对响应时间的影响。最后,还可以使用数据库初始化参数來优化备份和恢复性能(特别是同步I/O操作)

如果了解每种调整方法的工作原理,就可以保持快捷的用户响应速度、优化硬件和软件环境以及在预算紧张的情况下(这种情况几乎始终存在)推迟升级时间,环境中的某些位置几乎始终存在着吞吐量瓶颈。瓶颈是RMAN备份期间速度最慢的步骤或任务

1.确定备份和还原步骤
RMAN备份在通道中执行任务时.将经历以下三个主要阶段:

(1)读阶段:通道将数据块读入输入缓冲区
(2)复制阶段:通道将块从输入缓冲区复制到输出缓冲,并根据需要执行其他处理:
  •验证检查块是否受到损坏,此操作不会大量使用CPU
  •压缩使用BZIP2或ZLIB来压缩块,此操作会大量使用CPU
  •加密使用加密算法(透明、口令保护或两者)来保护数据的安全性,此操作会大量使用CPU
(3)写阶段:通道将输出缓冲区中的块写入输出设备(磁盘或磁带)

使用动态性能视图,可以确定哪个通道操作的哪个阶段出现了瓶领,并采用相应措施予以消除。在某典情况下,可能需要增加备份时间,以便确保缩短恢复时间。每天或每小时创建一次映像副本会增加备份时间,却可以极大地减少恢复时间

并行备份:为了提高备份的速度,通过增加多个通道

1. 通过指定并行参数来实现并行备份:

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;

2. 手动分配通道实现并行备份:

RMAN> run {
  allocate channel c1 device type disk;
  allocate channel c2 device type disk;
  allocate channel c3 device type disk;   backup database format='/u01/backup/rmanbk/%d_%s.dbf'
  (datafile 1,2 channel c1)
  (datafile 3,4 channel c2)
  (datafile 5,6 channel c3) plus archivelog format='/u01/backup/rmanbk/%d_%s.arc';
}

3. 指定通道的文件格式,将备份集放在不同的目录下:

RMAN> run {
  allocate channel c1 device type disk format='/u01/backup/rmanbk/%d_%s.dbf';
  allocate channel c2 device type disk format='/u02/backup/rmanbk/%d_%s.dbf';
  backup as backupset
  (datafile 1,2,3 channel c1)
  (datafile 4,5,6 channel c2) plus archivelog;
}

配置RMAN多路技术

可以通过多路复用备份和恢复操作来提高RMAN性能和吞吐最。使用多路复用功能时,RMAN可以同时读取多个文件,然后将数据块写入到同一个备份片中。

在备份和恢复操作中,使用多路复用来调整RMAN是减少瓶颈的方法之一,主要通过FILESPERSET和MAXOPENFILES两个参数来控制多路复用级别
,RMAN BACKUP命令的FILESPERSET参数确定放在每个备份集中的数据文件数量。如果单个通道最多备份10个数据文件,但FILESPERSET值是4,则RMAN的每个备份集仅备份4个文件(取min(10,4))。FILESPERSET参数的默认值是64。

多路复用级别(写入到同一备份片的输入文件数量,或从同一备份片读取的输入文件数量)是MAXOPENFILES和每个备份集中的文件数量中的最小者。MAXOPENHLES的默认值是8。可以通过以下等式更方便地理解计算方式:
multiplexing_level = min(MAXOPENFILES, min(FILESPERSET, files__per_channel))

本例在一个通道中备份10个数据文件,MAXOPENFILES值是12, FILESPERSET使用默认值64。因此,使用以下等式计算多路复用级别:
multiplexing_level=min(12, min(64, 10))=10

RMAN根据RMAN作业中的多路复用级别来分配不同数量和大小的磁盘I/O缓冲区。在RMAN根据前面提到的等式,使用FILESPERSET和MAXOPENFILES参数确定了多路复用级别后,可以使用下表提供的信息确定RMAN执行备份需要的缓冲区的数量和大小

多路复用级别 输入磁盘缓冲区大小
<=4 16个1MB的缓冲区,分布在所有输入文件中
> 5 & < 8 512MB的缓冲区,数量不定,以便将缓冲区
的总大小控制在16MB以内
>8 4个128KB缓冲区(针对每个输入文件的512KB)

Oracle建议将FILESPERSET值设置为小于等于8的值,以便优化恢复性能。也就是说,如果将过多的输入文件放在单个备份集中,由于在恢复单个数据文件时RESTORE或RECOVER命令仍然需要读取备份集中大童的多余块,所以恢复速度将减慢

配置RMAN使用异步I/O

在RMAN环境中使用同步I/O还是异步I/O取决于多种因素。这些因素包括为备份集使用的设备类型(磁盘或磁带),以及输出设备或主机操作系统支持同步I/O还是支持异步I/O,即使主机操作系统或设备不支持本地异步I/O,仍然可以配置RMAN,以便使用诸如DBWR_IO_SLAVES这样的初始化参数模拟异步I/O

1. 了解异步I/O和同步I/O

当RMAN读写数据时,I/O操作要么是同步操作,要么是异步操作。同步I/O操作不允许服务器进程一次执行多个操作。只有在完成一个操作后才能开始另一个操作。而异步操作可以启动一个I/O操作,然后立即执行其他操作(包括启动另一个I/O操作)
可以使用初始化参数控制I/O操作的类型:
对于磁带备份而言,可以将BACKUP_TAPE_IO_SLAVES设置为TRUE,以将备份配置为使用异步操作,否则,将其设置为FALSE以便使用同步操作。默认值是FALSE。
对于磁盘备份而言,大多数现代操作系统支持本地异步I/O。但是,如果操作系统不予支持,仍然可以将BACKUP_TAPE_IO_SLAVES设置为TRUE,并通过将DBWR_IO_SLAVES设置为非零值指示Oracle模拟异步I/O,这会分配4个从属备份磁盘I/O,以便模拟RMAN异步I/O操作

2.监视异步I/O
为了监视异步I/O操作,使用动态性能视图V$BACKUP_ASYNC_IO。重要的监视列如下:
  •IO_COUNT:在文件中执行的I/O数量。
  •LONG_WAITS:备份或还原进程必须告知OS等待I/O完成的次数。
  •SHORT_WAIT_TlME_TOTAL:非阻塞轮询I/O完成占用的总时间(以0.01秒为单位)
  •LONG_WAIT_TIME_TOTAL:阻塞等待I/O完成占用的总时间(以0.01秒为单位)
如果LONG_WAITS与IO_COUNT的比率达到最大,这很可能是备份过程中的瓶颈。如果SHORT_WAIT_TIME_TOTAL 和 LONG_WAlT_TIME_TOTAL 是非零值,则也指示出现了瓶颈。此示例确定两个包含非零比率的输入文件:

SQL> select long_waits / io_count waitcountratio, filename from v$backup_async_io where long_waits / io_count > 0 order by long_waits / io_count desc;

对于这个文件而言,可以考虑增加多路复用程度,以便减少或消除备份时的等待时间

3.监视同步I/O
动态性能视图V$BACKUP_SYNC_IO将帮助确定同步I/O操作中的瓶颈以及备份作业的进度。使用DISCRETE_BYTES_PER_SECOND列来查看操作的I/O比率。此后将此比率与输出设备(例如磁带设备)的最大比率做比较。如果比率低得多,则可以调整进程,通过使用并行化或增加通道多路复用级别来提高备份操作的吞吐最

SQL> select DISCRETE_BYTES_PER_SECOND from v$backup_sync_io;

如果正在使用同步I/O,但将BACKUP_TAB_IO_SLAVES设置为TRUE,则可在V$BACKUP_ASYNC_IO中监视I/O性能

BACKUP DURATION

指定完成备份需要的时间。可以使用MINIMIZE TIME限制此选项以便尽快运行备份,也可以使用MINIMIZE LOAD限制此选项以便使用在BACKUP DURATION窗口中指定的全部时间。此外,还可以使用PARTIAL选项,以便保存由于时间限制而终止的部分备份。例如,为了将完全数据库备份的时间限制在2小时之内,则尽可能快地运行并保存一部分备份,那么可以使用此命令:

RMAN> backup duration 2:00 partial database;

如果未在指定的时间内完成备份,但连续的BACKUP命令完成了备份,而且使用了PARTIAL选项,则仍然可以在恢复场景中使用部分备份。如果不使用PARTIAL选项,则备份将会终止并给出一个错误

OCP读书笔记(8) - 监控和调优RMAN的更多相关文章

  1. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  2. Java系列笔记(4) - JVM监控与调优【转】

    Java系列笔记(4) - JVM监控与调优[转]   目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在 ...

  3. JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     转:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html光说不练假把式,学习J ...

  4. [java] JVM监控与调优

    原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html   光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...

  5. Tomcat性能调优-JVM监控与调优

    参数设置 在Java虚拟机的参数中,有3种表示方法用"ps -ef |grep "java"命令,可以得到当前Java进程的所有启动参数和配置参数: 标准参数(-),所有 ...

  6. visualvm工具远程对linux服务器上的JVM虚拟机进行监控与调优

    文/朱季谦 最近在做了一些JVM监控与调优的事情,算是第一次实践,还比较陌生,故而先把这一次经验简单记下笔记,这样,对后面学习调优方面时,不至于又想不起来了.本文档主要总结在window本地环境远程对 ...

  7. <JVM下篇:性能监控与调优篇>补充:使用OQL语言查询对象信息

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  8. <JVM下篇:性能监控与调优篇>补充:浅堆深堆与内存泄露

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  9. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

随机推荐

  1. <Win32_12>程序员求爱的创意程序——升级版^_^

    前段时间,我编写了一个创意程序,并用于向自己目前的女朋友表白,结果效果还不错,得到了她的芳心. 于是我将自己的创意程序共享到csdn资源上,大多数网友认为创意不错,就是简单了些——呵呵,其实我个人也这 ...

  2. Spring Tool Suite(简称STS)针对SimpleDateFormat.pase函数的实参值不做检验,异常直接默认值之

    Spring Tool Suite(简称STS)是 Spring 团队开发的一款基于Eclipse的IDE,旨在简化开发Spring MVC 应用的流程.可以自动生成spring相关的配置文件.比如a ...

  3. 如何删除JAVA集合中的元素

    经常我们要删除集合中的某些元素.有些可能会这么写. public void operate(List list){ for (Iterator it = list.iterator(); it.has ...

  4. 改动导航栏上返回button上的字,比如把back改动为返回

    改动导航栏上返回button上的字,比如把back改动为返回 注意:这个须要在跳转之前到视图控制器中写,而不是在跳转之后到控制器中写 UIBarButtonItem *backIetm = [[UIB ...

  5. 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/D D - 平方根大搜索 UVA12505 - Searchin ...

  6. Filter和FilterChain具体的使用说明

    一.Filter的介绍及使用 什么是过滤器? 与Servlet类似,过滤器是一些web应用程序组件,能够绑定到一个web应用程序中.可是与其它web应用程序组件不同的是,过滤器是"链&quo ...

  7. Servlet的学习之Response响应对象(3)

    本篇来说明响应对象HttpServletResponse对象的最后一点内容. 首先来看响应对象控制浏览器定时刷新,在我的web应用[myservlet]中创建Servlet,在该Servlet中设置响 ...

  8. DWZ (JUI) 教程(二):处理信息回馈的通用规范

    在开发过程中,抽象成模型,定义规范是非常有必要的,不仅可以简化代码,提高开发效率,也为自己减少了不少麻烦. 在开发中,因为DWZ这块是我负责,由于代码琐碎,重复度高,没有抽象封装,没有定义规范,别人不 ...

  9. vue.js+boostrap

    vue.js+boostrap最佳实践 一.为什么要写这篇文章 最近忙里偷闲学了一下vue.js,同时也复习了一下boostrap,发现这两种东西如果同时运用到一起,可以发挥很强大的作用,boostr ...

  10. c#1所搭建的核心基础之值类型和引用类型

    这个主题很重要,在.NET中做的一切其实都是在和一个值类型或者引用类型打交道. 现实世界中的值和引用 假定你在读一份非常棒的东西,希望一个朋友也去读他.于是你到复印室里复印了一份.这个时候他获得了属于 ...