RMAN 总结篇 2 - (转)

五,备份的模式,
1),增量备份 写得累死我了......~:~!!
非归档模式,数据库必须正常下档后才能实行增量备份,归档模式下online & shutdown状态均可实现增量备份
增量备份是建立在0级备份的基础之上,最多4级, 关键字眼: incremental level=n n<=4 ,当然增量不仅公局限于整个库,像tablespce,
datafile,等
rman>backup incremental level=0 database format ....
rman>backup incremental level=1 datafile 'f:system01.dbf' format.....
rman>backup incremental level=2 tablespace users format ....[@more@]

增量备份有differential (差异) 和 cumulative (累积) 二种类型: 默认是差异,如果要手动来设置累积备份可以用如下命令
rman>backup incremental level=1 cumulative database format ...

***注意事项*** 增量备份不一定会缩短时间,也不一定会缩小很多空间:
原因: 在做增量备份,数据库会检查所有块,并于上一级备份做比较,再备份修改块,如果系统更改频繁,那么检查比较这个动作会相当的
频繁。速度还会快么? 同理,空间会缩小很多么?针对这种状况,10g就提出了一种新的策略,在数据库启用块修改跟踪。
sql> alter database enable block change tracking using file '/loaction/trk_filename'; 启用块跟踪
或者用omf特性(oracle-managed files),oracle 会自动创建修改跟踪文件
sql> alter database disable block change tracking; 关闭块跟踪
sql> select status from v$block_change_tracking; 检查启用/关闭情况
***注意事项*** 启用了块跟踪,备份速度快了,备份文件也可能减少,但恢复时间可能增长,为什么? 此消彼涨呀兄弟!

增量设置原则:0级老大,后面依次递减, 小弟能读老大和兄弟的。老大不能读手下的。~:~ "好没面子哦"

2) ,基于时间的备份策略:
rman>configure retention policy to recovery window of n days; 设定备份集的保留时间,即sysdate - backup checkpoing time>=n ,可以有被恢复
过期了就可以用delete obsolete 删除,
问题: 如果控制文件备份是否可以长时间保留呢,答案是没用的,因为control_file_recored_keep_time 这个参数决定了多少时间可用性,应该
把这个参数设成大于在rman中设置的保留时间,你可以通过 v$controlfile_recored_section获取取控制文件的可存贮记录和已存贮记录.

b,基于冗余数量的备份保留策略
因为备份时数据文件以各种形式(备份集或镜像复制)存在的备份的数量,如果某个数据文件冗余备份数量超出了指定的数量,rman
将废弃最旧的备份,同样,基于数量的备份保留策略也是通过configure命令设置
rman>configure retention policy to redundancy n;
rman>configure retention policy to none;
rman> report obsolete;
rman> delete obsolete;
注意,如果这个备份是一个单独的数据文件镜像,那么delete 将直接删除这个镜像复制
如果这个备份文件是备份集的一部分,那只有等到这个备份集都过期后,才能删除

3),通道的分配
disk 于sbt (是二种设备),而选择完设备后,又要分配几个通道来备份,即并行度
a, 手工分配通道 命令:(allocate channel) 该关键字眼只能在run块中出现. 有几个allocate channel,就有几个通道
format 指定格式和路径
rman>run{
allocate channel c1 device type disk(&sbt) format 'f:backupcn_%u';
backup tablespace users;
}
理论上要写释放通道语句,但执行结束完也会自动释放通道,

b,自动分配通道
执行下面这些命令后均可自动分配通道
configure device type sbt/disk parallelism n;
configure default device type to sbt/disk;
configure channel device type sbt/disk format ...;
configure channel n device type sbt/disk format...;

4),复合备份 即备份的时候同时备份好几份
rman> backup copies 3 database;
或利用set backup copies 命令指定复合备份,放在run {} 块中
rman> run {
set backup copies 3;
backup device type disk format 'f:...','d:...' , ' e:...' ;
tablespace users,asod;
}
备份三份,分别放到不同地方
c, configure ... backup copies 只能用于数据文件和归档日志文件当中.
rman>configure default device type to disk;
rman>configure datafile backup copies for device type disk to 2;
rman>configure archivelog backup copies for device type disk to 2;

5),标签 tag 备份时可以直接给备份集指定一个名称
如果不特指定备份集名称,rman会自动指定: 格式"(TAGyyyymmddThhmmss,TAG和T 是固定字符,其他部分是时间)
rman>backup tablespace usrs TAG tbs_usersback; 手工指定备份集的名称

6),设置备份片段的大小/备份集的大小: maxpiecesize备份片段 & maxsetsize 备份集(最好不要指定备份集,可能失败)
run{
allocate channel c1 device type disk maxpiecesize=100m format 'f...';
backup database;
}
指定备份片段大小

rman>bakcup database maxsetsize=3.99g; 注意操作系统单个文件的最大限制,windows为4G,

7),recovery catalog 恢复目录,这个目录主要用来存贮备份的信息,如果没有这个恢复目录,就保存在控制文件中,但控制
文件的信息保存也是有时间限制的,过期就会自动覆盖。另外如果控制文件损坏,则意味着所有rman备份信息
丢失所以用recovery catalog来解决这个问题.
先来创建这些东东吧:
sql>create tablespace rmantbs datafile 'f:oracleoradatabakdbrmantbs01.dbf' size 50m; 创建空间
sql>grant connect,resource,recovey_catalog_owner to rmanct identified by rmanct; 授传
sql>rman catalog rmanct/rmanct
rman>create catalog tablespace rmantbs; 在rman中创建catalog;
$rman target / catalog rmanct/rmanct@prod; 以catalog方式连接到库
rman>register database 注册数据库到catalog,这样备份信息就可以保存到catalog中
注意,如果不是以catalog方式连接到库,则备份信息还是记录在控制文件当中,这就是备份信息是否在控制文件或catalog中的区别,但并不
是说以catalog方式就会比nocatalog方便.
rman>unregister database 取消注册到catalog中

附加说明,把rman信息放本地好么?也不好!万一库坏了,也没得恢复,还是放别处好。方法如下:
192.168.1.205 目标数据库服务器(要备份的数据库)
192.168.1.204 恢复目录数据库服务器(存放要备份的数据库的恢复信息)
目标数据库使用的服务名称是prod,目录数据库使用的服务名称是test。以下操作均在恢复目录数据库服务器192.168.1.204上进行
1、先在恢复目录数据库服务器192.168.1.204上配置两个tnsname:prod、test、
2、创建恢复用户表空间,并赋予权限(表空间名不应为rman)
$sqlplus / as sysdba
sql>create tablespace rmants datafile 'rmants.bdf' size 20M;
sql>create user rman identified by rman default tablespace rmants ;
sql>grant resource,connect,recovery_catalog_owner to rman;
3、创建恢复目录
sql>exit
$rman catalog rman/rman
rman>create catalog tablespace rmants;
4、注册数据库,其作用是将目标数据库的RMAN元数据存放到恢复目录中
rman>exit
$rman target sys/sys@prod catalog rman/rman@test
rman>register database;
5、查看是否成功
rman>report schema

8),备份优化: 所谓优化,就是在备份时rman能省就省,"不完全备份",但又能保证数据的完整性,但当且仅当满足如下
条件一种或几种时,备份优化就可以实施.具体怎么个省略优化法,算法不明!高手没讲,哈哈!
configure backup optimization on;
backup database 或backup archivelog 命令中带有all或like参数
分配的通道仅使用了一种设备类型,也就是不能同时分配使用sbt,disk的多个通道.

G,备份的压缩: 子句 as compressed backupset
rman> backup as compressed backupset tablespace system;

9),加密备份: 用二种方法来加密
a)configure 命令 rman>configure encryption for database on; 启用加密 前提是数据库已经配好了加密key(应该知道怎么设了吧)
rman>configure encryption for database off; 关闭加密
rman> configure encryption for tablesapce users on;
b)set encryption 命令 rman>set encryption on identified by ebcbak only; ebcbak是密码,恢复时用这个密码恢复

10),其他关键字
backup skip: 备份跳过
backup database skip inaccessible: 跳过offline,readonly的数据文件
filesperset参数
plus archivelog filesperset 20: 注意是指备份集包含文件的个数,超过新增加一个备份集,不是指备份片段,
allocate channel for maintenance 用于对change,delete,crosscheck命令,也是用来分配通道的,所不同的不能在块中运行这个命令.

六,rman相关性能视图查询:
v$archived_log
v$backup_set
v$backup_piece;
v$backup_corruption;
v$session & v$PROCESS
select sid,osuser,username,machine,process from v$session where client_info like '%id=rman%'; 查询会话信息
select s.sid,s.serial#,p.spid,s.client_info form v$process p , v$session s where p.addr=s.paddr and client_info like '%id=rman%';
获取rman的进程信息
v$session_longops
select sid,serial#,context,sofar,totalwork,round(sofart/totalwork*100,2) "%_COMPLETE" from v$SESSION_LONGOPS
where opname like 'RMAN:%'
and opname not lide '%AGGREAGE%
and totalwork!=0
and sofar<>totalwork;


七,学了这么多,现在来写一个综合题吧:
run {
configure retention policy to recovery window of 14 days;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/rcmbackup/oracle/%F';
allocate channel c1 device type disk format '/rcmbackup/oracle/bak0_%U';
backup incremental level=0 database skip inaccessible
plus archivelog filesperset 20
delete all input;
release channel c1;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;

现在能看懂了吧.

转自:http://hi.baidu.com/risowangzz/blog/item/17c70726d6a5f96d34a80fbb.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/789833/viewspace-1038869/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/789833/viewspace-1038869/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值