一、恢复目录
资料库保留在控制文件中,由controlfile_record_keep_time决定。回复目录是再外部,空间不受限制。
1)恢复目录的必要性:①不再依赖控制文件;②可以存储rman脚本;③可以多个数据库统一管理且可以跨平台管理;④ 简化操作,不必等到mount。⑤时间没有限制。
RMAN备份称为服务器管理的备份,所有工作均由服务器进程完成。RMAN使用在目标数据库的控制文件中存储的仓库,此仓库包含执行的所有备份的详细信息,也可以创建一个专门的Catalog数据库来管理此仓库。此Catalog数据库可以管理多个数据库的备份信息。
1.5)恢复目录数据库的空间要求
·SYSTEM表空间90MB
·TEMP表空间5MB
·UNDO表空间5MB
·在恢复目录中注册的每个数据库的RMAN默认表空间占15MB
·每个联机重做日志文件1MB
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数据库,
rman catalog cata/cata@cata;
rman target sys/oracle@orcl catalog cata/cata@cata;
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> catalog start with ''; -- 指定文件夹或路径
包含以下文件类型:
·数据文件副本(datafile copy)
·备份信息段(backup piece)
·控制文件副本(controlfile copy)
·归档日志文件(archivelog)
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