zoukankan      html  css  js  c++  java
  • OCP读书笔记(8)

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

    对于特定通道而言,可以使用MAXPIECESIZEMAXOPENFILES参数尽量提高通往特定输出设备的吞吐量,BACKUP命令使用这些参数以及FILESPERSETBACKUP 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是减少瓶颈的方法之一,主要通过FILESPERSETMAXOPENFILES两个参数来控制多路复用级别
    ,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选项,则备份将会终止并给出一个错误

  • 相关阅读:
    爱生气的书店老板
    数组的度
    最大连续 1 的个数
    最大连续1的个数 III
    尽可能使字符串相等
    Java数据类型转换
    CSS卡片制作
    关于eclipse关联源码问题
    tomcat服务器对于http协议的处理
    shiro源码分析-认证过程
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3382722.html
Copyright © 2011-2022 走看看