zoukankan      html  css  js  c++  java
  • oracle 11g ocp 笔记(17)--rman高级功能

    一、恢复目录

       资料库保留在控制文件中,由controlfile_record_keep_time决定。回复目录是再外部,空间不受限制。

       1)恢复目录的必要性:①不再依赖控制文件;②可以存储rman脚本;③可以多个数据库统一管理且可以跨平台管理;④ 简化操作,不必等到mount。⑤时间没有限制。

    一.恢复目录(Recovery Catalog)
        RMAN备份称为服务器管理的备份,所有工作均由服务器进程完成。RMAN使用在目标数据库的控制文件中存储的仓库,此仓库包含执行的所有备份的详细信息,也可以创建一个专门的Catalog数据库来管理此仓库。此Catalog数据库可以管理多个数据库的备份信息。

    1.5)恢复目录数据库的空间要求

        只需要使用一个比较小的数据库来作为恢复目录数据库,存放仓库数据库的表空间至少需要125MB用于保存恢复目录条目的空间。
        ·SYSTEM表空间90MB
        ·TEMP表空间5MB
        ·UNDO表空间5MB
        ·在恢复目录中注册的每个数据库的RMAN默认表空间占15MB
        ·每个联机重做日志文件1MB
     
     
     
     
    2).创建恢复目录
    ①表空间和用户、权限
    create tablespace catadat datafile '/u01/app/oracle/cata/catadat01.dbf' size 100m autoextend on;
    create user cata indetified by *** cata default tablespace catadat;
    grant connect,resource,recovery_catalog_owner to cata;
     
    ②.连接到Catalog数据库
    连接到目标数据库和Catalog数据库,
    rman catalog cata/cata@cata;
    rman target sys/oracle@orcl catalog cata/cata@cata;
     
    不使用catalog连接到目标数据库
    rman target / nocatalog;  -- 等同于rman target /
     
    ③使用恢复目录数据库
    rman target sys/oracle@orcl catalog cata/cata@cata;
    RMAN> create catalog tablespace catadat;   -- 创建恢复目录,初始化仓库
    RMAM> register database;                   -- 注册数据库,将要备份的数据库在RMAN仓库中注册
    RMAN> resync catalog;                      -- 同步恢复目录
    RMAN> unregister database;                 -- 注销数据库
    RMAN> drop catalog;                        -- 删除恢复目录
    RMAN> upgrade catalog;                     -- 更新版本
     
    RMAN> report need backup days 7;           -- 报告需要备份的信息,与不使用catalog方法相同
     
    (5).记录其他备份文件
    RMAN> catalog start with '';               -- 指定文件夹或路径
        包含以下文件类型:
        ·数据文件副本(datafile copy)
        ·备份信息段(backup piece)
        ·控制文件副本(controlfile copy)
        ·归档日志文件(archivelog)
     
    RMAN> catalog recovery area noprompt;      -- 重新记录闪回恢复区中的所有备份内容
     
    可以再注册的数据库服务器也可再目录服务器发起连接。
    目录数据库的脚本要高于其注册数据库的脚本。
     
     
     

    3)使用虚拟目录

    首先创建一个目录,步骤同上文①②③。

    ④ 创建 新用户 SQL> create user vpc1 identified by "vpc1" default tablespace users quota unlimited on users temporary tablespace temp;

    grant recovery_catalog_owner to vpc1;

    ⑤启动RMAN并以基本恢复目录用户连接到恢复目录数据库
    [oracle11@oracle11g ~]$ rman

    Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:09:22 2015

    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

    RMAN> connect catalog rman/rman@cs

    connected to recovery catalog database

    RMAN>

    ⑥ 授权。RMAN> grant catalog for database db to vpc1;

                   RMAN>grant register database to vpc1;

    ⑦启动RMAN并使用虚拟私有目录用户(不是基本恢复目录用户)连接到恢复目录数据库
    Recovery Manager complete.
    [oracle11@oracle11g ~]$ rman

    Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:19:26 2015

    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

    RMAN> connect catalog vpc1/vpc1@cs

    connected to recovery catalog database

    ⑧ 创建私有目录

    RMAN> create virtual catalog;

     

     

     

    4)保护和重建目录

    catalog datafilecopy ' /xxx.dbf';      --注册数据库的一个副本

    catalog backuppiece '/asdasd.bak'  注册数据库的备份机

    catalog startup with '/as/asd'          --指出目录(最强大)

     

     

    二、存储脚本

    create { global } script

    replace{ global } script

    print  { global } script

    list  { global } script

    execute  { global } script

    delete   { global } script

    {globle} 关键字是全局都能看的。

    create script script_name from file ' file_name'  --从文件中创建。

    RMAN> create script  script_name { 脚本内容}

    RMAN>  run  { execute  script script_name   }

    三、使用rman来创建数据库

     

    1)辅助服务器上安装orale软件。

    2)配置静态监听服务。

    3)设置oracle _sid  配置参数文件、口令文件。

    4)辅助数据库启动到nomount状态,目标数据库启动到mount或以上状态。

    5)执行复制。

     

    $ rman target sys/oracle@A auxiliary sys/oracle@B
    RMAN> duplicate target database to testdb from active database;

     

    四、表空间的时间点恢复

     1) 自动和手动

    2)rman自动方式

    ①验证是否是自包含的。

    ②验证数据对象。

    recover tablespace XXX until time 'XXX'  auxiliary destination to '/asda/'

    然后使其上线。

     

    五、rman性能监视

     1、监视rman会话和作业

    1)v$session和v$process

    v$session---每个通道占用一行。

    如  分配两个通道,然后执行:

       select sid,spid ,client_info

    from v$process p join v$session s on  ( p.addr=s.paddr)

    where client_info like %rman%    ---如下文一样设置了command id 要使用 id  就没有rman了。

    为了区分 可以使用

    run {  set command id  to  'asdasdasdasd'

       ssssssss;}  这样会在client_info里显示id信息。

    2)v$session_longops

      只有将初始化参数statistics_level设置为typical或all时,v$session_longops视图才会显示有关长时间 运行的rman作业的信息。statistics_level的默认值是typical

    SQL> select sid,serial#,opname,sofar,totalwork from v$session_longops
      2  where opname like 'RMAN%'
      3  and sofar <> totalwork;
           SID    SERIAL# OPNAME                              SOFAR  TOTALWORK
    ---------- ---------- ------------------------------ ---------- ----------
           139         89 RMAN: aggregate input                   0     198784
           192        140 RMAN: full datafile backup          94396     198784
           192        140 RMAN: full datafile backup          58719          0

      

    SID    SERIAL# 与v$session 相对应。

    其中,sofar列衡量步骤的进度,其值因操作类型而异:
    *对于映像副本而言,它是读取的块数。
    *对于备份输入行而言,它是从备份文件中读取的块数
    *对于备份输出行而言,它是写入备份片的块数
    *对于还原操作,它是迄今处理的目标文件的块数。
    *对于代理副本,它是迄今已经复制的文件数
    TOTALWORK列的定义与此类似,但是它估计步骤中需要执行的工作总量。
    *对于映像副本,它是文件中块的总数量
    *对于备份输入行,它是步骤中从所有文件中读取的块的总数量。
    *对于备份输出行,它始终是0
    *对于还原操作,它是在单个作业步骤或汇总步骤中还原的所有文件的块总数。
    *对于代理副本,它是要在作业步骤中复制的文件总数。

     使用  round (sofat/totalwork*100,1) 显示百分比。

     2、调整RMAN

    1)备份步骤  读取阶段--文件到输入缓冲区,

                         输入缓冲区到输出缓冲区 ---完成加密 压缩等操作和验证

                        写操作  ------输出缓冲区到文件

    2)执行并行备份

     最对25个通道,每个通道最多64个文件

    backup as commpressed backupset  incremental  level 0

     (datafile  1,2,3  channal   c1)

     (datafile  4,5,6  channal   c2)

     (datafile  7,8,9  channal   c3);

    也可以配置通道的默认并行度。

    3)多路复用:

    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命令仍然需要读取备份集中大童的多余块,所以恢复速度将减慢

    4)调整rman命令

    上面的参数。加上

          backup  duartion命令

         可以使用 minimize time指定完成时间,以便尽快备份;

         可以使用minimize load选项。

         还可以指定partial 指定 保存因为时间限制而终止的备份。

    3、使用异步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性能

    a

  • 相关阅读:
    IGeoDatabaseBridge2.GetLineOfSight
    selenium+python自动化测试--alert弹框
    web页面兼容性测试之browsershots工具使用
    selenium自动化测试之定位大全
    Android adb 命令大全
    接口自动化测试 httprunner+locust+python 安装与实践
    appium-uiautomator2-server-v0.x.x.apk does not exist or is not accessible 报错解决方法
    python基础3
    python1、2实践
    python基础2
  • 原文地址:https://www.cnblogs.com/hezt1114/p/8980417.html
Copyright © 2011-2022 走看看