RMAN命令详解和常用汇总

RMAN命令详解和常用汇总
转摘汇集,日后使用
本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370
http://blog.itpub.net/25904686/viewspace-742701/
https://blog.csdn.net/zq9017197/article/details/6869579
https://www.cnblogs.com/polestar/archive/2013/02/06/2902598.html
--HQ_显示RMAN备份信息及日志
http://blog.itpub.net/30126024/viewspace-2128114/

【输出日志】
[oracle@tiger script]\$ cat rman_db.sh
exportORACLE_HOME=/u01/oracle/product/11.2.0.4
export ORACLE_SID=TIGER
rman target / cmdfile=/u01/rman/script/rman_db.rcv msglog=/u01/rman/script/rman_full_`date+%Y-%m-%d`.log
[oracle@tiger script]\$

【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;
5、注册归档日志
catalog archivelog '/u01/CCBPROD/oracle/oradata/archive/thread_2_seq_12307.2161.899944423';
cataloged archived log
archived log file name=/u01/CCBPROD/oracle/oradata/archive/thread_2_seq_12307.2161.899944423 RECID=9578 STAMP=900068071

【Crosscheck】
crosscheck backup 核对所有备份集;
crosscheck backup of database 核对所有数据文件的备份集;
crosscheck backup of tablespace users 核对特定表空间的备份集;
crosscheck backup of datafile 4 核对特定数据文件的备份集;
crosscheck backup of controlfile 核对控制文件的备份集;
crosscheck backup of spfile 核对SPFILE的备份集;
crosscheck backup of archivelog sequence 3 核对归档日志的备份集;
crosscheck copy 核对所有映像副本;
crosscheck copy of database 核对所有数据文件的映像副本;
crosscheck copy of tablespace users 核对特定表空间的映像副本;
crosscheck copy of datafile 6 核对特定数据文件的映像副本;
crosscheck copy of archivelog sequence 4 核对归档日志的映像副本;
crosscheck copy of controlfile 核对控制文件的映像副本;
crosscheck backup tag='SAT_BACKUP';
crosscheck backup completed after 'sysdate - 2'
crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
crosscheck backup device type sBT;
crosscheck archivelog all;
crosscheck archivelog like '%ARC00012.001'
crosscheck archivelog from sequence 12;
crosscheck archivelog until sequence 522;

expired: 对象不存在于磁盘或磁带。当一个备份集处于expired状态,则该备份集中所有的备份片同样处于expired状态
available: 对象处于可用状态。当一个备份集可用,则该备份集内的所有备份片同样可用
unavailabe: 对象处于不可用状态。当一个备份集不可用,则该备份集内的所有备份片同样不可用
注:expired不等同于obsolette。两者的差异请参考:文档

【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'; 删除归档日志
delete noprompt ?force archivelog all completed before 'sysdate - 7';
8、删除所有映像副本
delete noprompt copy;
9、在备份后删除输入对象
backup archivelog all delete input ;
backup backupset 22 format='c:\test\%u.bak' delete input ;
10、delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。

【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; 报告多余的备份;

【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; 概述可用的备份;

RMAN> list backup of datafile { n | <dir>}
RMAN> list copy of archive from time = 'sysdate - 7';
RMAN> list backup of archivelog from sequence 1000 until sequence 1020;
RMAN> list backupset tag=TAG20101014T155753;
表示backup
表示FULL
表示archive log
表示incremental backup
说明备份状态(A AVAILABLE   X EXPIRED )
MAN> list backup by file 按备份类型列出备份;
按照数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出

【Show】
RMAN> show all;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFORCL.ORA'; # default

RMAN configuration parameters for database with db_unique_name PRODS are:
注释:#default表示该配置仍然是初始的默认值。回到默认配置configure..clear。
1.CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
是用来决定那些备份不再需要了,它一共有三种可选项,分别是
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
第一种recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。
第二种redundancy 是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。
第三种不需要保持策略,clear将恢复回默认的保持策略。
一般最安全的方法是采用第二种保持策略
其中前两种是互斥关系

2.CONFIGURE BACKUP OPTIMIZATION OFF; # default
默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。
理论上,备份优化仅对于只读表空间或offline表空间起作用。当然,对于已经备份过的归档日志文件也会跳过。

3.CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
是指定所有I/O操作的设备类型是硬盘或者磁带,默认值是硬盘DISK
磁带的设置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;

4.CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。
当autobackup设置为on时,rman做任何备份操作,都会自动对控制文件进行备份。

5.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
是配置控制文件的备份路径和备份格式
比如:configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F'

6.CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
配置数据库设备类型的并行度。并行度决定通道数。

7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
是配置数据库的每次备份的copy数量,oracle的每一次备份都可以有多份完全相同的拷贝。
是否启动复合备份,向指定的i/o设备中指定的位置生成指定的份数。缺省为1.
这个配置仅用于数据文件和归档文件,并且,只有在自动分配通道时才会生效!

8.CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
是设置数据库的归档日志的存放设备类型

9.CONFIGURE MAXSETSIZE TO UNLIMITED; # default
备份集大小 maxsetsize
configure maxsetsize to 1G|1000M|1000000K|unlimited;
configure maxsetsize clear;
配置备份集的大小。一般是配置maxpiecesize,对备份片进行限制。

10.CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
配置加密备份集。可以具体到某个表空间:
configure encryption for tablespace users on;
如果我们执行set encryption on indentified by think only,紧接其后所创建的备份就需要该密码才能进行正常的恢复

11.CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
指定加密算法,还有一个是 ‘AES256'

12.CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
13.CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
指定归档文件的删除策略,缺省是none,即:归档备份完之后就可以被删除
但是,在DG环境,DBA要保证归档文件在standby端成功接收并且应用之前,primary端始终保存该文件
so,DG环境当设为:applied on standby
14.CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/CCBPROD/oracle/product/11.2.0.4/dbs/snapcf_PROD.f'; # default
配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性
另外,CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。

15.CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
是配置备份文件的备份路径和备份格式
CONFIGURE CHANNEL DISK CLEAR;用于清除上面的信道配置
CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR];此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。
1.将备份文件存储到指定路径,如e:\backupb
configure channel device type disk format 'e:\backupb\%d_db_%u';
后面的%d_db_%u是存储格式
2.我们也可以单独指定control file存储在另一个路径:如e:\backupcontrol
configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F';
后面的%F是存储格式


进入RMAN:
\$ rman target sys/oracle@orcl?? --远程连接到rman
\$ rman target sys/oracle@orcl @backup_db.ram?? --远程连接到rman并执行指定脚本
\$ rman target sys/oracle@orcl cmdfile=backup_db.ram?? --远程连接到rman并执行指定脚本
\$ rman target / log rman.log?? --记录rman的输出
RMAN> @backup_db.ram?? --rman里面执行脚本
或者
/u01/oracle/product/10/u01/oracle/product/10.2.0/bin/rman target system/oracle@ora10g(/) msglog=/u01/rmanbak/bakl1.log cmdfile=/u01/rmanbak/bakl0

备份命令:
RMAN> backup database format '.../%d_%U';?? --备份数据库并指定备份路径
RMAN> backup database;?? --备份数据库
RMAN> backup database include current controlfile plus archivelog delete all input;? --备份数据文件、控制文件、归档日志
RMAN> backup incremental level 0 database;?? --差异增量备份数据库
RMAN> backup incremental level 0 cumulative database;?? --累积增量备份数据库
RMAN> backup as compressed backupset database;?? --压缩备份数据库
RMAN> backup database include current controlfile;?? --备份数据库并备份控制文件
RMAN> backup tablespace users;?? --备份表空间
RMAN> backup datafile n;?? --备份数据文件
RMAN> backup datafiel '/opt/oracle/oradata/orcl/users01.dbf';?? --备份数据文件
RMAN> backup current controlfile;?? --备份控制文件
RMAN> backup current controlfile plus archivelog;?? --备份控制文件并归档然后备份归档日志
RMAN> backup archivelog all;?? --备份归档日志
RMAN> backup archivelog all delete all input;?? --备份归档日志并删除
RMAN> backup spfile;?? --备份参数文件
RMAN> backup backupset all;?? --备份全部备份集
RMAN> backup backupset n;?? --备份指定备份集

还原、恢复命令:
RMAN> restore database;?? --还原数据库
RMAN> restore tablespace users;?? --还原表空间
RMAN> restore datafile n;?? --还原数据文件
RMAN> restore archivelog sequence between 10 and 20;?? --还原归档日志
RMAN> restore controlfile from autobackup;?? --还原控制文件
RMAN> restore spfile to '/tmp/spfile.ora' from autobackup;?? --还原参数文件
RMAN> recover database;?? --恢复数据库
RMAN> recover tablespace users;?? --恢复表空间
RMAN> recover datafile n;?? --恢复数据文件
RMAN> restore validate database;????? --验证数据库可恢复性
RMAN> restore validate controlfile;?? --验证控制文件可恢复性
RMAN> restore validate spfile;??????? --验证参数文件可恢复性

查看备份集命令:
RMAN> list backup;?? --列出数据库中所有的备份集
RMAN> list backup of database;?? --查看数据库备份集
RMAN> list backup of tablespace users;?? --查看表空间备份集
RMAN> list backup of datafile n;?? --查看备份的数据文件
RMAN> list backup of controlfile;?? --查看控制文件备份集
RMAN> list backup of archivelog all;?? --查看归档日志备份集
RMAN> list archivelog all;?? --查看当前所有归档日志
RMAN>?list expired backup;?? --列出所有无效备份

管理备份集命令:
RMAN> crosscheck backup;?? --检查所有备份集
RMAN> crosscheck archivelog all;?? --检查所有归档文件
RMAN> delete [noprompt] obsolete;?? --删除过期备份
RMAN> delete expired backup;?? --删除无效备份
RMAN> delete expired archivelog all;? --删除所有无效归档文件
RMAN> delete backupset 1;?? --删除指定备份
RMAN> delete backup;?? --删除所有备份
RMAN> change backupset 3 unavailable;?? --更改备份集3为无效
RMAN> change backupset 3 available;???? --更改备份集3为有效
RMAN> change backup of controlfile unavailable;?? --更改控制文件为无效
RMAN> change backup of controlfile available;???? --更改控制文件为有效
RMAN> report schema;?? --查看数据库备份结构
RMAN> report need backup;?? --查看所以需要备份的文件
RMAN> report need backup tablespace system;?? --查看指定表空间是否需要备份
RMAN> report obsolete;?? --查看过期备份

posted @ 2019-11-13 18:00  ritchy  阅读(1179)  评论(0编辑  收藏  举报