RMAN常用备份恢复命令汇总

RMAN命令
1、独立命令
  RMAN>shutdown immediate
  RMAN>startup
  RMAN>backup format ‘d:\backup\%d_%s.bak‘ tablespace users;
2、作业命令
  RMAN>run { backup format ‘d:\backup\$d_%s.bak‘ tablespace users; }
3、运行SQL命令
  RMAN>sql ‘alter system switch logfile‘ ;
4、运行存储脚本
   RMAN>run { execute script s1;}
5、运行操作系统命令
  RMAN>run { host "dir d:\backup"; }
6、运行RMAN命令
  c:\rman target sys/[email protected] nocatalog @c:\bak_users.cmd log a.log
   bak_users.cmd示例:
   backup format ‘d:\backup\%d_%s.bak tablespace users;   
  sql ‘alter system archive log current‘ ;
  
配置RMAN环境(略)
 
建立备份集
1、完全数据库备份集
  1)、一致性备份(适用于NOARCHIVELOG和ARCHIVELOG模式)
   c:\rman target sys/[email protected] nocatalog
   RMAN>shutdown immediate
   RMAN>startup mout
   RMAN>backup database; 如果备份到别的目录backup database format =‘d:\backup\%d_%s.dbf‘ ;
   RMAN>sql ‘alter system archive log current ‘ ;
  2)、非一致性备份(在OPEN状态)
  RMAN>backup database; 如果备份到别的目录backup database format =‘d:\backup\%d_%s.dbf‘ ;
   RMAN>sql ‘alter system archive log current ‘ ;
  3)、免除表空间
   RMAN>configure exclude for tablespace user03;
   RMAN>backup database; 如果备份到别的目录backup database format =‘d:\backup\%d_%s.dbf‘ ;
   RMAN>sql ‘alter system archive log current ‘ ;
2、表空间备份集
  RMAN>backup tablespace users format=‘d:\backup\%N_%f_%s.dbf‘ ;
3、数据文件备份集
  RMAN>backup datafile 5 format=‘d:\backup\%N_%f_%s.dbf‘ ;
4、控制文件备份集
  RMAN>backup current controlfile format=‘d:\backup\%d_%s.ctl‘ ;
5、SPFILE备份集
  RMAN>backup spfile format=‘c:\%d_%s.par‘;
6、归档日志备份集(过去一天所生成的归档日志)
  RMAN>backup format=‘c:\%d_%s.arc‘ archivelog from time=‘sysdate-1‘ until time=‘sysdate‘;
7、并行化备份集
  RMAN>configure device type disk parallelism 3 ;
  RMAN>backup database format=‘c:\%d_%s.dbf‘;
  RMAN>configure device type disk clear;
8、建立多重备份
  RMAN>backup copied 3 tablespace users format=‘c:\1\%N_%s.dbf‘,‘c:\2\%N_%s.dbf‘,‘c:\3\%N_%s.dbf‘ ;
9、备份备份集
  RMAN>backup backupset 32 format=‘c:\%d_%s.bak‘;
10、建立多个备份片
  RMAN>configure channel device type sbt  maxpiecesize 4G;
  RMAN>backup device type sbt format  ‘%d_%s_%p.dbf‘ database;
11、建立压缩备份集
  RMAN>backup as compressed backupset tablespace users format=‘c:\%d_%s.dbf‘;
12、备份数据文件和归档日志
 RMAN>backup format ‘c:\%d_%s.bak‘ tablespace users plus archivelog ;
13、指定备份集标记
  RMAN>backup format=‘c:\%d_%s.bak‘ tablespace users tag=‘users‘ ;
 
建立映像副本
1、建立数据文件映像副本
  RMAN>backup as copy format=‘c:\df_5.dbf‘ datafile 5; 或者
  RMAN>copy datafile 5 to  ‘c:\df_5.dbf‘ ;
2、建立控制文件映像副本
  RMAN>backup as copy format=‘c:\demo.ctl‘ current controlfile; 或者
  RMAN>copy current controlfile to  ‘c:\demo.ctl‘;
3、建立归档日志映像副本
  RMAN>backup as copy format=‘c:\arc10.log‘ archivelog sequence 10; 或者
  RMAN>copy archivelog ‘c:\demo\archive\arc00020_012345.001‘ to ‘c:\arc20.log‘;
4、并行化建立映像副本
  RMAN>configure device type disk parallelism 3;
  RMAN>backup as copy format =‘c:\df_%f.dbf‘ datafile 5,6,7 ;
  RMAN>configure device type disk clear;
5、指定映像副本标记
  RMAN>backup as copy format=‘c:\df_%f.dbf‘ datafile 5 tag=df_5;  或者
  RMAN>copy datafile 5 to ‘c:\df_%f.dbf‘ tag=df_5;  
    
建立增量备份和累积备份
增量备份可以减少备份时间,累积备份可以减少恢复时间。
增量备份示例:周日 LEVEL 0 ,周一、周二、周四、、周五、周六 LEVEL 2 ,周三 LEVEL 1
  RMAN>backup incremental level 0 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周日
  RMAN>backup incremental level 2 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周一
  RMAN>backup incremental level 2 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周二
  RMAN>backup incremental level 1 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周三
  RMAN>backup incremental level 2 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周四
  RMAN>backup incremental level 2 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周五
  RMAN>backup incremental level 2 format=‘c:\backup\%d_%s.dbf‘ tablespace users; 周六
RMAN完全恢复  
1、恢复数据库
  1)、所有数据文件被删除
   c:\rman target sys/[email protected] nocatalog
   RMAN>startup force mount
   RMAN> run {
    restore databse ;
 
   recover database;
    sql ‘alter database open‘ ;
    }
  2)、数据文件所在磁盘出现硬件故障
   RMAN> run {
    startup force mount;
    set newname for datafile 1 to ‘c:\demo\system01.dbf‘;
    set newname for datafile 2 to ‘c:\demo\dundotbs01.dbf‘;
    set newname for datafile 3 to ‘c:\demo\sysaux01.dbf‘;
    set newname for datafile 4 to ‘c:\demo\users01.dbf‘;
    set newname for datafile 5 to ‘c:\demo\example01.dbf‘;
    set newname for datafile 6 to ‘c:\demo\test0.dbf‘;
    restore database;
    switch datafile all;
    recover database;
    sql ‘alter database open ‘;
    }
 2、恢复SYSTEM表空间的数据文件
  1)、SYSTEM表空间的数据文件被误删除
   RMAN>run {
      startup force mount;
      restore  datafile 1;
      recover datafile 1;
      sql ‘alter database open‘ ;
      }
  2)、SYSTEM表空间数据文件所在的磁盘出现故障
   RMAN> run {
    startup force mount;
    set newname for datafile 1 to ‘c:\demo\system01.dbf‘;
    restore datafile 1;
    switch datafile 1;
    recover datafile 1;
    sql ‘alter database open‘;
    }
 3、在OPEN状态下恢复关闭后意外丢失数据文件
  1)、数据文件被删除
  RMAN>run {
   startup force mount;
   sql ‘alter database datafile 4 offline‘;
   sql ‘alter database open ‘;
   restore datafile 4;
   recover datafile 4;
   sql ‘alter database datafile 4 online‘;
   }
  2)、数据文件所在的磁盘出现损坏 
   RMAN>run {
   startup force mount;
   sql ‘alter database datafile 4 offline‘;
   sql ‘alter database open ‘;
   set newname for datafile 4 to ‘c:\demo\user01.dbf‘;
   restore datafile 4;
   switch datafile 4;
   recover datafile 4;
   sql ‘alter database datafile 4 online‘;
   }     
4、在OPEN状态下恢复打开时意外丢失的数据文件
  1)、数据文件被误删除
   RMAN>run {
   sql ‘alter database datafile 4 offline‘;
   restore datafile 4;
   recover datafile 4;
   sql ‘alter database datafile 4 online‘;
   }
  2)、数据文件所在磁盘出现故障
   RMAN>run {
   sql ‘alter database datafile 4 offline‘;
   set newname for datafile 4 to ‘c:\demo\user01.dbf‘;
   restore datafile 4;
   switch datafile 4 ;
   recover datafile 4;
   sql ‘alter database datafile 4 online‘;
   } 
5、在OPEN状态下恢复未备份的数据文件(创造新数据文件后没有进行过备份)
  1)、数据文件被误 
  RMAN>run {
    startup force mount;
    sql ‘alter database datafile 7 offline ‘;
    sql ‘alter database open‘;
    restore datafile 7;
    recover datafile 7;
    sql ‘alter database datafile 7 online‘;
    }
  2)、数据文件所在磁盘出现故障
   RMAN>run {
    startup force mount;
    sql ‘alter database datafile 7 offline ‘;
    sql ‘alter database open‘;
    set newname for datafile 7 to ‘c:\demo\user04.dbf‘;
    restore datafile 7;
    switch datafile 7;
    recover datafile 7;
    sql ‘alter database datafile 7 online‘;
    } 
  
6、恢复表空间
  1)、表空间被删除
   RMAN>run {
    sql ‘alter tablespace users offline for recover‘;
    restore tablespace users;
    recover tablespace users;
    sql ‘alter tablespace users online‘;
    }
  2)、表空间的数据文件所在磁盘出现故障
    RMAN>run {
    sql ‘alter tablespace users offline for recover‘;
    set newname for datafile 4 to ‘c:\demo\user01.dbf‘;
    restore tablespace users;
    switch tablespace users;
    recover tablespace users;
    sql ‘alter tablespace users online‘;
    }    
7、数据块介质恢复
  RMAN>blockrecover device type disk datafile 5 block 20,21,100 ;
  
 RMAN不完全恢复
1、基本时间恢复
  c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss
  c:\rman target sys/[email protected] nocatalog
  RMAN>run {
   startup force mount;
   set until time=‘2010-08-22 12:00:08‘;
   restore database;
   recover database;
   sql ‘alter database open resetlogs;
   }
 2、基于SCN恢复
  RMAN>run {
   startup force mount;
   set until scn=123456;
   restore database;
   recover database;
   sql ‘alter database open resetlogs‘;
   }
 3、基于日志序列号恢复
  RMAN>run {
   startup force mount;
   set until seqence=10;
   restore database;
   recover database;
   sql ‘alter database open resetlogs‘;
   }
 4、基于备份控制文件恢复
  c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss
  c:\rman target sys/[email protected] nocatalog
  RMAN>startup force nomount;
  RMAN>set dbid=1113606269;
  RMAN>restore controlfile from autobackup maxseq 6;
  RMAN>alter database mount;
  RMAN>run {
   set until time=‘2010-08-22 12:00:08‘;
   restore database;
   recover database;
   sql ‘alter database open resetlogs;
   }
 当执行了上述4种不完全恢复之后,建议删除早期的所有备份,并重新备份数据库
 RMAN>run {
  delete noprompt backup;
  delete noprompt copy;
  backup database format=‘c:\backup\%d_%s.bak‘;
  sql ‘alter system archive log current‘;
  }
 
 RMAN维护命令
REPORT
1、报告目标数据库的物理结构
  RMAN>report schema;
2、报告需要备份的数据文件
  1)、报告需要转储的增量备份超出特定个数的数据文件
   RMAN> report need backup incremental 3;
  2)、报告特定天数未备份的数据文件
   RMAN>report need backup days 3 tablespace users ;
  3)、报告低于特定备份次数的数据文件
   RMAN> report need backup redundancy 2 database ;
  4)、报告在恢复时间窗口内未备份的数据文件
   RMAN> report need backup recovery window of 3 days ;
3、报告陈旧备份
  RMAN>report obsolete redundancy 2; 
4、报告不可恢复的数据文件
  RMAN>report unrecoverable;
 LIST
1、列出数据文件备份集
  RMAN>list backup of database ;
  RMAN>list backup of tablespace users;
  RMAN>list backup of datafile 4;
2、列出控制文件备份集
  RMAN>list backup of controlfile ;

3、列出归档日志备份集
  RMAN>list backup of archivelog all;
4、列出SPFILE备份集
  RMAN>list backup of spfile ;
5、列出数据文件映像副本
  RMAN>list copy of database;
  RMAN>list copy of tablespace users;
  RMAN>list copy of datafile 4;
6、列出控制文件映像副本
  RMAN>list copy of controlfile;
7、列出归档日志映像副本
  RMAN>list copy of archivelog all;
8、列出数据库副本
  RMAN>list incarnation of database ;  
 注意,每次用RESETLOGS选项打开数据库之后都会生成一个新的数据库副本。
9、列出备份集文件的信息
  RMAN>list backupset 100;
       CROSSCHECK
1、核对所有备份集
  RMAN>crosscheck backup;
2、核对所有数据文件的备份集
  RMAN>crosscheck backup of database ;
3、核对特定表空间的备
  RMAN>crosscheck backup of tablespace system;
4、核对特定数据文件的备份集
  RMAN>crosscheck backup of datafile 1; 
5、核对控制文件的备份集
  RMAN>crosscheck backup of controlfile ;
6、核对SPFILE的备份集
  RMAN> crosscheck backup of  spfile;
7、核对归档日志的备份集
  RMAN> crosscheck backup of  archivelog sequence 40; 
8、核对所有映像副本
  RMAN> crosscheck copy ;
9、核对所有数据文件的映像副本
  RMAN> crosscheck copy of database;
10、核对特定表空间的映像副本
  RMAN> crosscheck copy of tablespace users;
11、核对特定数据文件的映像副本
  RMAN> crosscheck copy of  datafile 1;
12、核对控制文件的映像副本
  RMAN> crosscheck copy of  controlfile;
13、核对归档日志的映像副本
  RMAN> crosscheck copy of  archivelog sequence 44;
         
DELETE
1、删除陈旧备份
  delete obsolete;  #提示
  delete noprompt obsolete; #不提示
2、删除EXPIRED备份集
  delete noprompt expired backup;
3、删除EXPIRED副本
  delete noprompt expired copy ; 
4、删除特定备份集
  delete noprompt backupset 19;
5、删除特定备份片
  delete noprompt backuppiece ‘c:\test\demo1.bak‘;
6、删除所有备份集
  delete noprompt backup ;  或者
  delete noprompt backupset;  
7、删除特定映像副本
  delete noprompt datafilecopy ‘c:\test\demo.bak‘;  删除数据文件
  delete noprompt controlfilecopy ‘c:\test\controlfile_bak.ctl‘;  删除控制文件
  delete noprompt archivelog  ‘c:\test\arc.bak‘; 删除归档日志
8、删除所有映像副本
  delete noprompt copy;
9、在备份后删除输入对象
  backup archivelog all  delete input ;
  backup backupset 22 format=‘c:\test\%u.bak‘ delete input ;
 CHANGE
1、改变备份集状态
  change backupset 22 unavailable;
2、改变映像副本状态
  change datafilecopy ‘c:\demo.bak‘ unavailable ;
  change controlfilecopy ‘c:\demo.bak‘ unavailable ;
  change archivelog ‘c:\demo.bak‘ unavailable ;
3、建立长期备份
  change backupset 100 keep forver logs; 使备份集100永久保留
  change  backupset 100 keep until time ‘sysdate+60‘ logs; 使备份集100保留60天
  change  backupset 156 nokeep ; 免除备份集100的保留期限
  
CATALOG
 1、注册副本
  catalog datafilecopy ‘c:\user01.bak‘;
 2、注册备份片
  catalog backuppiece ‘c:\demo_10.dbf‘ ;
 3、注册特定目录的所有备份文件  
 catalog start with ‘c:\bak‘;
 4、注销备份记录
  change datafilecopy ‘c:\user01.bak‘ uncatalog;
  change controlfilecopy ‘c:\demo.ctl‘ uncatalog;
  change backuppiece ‘c:\demo_10.bak‘ uncatalog;
恢复目录管理
建立恢复目录
 1、建立恢复目录表空间
 SQL> create tablespace rman_ts
 2  datafile ‘D:\oracle\product\10.1.0\db_1\train\rman.dbf‘
 3  size 15m ;
 表空间已创建。
 2、建立恢复目录所有者
 SQL> create user rman identified by rman
  2  default tablespace rman_ts;

用户已创建。
3、授予恢复目录所有者角色
 SQL> grant connect,resource,recovery_catalog_owner to rman;
 授权成功。
4、建立恢复目录
  c:\rman catalog rman/[email protected]
 RMAN>create catalog;
5、注册目标数据库
  RMAN>connect target sys/[email protected]
 RMAN>register database;
  RMAN>report schema;
 
使用存储脚本
1、建立存储脚本
  C:\>rman catalog rman/[email protected] target sys/[email protected]
 RMAN>create script bak_database {
   backup format=‘c:\temp\%d_%s.bak‘
   database include current controlfile
   plus archivelog;
   sql ‘alter system archive log current‘ ;
   }
2、运行脚本
  (1)、在RMAN提示符下运行存储脚本
   RMAN>run { execute script bak_database; }
  (2)、在命令行运行存储脚本
   c:\rman catalog rman/[email protected] target sys/[email protected] script bak_database
3、显示存储脚本内容
  RMAN>print script bak_database;
4、替换存储脚本
  RMAN>replace script bak_database {
   backup database format=‘c:\temp\%d_%s.bak‘;
   }
5、删除存储脚本
 RMAN>delete script bak_database;
6、列出所有存储脚本
  RMAN>list script names;

维护恢复目录
1、重新同步恢复目录
  RMAN> resync catalog;
2、注销目标数据库
  RMAN>unregister database;
  当注销了目标数据库之后,会丢失早于controlfile_record_keep_time设置时间的RMAN资料库记录。
3、升级恢复目录
  C:\>rman catalog rman/[email protected] target sys/[email protected]
 RMAN> upgrade catalog;
  RMAN> upgrade catalog;
4、删除恢复目录
  C:\>rman catalog rman/[email protected] target sys/[email protected]
 RMAN> drop catalog ;            
 RMAN> drop catalog ;
5、恢复数据库到早期数据库副本

时间: 2024-10-11 15:15:52

RMAN常用备份恢复命令汇总的相关文章

[转帖]Linux企业运维人员最常用150个命令汇总

Linux企业运维人员最常用150个命令汇总 https://clsn.io/clsn/lx998.html 基本上都用过了. 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能

中小型数据库 RMAN CATALOG 备份恢复方案(二)

中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点.尽管如此,数据库的损失程度也会存在零丢失的情形.企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的.接上一篇文章,中小型数据库 RMAN CATALOG 备份恢复方案(一),我们继续来给出基于中小型数据库的恢复的脚本与其部署. 1.RMAN还原shell脚本 [python] view plain copy print? --下面的shell脚本用于实现数据库的自动还原,还原成功后,数据库被关闭

中小型数据库 RMAN CATALOG 备份恢复方案(一)

对于数据库的稳定性,高可用,跨平台以及海量数据库的处理,Oracle 数据库通常是大型数据库和大企业的首选.尽管如此,仍然不乏很多中小企业想要品尝一下Oracle腥味,因此在Oracle环境中也有不少中小型数据库.出于成本的考虑,通常有可能就搞个标准版了,跑在Linux上.谁叫Oracle太贵呢?对于中小企业而言,选择合理的才是最好的.对我们这些个搞DB的,贵的一定有贵的道理,我们也可以都进多几斗米.哈哈......典型的打工者的心态哟.言归正传,中小企业的成本限制了我们搞高可用,RAC和DG也

老男孩:Linux企业运维人员最常用150个命令汇总

近来老男孩发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change director

rman备份恢复命令之switch(转)

一 switch 命令1 switch命令用途更新数据文件名为rman下镜像拷贝时指定的数据文件名更新数据文件名为 set newname 命令指定的名字. 2 switch 命令使用前提条件rman 必须连接到目标数据库当switch tablespaces.datafiles.tempfiles时,这些文件必须离线当switch 整个数据库时,数据库不能open 3 注意事项switch....to copy 命令用于rman命令提示符下switch没有to copy的命令用于run语句块中

如何使用 RMAN 增量备份恢复 data guard log gap(日志断档)

主库查询最小scn 信息: SQL> col current_scn for 999999999999999 SQL>  SELECT CURRENT_SCN FROM V$DATABASE; select min(fhscn) from x$kcvfh; select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil =d.file# and d.enabled != 'READ ONLY'     ; CURRENT_SCN -

Linux企业运维人员最常用150个命令汇总

命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能为复制文件或目录. find 查找的意思,用于查找目录及目录下的文件. mkdir 全拼make directories,其功能

Linux常用的shell命令汇总

今天我们一起来看看Linux系统下常用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令. 说明:所有命令是在Centos 6.4 64位的虚拟机系统进行测试的.这些命令是需要大家深深的记在脑海里的哦 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo   #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况  这里的单位是MB cat /proc/meminfo #查看内

RMAN的备份维护命令

1.validate backupset 指令       使用VALIDATE BACKUPSET指令验证备份集的可用性           validate backupset 5       查看备份集汇总信息           list backup summary; 2.RESTORE...VALIDATE指令         验证表空间SYSAUX备份信息是否在备份集中             restore tablespace users validate;         验