讲到rman就要讲到catalog,也就是恢复目录,这个东东我觉得没有太大的用,如果数据库没有打到open状态,恢复目录数据库根本连接不上。我个人建议可以不使用catalog数据库,当然为了全面的了解rman,还是要简单了解下catalog数据库是用来做什么的,catalog数据库是专门供rman使用,用来存储备份信息(不是存储备份文件)及备份脚本的地方。

wKioL1PHQRiyhMgTAAIUA-fWiBg793.jpg

如果我们不用catalog的时候,备份信息就存放在控制文件当中,这些备份信息是做恢复的时候需要用到的信息。

 

情景一:使用catalog数据库

 

1.创建catalog表空间

create tablespace rman_ts

datafile ‘xxxxxxxx/rman_ts01.dbf’

size 10m;

 

2.创建rman用户

create user rman identified by rman 

 default tablespace rman_ts 

 temporary tablespace temp 

 quota unlimited on rman_ts

 

3.用户授权

grant recovery_catalog_owner to rman

grant resource,connect to rman

 

4.在目录数据库中创建恢复目录

rman catalog rman/rman

create catalog tablespace rman_ts

 

这个时候我们就可以正常使用catalog数据库了,可以做下测试

[Oracle@ora10 ~]$ rman target / catalog rman/rman

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Mar 28 15:05:06 2013

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: QDYX (DBID=3280546065)

connected to recovery catalog database

 

情景二:不使用恢复目录

 

rman target /

 

做个全备份

run {

allocate channel n1 type disk;

allocate channel n2 type disk;

backup as compressed backupset database

format '/disk01/backup/ora10_%d_%s_%p';

release channel n1;

release channel n2;

}

 

做增量备份(差异增量)

run {

allocate channel c1 type disk;

backup incremental level 0

format '/disk01/backup/rmanbak/inc0_%u_%T'

database;

release channel c1;

}

 

备份数据文件

backup datafile 8;

 

备份表空间

backup tablespace users;

 

备份归档日志

backup archivelog all delete all input;

 

备份数据库同时备份归档日志,并删除归档日志

backup as compressed backupset database plus archivelog delete all input

format '/disk01/backup/ora10_%d_%s_%p';

 

注意:这里可以使用run{}生成一段代码,定制一些参数就行备份,也可以直接使用默认参数备份。在备份时如果不指定备份的路径,则默认保存在flash_recovery_area目录下。