2015年4月9日星期四

rman复习2

rman target / debug trace '/tmp/trace.trc' log='/tmp/rman.log'
打开了debug,设置了trace,然后输出到log。
这个log了后,stdout就没输出了,不爽。
rman target / | tee /tmp/rman.log,这样设置后 ,stdout的输出有了,然后rman.log里面也有了,但是输入的命令却在rman.log里面看不见。
可以这样 rman target / | tee /tmp/rman.log进去后,立刻执行set echo on,让回显stdin,这样输入的命令就可以输出到rman.log里了。但是回显会跟着回车走,也打乱输入run{这样的东西,也挺烦。

1.多重备份
rman可以一次指定备份到多个地方,叫【多重bacupset】,这个只能对backupset有效,对imgcopy备份类型无效。
用show all可以看到
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
这个后面的TO 1的1,默认值是备份到1个地方。如果TO 2了,就表示要备份到多个地方。另外,这两个地方不能一个是disk一个是type,必须一样。
这个值也可以被命令里指定的覆盖,比如
backup device type disk copies 2 datafile 4 format '/tmp/%u',/tmp/xxx/%u';

2.备份后backupset的再备份
对于disk类型的backupset,可以再备份
比如将所有的disk上的backpuset 备份到type上
backup device type sbt backupset all;
backup backupset all;

3。备份保存期限,也要archivebackup
可以设置备份的保存期限,这个设置比backup policyl(RETENTION POLICY)里的设置高。
run{
allocate channel c1 type disk format '/tmp/%U';
backup keep until time 'sysdate+365' database;
}
这个备份时,会将控制文件,spfiile,archivelog一起备份(全备份)。另外,keep时需要指定备份保存的地方,不能是默认的DB_RECOVERY_FILE_DEST地方。


4.多section备份
对于很大的表空间,一次要将内容搞到一个backupset里面,这个backupset的文件size会超大,所以可以将一个backupset分开来搞成多个backupset的piece。另外一方面,可以开区并行备份。
configure device type disk parallelism 2;
这样的话,会有两个channel来进行备份,每个channel写不同的piece,从而提高效率。

configure device type disk parallelism 2;
backup section size 250m database;

另外,也可一个直接设置一下一个piece的最大size
configure channel device type disk maxpiecesize = 600m;
然后如果直接backup database,虽然会有两个channel并行,但是是各自chanel各自备份不同的tablesspace,也会出现一个先完事一个后完事的情况。要两个channel能够同时备份一个tablespace的话,必须用backup section来搞。

5。压缩
11g以后的压缩,已经可以对hwm(最高水位)上下 都进行压缩,10g只能对hwm以上的【未使用领域】进行压缩。这里的压缩,其实是skip,因为bacupset本来就不包含未使用的block。
另外,压缩也可以进行二进制压缩,有两个压缩算法,bzip2和zlib。bzip2压缩率高但慢,zlib相反。默认是bzip2。
backup as compressed backupset database;
用configure compression algorithm 'zlib' 修改默认压缩算法。这个是针对11g R1的。
11g R2后,等级变成了basic, low, medium, high4个压缩等级,basic是没压缩。推荐是用low或者medium,因为相对于压缩率的增加,high太占cpu了太慢。另外测试发现low或者medium比basic(不压缩)还要快,世界真神奇。
configure compression algorithm 'HIGH',这里得注意,low,high,medium,basic在命令里都需要大写,否则em页面上显示会不一致。

6。加密
select * from v$rman_encryption_algorithms;知道可以支持的加密方式
加密有三种方式
a透明加密
透明加密,不需要密码,也叫钱包加密,一般只在本地用,也就是在本地备份本地恢复。
configure encryption for database on;
或者
set encryption on;
如果现在执行backup database,会报 ORA-28365: wallet is not open。
所以先要打开钱包,select * from v$encryption_wallet;看一下钱包的路径
比如是/ORADATA/app/admin/orcl11g/wallet,那么先
mkdir -p /ORADATA/app/admin/orcl11g/wallet
然后
orapki wallet create -wallet /ORADATA/app/admin/orcl11g/wallet
这里会要求输入两次密码,然后目录下面会看见 ewallet.p12的文件。
然后
alter system set encryption key authenticated by "zyz123456";设置maskterke?不设置这个会ORA-28361: master key not yet set。
alter system set encryption wallet open identified by "zyz123456";(这一步是不做也可)
引号里面是上一步创建钱包设置的密码
然后再rman里面backup database,就不会说钱包没打开了。
这个方式是,一次设置,以后都加密。
这样加密后的文件,在本地恢复时,也需要执行alter system set wallet open identified by "zyz123456"的,否则还是不让恢复,会报ORA-28361。这个是一次设定,以后都用,但是岂不是每次重新启动instance后都得执行一下alter system set encryption key authenticated by "zyz123456"?
这个嘛,在创建钱包的时候加上-auto_login_local就可以了,instance启动后会自己open wallet。

b密码加密
密码加密,就是在执行备份前设置一个密码,这个当然不要透明加密以前用
configure encryption for database off;
set encryption on identified by "zyz12345" only;
backup database
恢复是,需要先
set decryption identified by "zyz12345";
再恢复,否则也是ORA-28361。也就是每次你都得记住你压缩的密码才可以解压了。


c双模式加密
就是用上面两个法子加密。
set encryption on;
set encryption on identified by "zyz12345";
然后备份 ,恢复是也需要指定两次密码。当然,就算set encryption on了,只要在后面加上only,也就变成第二种了。
set encryption on identified by "zyz12345" only;  

7备份恢复时,除去某些表空间
CONFIGURE EXCLUDE FOR TABLESPACE 'users'  除去users
CONFIGURE EXCLUDE FOR TABLESPACE 'users'  CLEAR 恢复users
SHOW EXCLUDE查看设置













没有评论:

发表评论