RMAN详细教程(一):基本命令代码 RMAN详细教程(二):备份、检查、维护、恢复 RMAN详细教程(三):备份脚本的组件和注释 RMAN详细教程(四):备份脚本实战操做 html
[oracle@oracle ~]$ rman target /
[oracle@oracle ~]$ rman target sys/oracle@orcl
RMAN> show all //总配置参数,具体看configure模块算法
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default 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; # 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 SNAPSHOT CONTROLFILE NAME TO‘C:ORACLE..SNCFTEST.ORA’; #default
RMAN> show channel; // 通道分配 RMAN> show device type; // IO 设备类型 RMAN> show retention policy; // 保存策略 RMAN> show datafile backup copies; // 多个备份的拷贝数目 RMAN> show maxsetsize; // 备份集大小的最大值 RMAN> show exclude; // 没必要备份的表空间 RMAN> show backup optimization; // 备份的优化 数据库
一、configure retention policy to redundancy 1; 舍弃备份原则,共三种,分别是: (1)CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; 保持全部足够的备份,能够将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。 (2)CONFIGURE RETENTION POLICY TO REDUNDANCY 5; 保持能够恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。通常采用的方法,默认值为1,能够设置为5。
(3)CONFIGURE RETENTION POLICY TO NONE;
不须要保持策略,clear将恢复回默认的保持策略。 二、CONFIGURE BACKUP OPTIMIZATION OFF; 默认为关闭,若是打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。 三、Configure default device type to disk; 默认值是硬盘,是指定全部I/O操做的设备类型是硬盘或者磁带(SBT)。 四、CONFIGURE CONTROLFILE AUTOBACKUP OFF; 强制数据库在备份文件或者执行改变数据库结构的命令以后将控制文件自动备份,默认值为关闭。这样在控制文件和catalog丢失后,控制文件仍然能够恢复。
五、CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; 配置控制文件的备份路径和备份格式
六、CONFIGURE DEVICE TYPE DISK PARALLELISM 1; 配置数据库设备类型的并行度,默认为1。
7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; 配置每次备份的copy数量。
八、CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; 配置归档日志存放的设备类型。 九、configure maxsetsize 大小; 配置备份集的最大尺寸,默认值是unlimited,单位bytes,K,M,G; 十、CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA'; 配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。
十一、CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p'; 配置备份文件的备份路径和备份格式。 十二、CONFIGURE CHANNEL DISK CLEAR; 用于清除上面的信道配置。 1三、CONFIGURE EXCLUDE FOR TABLESPACE <tablespace> [CLEAR]; 不备份指定的表空间到备份集中,对只读表空间是很是有用的。 1四、configure channel device type disk format 'e:\backupb%d_db_%u'; 将备份文件存储到e:\backupb,后面的%d_db_%u是存储格式。 1五、configure controlfile autobackup format for device type disk to 'e:\backupcontrol%F'; 指定control file存储在另外一个路径: e:\backupcontrol,后面的%F是存储格式。 oracle
一、list incarnation; 汇总查询,多备份文件时,能够对备份文件有个整体了解。 二、list backup; 列出备份详细信息。 三、list backup summary; 简述可用的备份(TY: B表明备份, LV: F表明全备fullbackup, A表示 Archivelog, 0,1,2 表示备份级别, S表示状态, A表示available可用, X表示expried过时)。app
备份列表 =============== 关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记 ------- -- -- - ----------- ---------- ------- ------- ---------- --- 11 B F A DISK 02-7月 -13 1 1 NO TAG20130702T162726 12 B F A DISK 14-2月 -14 1 1 NO TAG20140214T140119 13 B F A DISK 14-2月 -14 1 1 NO TAG20140214T140119 14 B F A DISK 21-2月 -14 1 1 NO TAG20140221T125325 15 B F A DISK 21-2月 -14 1 1 NO TAG20140221T125325 16 B A A DISK 24-2月 -14 1 1 NO TAG20140224T125128
四、list backup by file; 按照文件类型列出如下四种类型列表: 数据文件备份列表、已存档的日志备份列表、控制文件备份列表、SPFILE 备份的列表。 五、list backup of database summary; 六、list backup of tablespace users; 七、list backup of archivelog all; 查看已经备份的 archive log 状况。 八、list archivelog all; 查看目前全部的archivelog文件 (可能包含已经备份的, 除非你在备份时有参数 delete input file 删除了)。 九、list backup of spfile; 十、list backup of controlfile; 十一、list backup verbose; 十二、list backup of datafile 1 [n | <dir>]; 1三、list backup of archivelog from sequence 1000 until sequence 1020; 1四、list backupset tag=TAG20140317T155753; 1五、list expried backup; 列出过去的备份文件。 优化
一、report schema; 报告目标数据库的物理结构。 二、report need backup; 报告须要备份的数据文件(根据条件不一样)。 三、report need backup days 3; 最近三天没有备份的数据文件(若是出问题的话,这些数据文件将须要最近3天的归档日志才能恢复)。 四、report need backup redundancy 3; 报告出冗余次数小于3的数据文件。 五、report need backup recovery window of 3 days; 报告出恢复须要3天归档日志的数据文件。 六、report obsolete; 报告已经丢弃的备份(前提是设置了备份策略)。 七、report unrecoverable; 报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已通过期)。 八、report schema at time ‘sysdate – 7’; 九、report need backup days 2 tablespace system; spa
delete backupset; delete backupset n; delete obsolete; -- 删除荒废 delete noprompt obsolete; -- 不提示, 删除荒废 delete noprompt expired backup; -- 不提示, 删除不在磁盘上的备份集(能够先用crosscheck同步确认一下) delete obsolete redundancy 2; delete noprompt copy delete noprompt backupset tag TAG20140317T14432; delete obsolete recovery window of 7 days; delete expired backupset; delete expired copy; delete expired archivelog all;
执行crosscheck时,RMAN检查目录中列出的每一个备份集或副本而且判断他们是否存在与备份介质上。 若是备份集或副本不存在与备份介质上,它就会被标记为expired, 而且不能用于任何还原操做; 若是备份集或副本存在与备份介质上,它就会维持available状态。 若是之前被标记为expired 的备份集或副本再次存在于备份介质上,crosscheck 命令就会将它标记回available。 一、RMAN 备份检验的几种状态: expired: 对象不存在于磁盘或磁带。 available: 对象处于可用状态。 unavailabe: 对象处于不可用状态。 二、expired 与 obsolette 的区别: (1)对于EXPIRED状态,与crosscheck命令是密切相关的,RMAN经过crosscheck命令检查备份是否存在于备份介质上, 若是不存在,则状态由AVAILABLE改成EXPIRED。 (2)对于obsolete状态,是针对MAN备份保留策略来讲的,超过了这个保留策略的备份,会被标记为obsolete,但其状态依旧为AVAILABLE,咱们可使用report obsolete来查看已废弃的备份。 线程
RMAN>crosscheck backup; --校验备份片(???) RMAN> crosscheck backupset; --校验备份集 RMAN> crosscheck copy; --校验镜像副本 RMAN> crosscheck backup of controlfile; --校验备份的控制文件 RMAN> crosscheck backup of archivelog all; --校验全部备份的归档日志 RMAN> crosscheck backup of datafile 1,2; --校验datafile 1,2 RMAN> crosscheck backup of tablespace sysaux,system; --校验表空间sysaux,system RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10'; --校验时间段,时间段格式由NLS_DATE_FORMAT设置 RMAN> crosscheck backupset 1067,1068; --校验指定的备份集
一、将备份集放到快速恢复区中: 1)归档模式下:日志
backup database plus archivelog;
2)非归档模式下:code
shutdown immediate; # 关闭一致性后,打开到mount状态 backup database
二、指定备份片断的存放路径和命名规则:
backup format '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p' archivelog like '%arc_dest%';
三、备份成镜像文件:
backup as copy
四、设置备份标记(每一个标记必须惟一,相同的标记能够用于多个备份只还原最新的备份)。
backup database tag='full_bak1';
五、设置备份集大小(必须大于数据库总数据文件的大小,不然会报错)。
backup database maxsetsize=100m tag='datafile1';
六、设置备份片大小(磁带或文件系统限制)
run { allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T'; backup database tag='full_0'; release channel c1; }
PS: 能够在allocate子句中设定每一个备份片的大小,以达到磁带或系统限制。
也能够在configure中设置备份片大小。
Configure channel device type disk maxpiecesize 100 m Configure channel device type disk clear;
七、备份集的保存策略
backup database keep forever; --永久保留备份文件, 这种须要有恢复目录的支持 backup database keep until time='sysdate+30'; --保存备份30天
八、重写configure exclude命令
backup databas noexclude keep forever tag='test backup';
九、检查数据库错误
backup validate database;
使用RMAN来扫描数据库的物理/逻辑错误,并不执行实际备份。 十、跳过脱机,不可存取或只读文件
backup database skip readonly; backup database skip offline; backup database skip inaccessible; backup database ship readonly skip offline ship inaccessible;
十一、强制备份
backup database force;
十二、基于上次备份时间备份数据文件 (1)只备份添加的新数据文件:
backup database not backed up;
(2)备份"在限定时间周期内"没有被备份的数据文件:
backup database not backed up since time='sysdate-2';
1三、备份操做期间检查逻辑错误
backup check logical database; backup validate check logical database;
1四、生成备份副本
backup database copies=2;
1五、备份控制文件
backup database device type disk includ current controlfile;
%a:Oracle数据库的activation ID即RESETLOG_ID。 %c:备份片断的复制数(从1开始编号,最大不超过256)。 %d:Oracle数据库名称。 %D:当前时间中的日,格式为DD。 %e:归档序号。 %f:绝对文件编号。 %F:基于"DBID+时间"肯定的惟一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列。 %h:归档日志线程号。 %I:Oracle数据库的DBID。 %M:当前时间中的月,格式为MM。 %N:表空间名称。 %n:数据库名称,而且会在右侧用x字符进行填充,使其保持长度为8。 %p:备份集中备份片断的编号,从1开始。 %s:备份集号。 %t:备份集时间戳。 %T:当前时间的年月日格式(YYYYMMDD)。 %u:是一个由备份集编号和创建时间压缩后组成的8字符名称。利用%u能够为每一个备份集生成一个惟一的名称。 %U:默认是%u_%p_%c的简写形式,利用它能够为每个备份片断(即磁盘文件)生成一个惟一名称,这是最经常使用的命名方式。执行不一样备份操做时,生成的规则也不一样,以下所示:
生成备份片断时,%U=%u_%p_%c; 生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u; 生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u; 生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。
%Y:当前时间中的年,格式为YYYY。 PS: 若是在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片断命名。
原文出处:https://www.cnblogs.com/WoLykos/p/11585744.html