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

猜你喜欢

转载自www.cnblogs.com/hezt1114/p/8980417.html