Oracle RMAN备份恢复有两种情况,一种是没有catalog的,是使用控制文件来存储备份资料库,另外一种是有catalog 的,这样可以用目录数据库来存储备份资料库。
下面介绍下使用catalog 备份的步骤:
1. 在恢复目录数据库上建立一个表空间:create tablespace rcat_ts datafile '' size 15M;
2. 在恢复目录数据库上建立一个恢复用户:create user rman identified rman temporary tablespace temp default tablespace rcat_ts quato unlimited on rcat_ts ;
3. 授予相关权限:grant recovery_catalog_owner to rman;
4. 在恢复目录数据库和目标数据库上互相添加对方的tns信息,方便在两端都可以直接备份;
5. 登录恢复目录数据库,然后创建恢复目录:
rman catalog rman/rman@tns_1;
create catalog;
6. 然后同时登录恢复目录数据库和目标数据库(不管在哪个上面登录都可以):
rman target sys/oracle@tns_2 catalog rman/rman@tns_1;(目标数据库上要用sys登录)
register database; 注册目标数据库
7. 使用catalog有一个好处就是可以使用RMAN脚本,批量执行rman command;
create [global] script script_name {rman command};
加上global参数,说明恢复目录上面的所有注册数据库都可以使用脚本,否则只能对应的目标数据库可以使用。
rman command一般可以有:
RMAN> backup database format '/u01/app/oracle/rmanbak/whole_%d_%U'; --备份整个数据库
RMAN> backup as compressed backupset database format '/u01/app/oracle/rmanbak/whole_%d_%U';
--备份整个数据库并压缩备份集
RMAN> backup as copy datafile format '/u01/app/oracle/rmanbak/df_%d_%U';
--备份数据文件,类型为镜像备份
RMAN> backup tablespace users,example format '/u01/app/oracle/rmanbak/tb_%d_%U';
--备份表空间
RMAN> backup tablespace temp;
--临时表空间不需要备份(执行会报错)
RMAN> backup current controlfile;
--单独备份控制文件及参数文件
RMAN> backup datafile 4 include current controlfile;
--备份数据文件时包含控制文件
下面是备份归档日志文件
备份归档日志时仅仅备份归档过的数据文件(不备份联机重做日志文件)
备份归档日志时总是对归档日志做完整备份
RMAN对归档日志备份前会自动做一次日志切换,且从一组归档日志中备份未损坏的归档日志
RMAN会自动判断哪些归档日志需要进行备份
归档日志的备份集不能包含其它类型的文件
RMAN> backup
2> format '/u01/app/oracle/rmanbak/lf_%d_%U'
3> archivelog all delete input; --delete input 删除所有已经备份过的归档日志
RMAN> backup --此种写法实现了上述相同的功能
2> archivelog all delete input
3> format '/u01/app/oracle/rmanbak/lf_%d_%U';
RMAN> backup archivelog sequence between 50 and 120 thread 1 delete input;
RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";
RMAN> backup
2> format '/u01/app/oracle/rmanbak/lf_%d_%U'
3> archivelog from sequence=80
4> delete input;
使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)
1.首先执行alter system archive log current 命令(对当前日志归档)
2.执行backup archivelog all 命令(对所有归档日志进行备份)
3.执行backup database命令中指定的数据文件、表空间等
4.再次执行alter system archive log current
5.备份在备份操作期间产生的新的归档日志
--执行下面的命令,并观察备份列出的信息,可以看到使用plus archivelog时使用了上面描述的步骤来进行备份
RMAN> backup database plus archivelog
2> format '/u01/app/oracle/rmanbak/lg_%d_%U' delete input;
8. 使用run执行RMAN脚本:
run
{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
execute script script_name;
}
使用RMAN备份的操作链接:
http://blog.csdn.net/leshami/article/details/6032739