【识记】RMAN常用命令整理

RMAN常用命令整理

1.连接到数据库

Nocatalog方式 就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用rman nocatalog方式备份时,备份controlfile是非常重要的。由于nocatalog时利用controlfile存放备份信息,建议将Oracle参数文件中的CONTROL_FILE_RECORD_KEEP_TIME值加大(缺省为7天), 参数在$ORACLE_HOME/dbs/initSID.ora中,该参数control_file__record_keep_time设置备份信息保存时间,到规定时间就自动清除以前的备份信息。

Catalog 则必须要首先要创建目录备份数据库,建立恢复目录。以后要使用备份和恢复,需要连接到两个数据库中,
命令: oracle>rman target / catalog rman/rman (第一斜杠表示target数据库,catalog表示catalog目录 rman/rman表示catalog用户名和密码)

Rman nocatalog target sys/change_on_isntall@testdb
Rman catalog rman_user/rman_user@ora9rc target sys/change_on_install@testdb

2.Show命令:
显示RMAN的配置
RMAN>show all;

3.Report命令
RMAN>report schema                      报告目标数据库的物理结构;
RMAN>report need backup days=3;              报告最近3天没有被备份的数据文件;
RMAN>report need backup days 3 tablespace users;     在USERS表空间上3天未备份的数据文件;
RMAN>report need backup incremental 3;            报告恢复数据文件需要的增量备份个数超过3次的数据文件;
RMAN>report need backup redundancy 2 database;            报告备份文件低于2份的所有数据文件;
RMAN>report need backup redundancy=2;
RMAN>report need backup recovery window of 6 days;       报告文件报表的恢复需要超过6天的归档日志的数据文件;
RMAN>report unrecoverable;                报告数据库所有不可恢复的数据文件;
RMAN>report obsolete redunndancy 2;            报告备份次数超过2次的陈旧备份;
RMAN>report obsolete;                    报告丢弃的备份;

4.List命令
列出数据文件备份集
RMAN> list backup                        列出详细备份;
RMAN> list expired backup                   列出过期备份;
RMAN> list backup of database;                列出所有数据文件的备份集;
RMAN> list backup of tablespace user01;            列出特定表空间的所有数据文件备份集;
RMAN> list backup of controlfile                 列出控制文件备份集;
RMAN> list backup of archivelog all                列出归档日志备份集详细信息;
RMAN> list archivelog all;                                             列出归档日志备份集简要信息
RMAN> list backup of spfile                                                      列出SPFILE备份集;
RMAN> list copy of datafile 5                                                    列出数据文件映像副本;
RMAN> list copy of controlfile                                                   列出控制文件映像副本;
RMAN> list copy of archivelog all                                              列出归档日志映像副本;
RMAN> list incarnation of database                                         列出对应物/列出数据库副本;
RMAN>list backup summary;                                                    概述可用的备份;
   B表示backup
   F表示FULL
   A表示archive log
   0 1表示incremental backup
   S说明备份状态(A AVAILABLE   X EXPIRED )
RMAN>list backup by file 按备份类型列出备份;


5、Crosscheck命令
备份集有两种状态:
A(Available,RMAN认为该项存在于备份介质上);
X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)

crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。

crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete。


校验备份信息
RMAN> crosscheck backup                      核对所有备份集;
RMAN> crosscheck backup of database                核对所有数据文件的备份集;
RMAN> crosscheck backup of tablespace users            核对特定表空间的备份集;
RMAN> crosscheck backup of datafile 4                核对特定数据文件的备份集;
RMAN> crosscheck backup of controlfile                核对控制文件的备份集;
RMAN> crosscheck backup of spfile                 核对SPFILE的备份集;
RMAN> crosscheck backup of archivelog sequence 3        核对归档日志的备份集;
RMAN> crosscheck copy                        核对所有映像副本;
RMAN> crosscheck copy of database                核对所有数据文件的映像副本;
RMAN> crosscheck copy of tablespace users            核对特定表空间的映像副本;
RMAN> crosscheck copy of datafile 6                核对特定数据文件的映像副本;
RMAN> crosscheck copy of archivelog sequence 4          核对归档日志的映像副本;
RMAN> crosscheck copy of controlfile                核对控制文件的映像副本;
RMAN> crosscheck backup tag='SAT_BACKUP';

 

6、DELETE:删除备份
RMAN> delete obsolete;                              删除陈旧备份;
RMAN> delete expired backup;                        删除EXPIRED备份
RMAN> delete expired copy;                            删除EXPIRED副本;
RMAN> delete backupset 19;                           删除特定备份集;
RMAN> delete backuppiece ''d:\backup\DEMO_19.bak''           删除特定备份片;
RMAN> delete backup                               删除所有备份集;
RMAN> delete datafilecopy ''d:\backup\DEMO_19.bak''            删除特定映像副本;
RMAN> delete copy                             删除所有映像副本;
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input 在备份后删除输入对象;
RMAN> delete backupset id;
RMAN> crosscheck backup completed after 'sysdate - 2'
RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
RMAN> crosscheck backup device type sBT;
RMAN> crosscheck archivelog all;
RMAN> crosscheck archivelog like '%ARC00012.001'
RMAN> crosscheck archivelog from sequence 12;
RMAN> crosscheck archivelog until sequence 522;

7.CHANGE命令:改变备份集的状态
RMAN> change backupset 22 unavailable                 改变备份集状态;
RMAN> change datafilecopy ''d:\backup\demo_37.bak'' unavailable     改变映像副本状态;
RMAN> change backupset 156 keep forever logs                 使备份集156永久保留;
RMAN> change backupset 198 keep until ''sysdate+60'' logs                   使备份集198保留60天;
RMAN> change backupset 156 nokeep                                                     免除备份集156的保留期限;
RMAN> change backupset 117,118 delete;
RMAN> change backuppiece 1304 delete;
RMAN> change archivelog until logseq =544 delete;

8.CONFIGURE命令
(1)显示当前的配置信息
RMAN> show all;
(2)查询RMAN设置中非默认值:
SQL> select name,value from v$rman_configuration;

常用的configure选项
1)保存策略(retention policy)
configure retention policy to recovery window of 3 days;
configure retention policy to redundancy 3;
configure retention policy clear;

2)备份优化backup optimization
configure backup optimization on;
configure backup optimization off;
configure backup optimization clear;

3)默认设备default device type
configure default device type to disk;
configure default device type to stb;
configure default device type clear;

4)控制文件controlfile
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/cfs01/backup/conf/conf_%F';
configure controlfile autobackup clear;
configrue controlfile autobackup format for device type disk clear;
configrue snapshot controlfile name to '/cfs01/backup/snapcf/scontrofile.snp';
configrue snapshot controlfile name clear;

5)并行数(通道数) device type disk|stb parallelism n;
configure device type disk|stb parallelism 2;
configure device type disk|stb clear;
configure channel device type disk format 'e/:rmanback_%U';
configure channel device type disk maxpiecesize 100m
configure channel device type disk rate 1200K
configure channel 1 device type disk format 'e/:rmanback_%U';
configure channel 1 device type disk maxpiecesize 100m

6)生成备份副本datafile|archivelog backup copies
configure datafile backup copies for device type disk|stb to 3;
configure archivelog backup copies for device type disk|stb to 3;
configure datafile|archivelog backup copies for device type disk|stb clear
backup device type disk database
  format '/disk1/backup/%U', '/disk2/backup/%U', '/disk3/backup/%U';

7)排除选项exclude
configure exclude for tablespace 'users';
configrue exclude clear;

8)备份集大小maxsetsize
configure maxsetsize to 1G|1000M|1000000K|unlimited;
configure maxsetsize clear;

9)其它选项auxiliary
CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oracle/auxfiles/aux_1.f';
CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oracle/auxfiles/aux_2.f';
CONFIGURE AUXNAME FOR DATAFILE 3 TO '/oracle/auxfiles/aux_3.f';
CONFIGURE AUXNAME FOR DATAFILE 4 TO '/oracle/auxfiles/aux_4.f';
CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR;

9.CATALOG命令
用于追加备份记录到RMAN资料库中。
RMAN> catalog datafilecopy ''d:\backup\user01.bak'';
RMAN> catalog controlfile ''d:\backup\demo.ctl'';
RMAN> catalog archivelog ''d:\backup\demo_25.bak'';

注册副本;
RMAN> catalog backuppiece ''d:\backup\demo_40.dbf'' 注册备份片;
RMAN> catalog start with ''d:\bak'' 注册特定目录的所有备份文件;
RMAN> change datafilecopy ''d:\bak\user01.bak'' uncatalog;
RMAN> change controlfilecopy ''d:\bak\demo.ctl'' uncatalog;
RMAN> change backuppiece ''d:\bak\demo_25.bak'' uncatalog;
注销备份记录

10.FORMAT字符串替代变量:
使用FORMAT参数时可使用的各种替换变量,如下:
%d:数据库名称;
%D:位于该月中的天数(DD);
%M:位于该年中的月份(MM);
%F:一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,
      YYYYMMDD为日期,QQ是一个1-256的序列;
%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从1开始编号;
%c:备份片的拷贝数(从1开始编号);
%U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,
这是最常用的命名方式;
%s:备份集的号;
%t:备份集时间戳;
%T:年月日格式(YYYYMMDD);s
注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。

11.validate命令
validate命令验证备份集片是否能够被还原;
list backup summary;得到了备份集得主键ID如40,然后validate backupset 40;

12.恢复目录的记录删除
  $Oracle_HOME/rdbms/admin/prgrmanc.sql脚本定期删除恢复目录中具有DELETED状态的记录
  要删除旧的对应物记录incarnation.必须从DBINC表中删除这些对应物,使用RC_DATABASE_INCARNATION视图来确定要删除的对应物。记录要删除的每个对应物的DBINC_KEY,
  随后启动SQL*Plus,执行delete from dbinc where dbinc_key=2;
13.手工同步恢复目录:resync catalog;

14.在RMAN中存储脚本
   1.连接到目标数据库和恢复目录
   2.创建脚本
   RMAN>create script. my_bk_script
        2>{backup database plus archivelog;}
   3.打印脚本
    RMAN>print script. my_bk_script;
   4.运行这个脚本,备份目标数据库
    RMAN>run {execute scipt my_bk_script;}
   5删除脚本
    RMAN>delete script. my_bk_script;
15.archivelog模式下的完全恢复
  step1: set oracle_sid=testdb
      rman target rman_user/password
      configure controlfile autobackup on;
  step2: backup database plus archivelog delete input;
  step3: shutdown immediate;
  step4: 重命名所有的数据文件和控制文件,不重命名联机重做日志。
step5: startup nomount;
      set DBID=****
      restore controlfile from autobackup;
      alter database mount;
  step6: restore database;
      recover database;
      alter database open resetlogs;
16、表空间恢复
  sql"alter tablespace users offline";
  sql"alter tablespace tools offline";
  restore tablespace users,tools;
  recover tablespace users,tools;
  sql"alter tablespace users online";
  sql"alter tablespace tools online";
17、数据文件恢复
sql"alter database datafile 3 offline";
  sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
  restore datafile 3
  restore datafile 'd:oracleoradatausers01.dbf';
  recover datafile 3
  recover datafile 'd:oracleoradatausers01.dbf';
  sql"alter database datafile 3 online";
  sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
18、RMAN高级恢复
1基于时间点的恢复
  run
  {
  set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"
  restore database;
  recover database;
  alter database open resetlogs;
}
  
2基于SCN的恢复
  startup mount;
  restore database UNTIL SCN 10000;
  recover database UNTIL SCN 10000;
   alter database open resetlogs;
  
3基于日志序列的恢复
  startup mount;
  restore database UNTIL SEQUENCE 100 thread 1;
  recover database UNTIL SEQUENCE 100 thread 1;
  alter database open resetlogs;

 

posted on 2013-05-16 15:37  tangoo  阅读(383)  评论(0编辑  收藏  举报