RMAN学习笔记

RMAN(Recovery Manager)是一种用于备份(backup),还原(restore),恢复(recover)数据库的oracle工具.它只能用于Oracle 8i或以上版本,能备份整个数据管理或数据库组件,如:表空间,数据文件,控制文件,归档文件以及Spfile参数文件,同时也支持增量备份.
    通过RMAN可以实现数据库克隆,建立备份数据库和移动裸设备文件
按此在新窗口打开图片
RMAN结构说明
1.RMAN:起源于oracle 8,位于$ORACLE_HOME/bin目录下,通过"rman"来启动工具.
2.Server Session:RMAN服务进程用于RMAN工具与数据库或磁盘/磁带等IO设置之间的通信.
3.Channel:是服务进程与IO设备之间读写的途径,一个通道对应一个进程.
4.Target Database:就是RMAN进行备份与恢复的数据库,可备份数据,控制,归档日志文件和spfile.
5.Catalog:用来保存备份与恢复信息的数据库(最好不在目标数据库上),利用恢复目录可以管理多个目标数据库,存储更多的备份信息和备份脚本,如不使用恢复目录,也可用控制文件代替.
6.Media Manager Layer:第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理.
7.Backup,Backup Sets与Backup Pieces:一个完整的备份包含一个或多个备份集,备份集包含一组物理文件,即备份片.

恢复目录
    当选择把RMAN的信息存储在控制文件时,控制文件的丢失时将导致备份将不能进行恢复。所以若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存放备份信息。这个单独的数据库(称为CATALOG数据库)只需要很小的空间,既可以和被备份的数据库放在同一主机上,也可以单独放在另一台主机上(如果条件允许,推荐放在一台单独的主机上来确保最大的可恢复性)
恢复目录的创建
9i默认为nocatalog,不使用恢复目录,如要使用可通过以下步骤来实现
SQL>create tablespace rmants datafile 'z:\oracle\oradata\zhiandb\rmants.ora' size 20m  
#在目录数据库中创建恢复目录所用表空间
SQL>create user rman identified by rman default tablesace rmants temporary tablespace temp quota unlimited on rmants;  
#在目录数据库中创建RMAN用户 
SQL>grant recovery_catalog_owner to rman;   
#并授权
c:\>rman target sys/abc123@orcl catalog rman/rman@orcl    #target为连接数据库,catalog为连接恢复目录数据库
#会提示未安装恢复目录
RMAN>create catalog tablespace rmants;  
#在目录数据库中创建恢复目录
RMAN>register database;    
#注册数据库
按此在新窗口打开图片

数据库完全备份
RMAN> run {
     2> allocate channel dev1 type disk;
     3> backup
     4>   full
     5>   tag full_db_backup
     6>   format '/oracle/backups/db_t%t_s%s_p%p'
     7>   (database);
     8> release channel dev1;
     9> }

备份表空间
      RMAN> run {
     2> allocate channel dev1 type disk;
     3> backup
     4>   tag tbs_users_read_only
     5>   format '/oracle/backups/tbs_users_t%t_s%s'
     6>   (tablespace users)
     7> }

备份单独数据文件
      RMAN> run {
     2> allocate channel dev1 type 'SBT_TAPE';
     3> backup
     4>   format '%d_%u'
     5>   (datafile '/oracle/dbs/sysbigdb.dbf');
     6> release channel dev1;
     7> }

备份数据文件
RMAN> run {
    2> allocate channel dev1 type 'SBT_TAPE';
    3>  copy datafile '/oracle/dbs/temp.dbf' to '/oracle/backups/temp.dbf';
    4> release channel dev1;
    5> }

备份控制文件
      RMAN> run {    
     2> allocate channel dev1 type 'SBT_TAPE';
     3> backup
     4>   format 'cf_t%t_s%s_p%p'
     5>   tag cf_monday_night
     6>   (current controlfile);
     7> release channel dev1;
     8> }

维护RMAN
检查RMAN备份信息,列出已经过时的备份:
RMAN>report obsolete;

删除过时的备份信息
RMAN> allocate channel for maintenance type disk;
RMAN> change backupset id delete;
RMAN> release channel;

当手工删除了数据库的归档文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN> release channel;

当手工删除了数据库的RMAN备份文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN> release channel;

使用RMAN进行恢复
恢复整个数据库
svrmgrl>startup mount
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk   ;
restore  database ;
recover database ;
release channel dev1 ;
}

恢复单个表空间
svrmgrl>startup mount
svrmgrl>alter tablespace users offline;
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk   ;
restore  tablespace users ;
recover tablespace users 
release channel dev1 ;
}

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

转载于:http://blog.itpub.net/370491/viewspace-214970/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值