一. List 命令
RMAN的list命令是一种在数据库控制文件或恢复目录中查询备份的历史信息的方法。列表提供了一组信息,包括从数据库对应物的列表到备份集和归档日志的备份的列表的所有信息。
1.1 列出对应物
List incarnation 命令为用户提供了目标数据库的每个数据库对应物列表。 如果有必要,可以使用这个列表的信息将数据库恢复到执行最后一条resetlogs命令前的某个时间点。
RMAN> list incarnation;
使用目标数据库控制文件替代恢复目录
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1247395743 PARENT 1 02-4月 -10
2 2 ORCL 1247395743 PARENT 940976 21-5月 -10
3 3 ORCL 1247395743 ORPHAN 8426617 06-7月 -10
4 4 ORCL 1247395743 CURRENT 8554968 06-7月 -10
Oracle 10g中新增的列是status,该列列出的是对应物的状态,该状态表明对应物是就的对应物(parent),当前对应物(current),和孤立的对应物(ORPHAN,即在resetlogs命令之后进行恢复)。
重置SCN(Reset SCN)和重置时间(Reset Time)主要说明创建数据库对应物的时间,这也是第一个条目的Reset SCN为1的原因。 该列对使用resetlogs命令进行恢复有用,并使得能较容易的恢复到前面的对应物。
注意一点,使用恢复目录和不使用恢复目录输出是有差异的。 在Inc Key 上有出入。
1.2 列出备份
List命令提供了许多不同的选项来报告数据库备份和副本的状态。
1.2.1 概述可用的备份
RMAN> list backup summary;
备份列表
===============
关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记
------- -- -- - ----------- ---------- ------- ------- ---------- ---
113 B F A SBT_TAPE 18-6月 -10 1 1 NO TAG20100618T085926
138 B F A DISK 21-6月 -10 1 1 YES TAG20100621T233122
219 B F A DISK 22-6月 -10 1 1 NO TAG20100622T212749
231 B 1 A DISK 23-6月 -10 1 1 NO ORCL
1072 B F A DISK 06-7月 -10 1 1 NO TAG20100706T134705
在这个示例中我们可以得到一下信息:
KEY(关键字): 表示备份集键
TY(类型)和LV列表示列的备份类型:
B[Backup] 表示备份
F[Full] 表示完全备份
A[Archivelog]
0和1 表示增量备份[Incremental backup]
S 列说明备份的状态: A 表示Available,X 表示Expired.
Device Type: 说明备份的设备是磁带还是磁盘
大多数list命令都可以在末尾使用summary参数,如:
List backup of database summary;
List expired backup of archivelog all summary;
List backup of tablespace users summary;
1.2.2 按备份类型列出备份
可以使用list backup by file 命令列出每个备份集和备份集片。它可以按数据文件备份,归档日志备份,控制文件和spfile文件备份列出备份信息。 如:
RMAN> list backup by file;
控制文件备份列表
============================
CF Ckp SCN Ckp 时间 BS 关键字 S 段数 副本数 压缩标记
---------- ---------- ------- - ------- ------- ---------- ---
8625387 06-7月 -10 1072 A 1 1 NO TAG20100706T134705
8555238 06-7月 -10 1000 A 1 1 NO TAG20100706T091808
SPFILE 备份的列表
======================
修改时间 BS 关键字 S 段数 副本数 压缩标记
---------- ------- - ------- ------- ---------- ---
06-7月 -10 1072 A 1 1 NO TAG20100706T134705
06-7月 -10 1000 A 1 1 NO TAG20100706T091808
27-6月 -10 732 A 1 1 NO TAG20100628T110902
21-6月 -10 231 A 1 1 NO ORCL
21-6月 -10 219 A 1 1 NO TAG20100622T212749
21-6月 -10 138 A 1 1 YES TAG20100621T233122
17-6月 -10 113 A 1 1 NO TAG20100618T085926
1.2.3 其他备份信息
如果想要查看RMAN 更多的信息,可以使用list backup命令。该命令可以提供所生成备份(包括备份集,归档的重做日志备份,控制文件备份以及服务器参数文件备份)的详细信息。
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
113 Full 16.00M SBT_TAPE 00:00:05 18-6月 -10
BP 关键字: 116 状态: AVAILABLE 已压缩: NO 标记: TAG20100618T085926
句柄: 07lghd6e_1_1 介质: /,07lghd6e_1_1
包含的 SPFILE: 修改时间: 17-6月 -10
SPFILE db_unique_name: ORCL
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
138 Full 1.03M DISK 00:00:02 21-6月 -10
BP 关键字: 142 状态: AVAILABLE 已压缩: YES 标记: TAG20100621T233122
段名:D:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/ORCL/BACKUPSET/2010_06_21/O1_MF_NC
SNF_TAG20100621T233122_61Z1KVPK_.BKP
包含的 SPFILE: 修改时间: 21-6月 -10
SPFILE db_unique_name: ORCL
1.2.4 列出适合恢复的备份
如果需要查看能够用于还原和恢复数据库的所有数据文件备份或副本,则可以使用list recoverable命令。 List 命令提供了状态为Available的,可用于还原数据库的所有备份列表(该列表值用于当前的对应物),其中包括备份,映像副本和增量备份。 如果增量备份没有有效的父备份,它就不会包含在备份中。
RMAN> list recoverable backup of database;
1.2.5 列出到期的备份
执行list expired backup命令可以列出到期的备份,该命令也可以获得到期的表空间和数据文件的备份列表,如果插入正确的关键字(如: list expired backup of datafile 3 或者 list expired backup of archivelog all),则可以获得到期的归档日志备份和控制文件/spfile文件的自动备份列表。
RMAN> list expired backup;
1.2.6 按表空间名和数据文件号列出备份
执行list backup of tablespace 或者list backup of datafile 命令可以列出指定表空间或数据文件的输出:
RMAN> list backup of tablespace users;
RMAN> list backup of datafile 3;
1.2.7 列出归档日志备份
RMAN 提供了列出归档日志备份的几种选项。 如果要得到当前存在的归档日志(并不意味着它们已经备份)的完整概述,可以使用list archivelog all命令:
RMAN> list archivelog all;
如果想要得到更详细的报告,可以使用: list backup of archivelog all
RMAN> list backup of archivelog all;
如果只想查看到期的备份集,可以执行list expired backup of archivelog all;
RMAN> list expired backup of archivelog all;
还可以设定时间或日志序列号来限制报告中显示的内容,如:
RMAN> list expired backup of archivelog until sequence 3;
RMAN> list expired backup of archivelog until time "to_date('2010-7-6','yyyy-mm-dd')";
1.2.8 列出控制文件和服务器参数文件备份
List backup of controlfile命令可以向用户提供控制文件备份的列表,list backup of spfile 可以提供服务器参数文件备份的列表。
RMAN> list backup of controlfile;
RMAN> list backup of spfile;
1.3 列出映像副本
List 命令也可以用来判断数据库映像副本的状态,如:
RMAN> list copy;
1.3.1 列出数据文件副本
可以使用list copy of database命令生成所有数据文件副本的概述列表:
RMAN> list copy of database;
也可以使用list copy of tablespace 或者list copy of datafile 命令来显示表空间或数据文件的副本。
RMAN> list copy of tablespace users;
RMAN> list copy of datafile 1;
1.3.2 列出归档的重做日志副本
可以用list copy of archivelog copies命令查看归档的重做日志副本,如:
RMAN> list copy of archivelog all;
也可以按照时间,序列或者数据库的SCN 列出特定的归档的重做日志副本,如:
RMAN> list copy of archivelog from sequence 1;
RMAN> list copy of archivelog from sequence 1 until sequence 22;
1.3.3 列出控制文件副本
RMAN 可以通过执行list controlfile copy命令来显示控制文件副本。
RMAN> list copy of controlfile;
二. Report 命令
RMAN的report命令可以用户判断数据库的当前可恢复状态和提供数据库备份的特定信息。
2.1 指定最近没有备份的数据文件
查询3天内没有备份过的表空间,可以用如下命令:
RMAN> report need backup days=3;
也可以根据需要应用的增量备份数生成报告:
RMAN> report need backup incremental =3;
2.2 报告备份冗余或恢复窗口
可以用report need backup redundancy 命令来确定为满足备份冗余策略而需要备份的数据文件。 如:
RMAN> report need backup redundancy =2;
文件冗余备份少于2个
文件 #bkps 名称
---- ----- -----------------------------------------------------
1 0 D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSTEM01.DBF
2 0 D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSAUX01.DBF
3 0 D:/APP/ADMINISTRATOR/ORADATA/ORCL/UNDOTBS01.DBF
4 0 D:/APP/ADMINISTRATOR/ORADATA/ORCL/USERS01.DBF
也可以用report need backup recovery window days命令为备份建立一个时间值最小的恢复窗口,并且报告备份时间长于这个恢复窗口的数据文件。
RMAN> report need backup recovery window of 2 days;
必须备份以满足 2 天恢复窗口所需的文件报表
文件天数据 名称
---- ----- -----------------------------------------------------
1 100 D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSTEM01.DBF
2 100 D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSAUX01.DBF
3 18 D:/APP/ADMINISTRATOR/ORADATA/ORCL/UNDOTBS01.DBF
4 100 D:/APP/ADMINISTRATOR/ORADATA/ORCL/USERS01.DBF
2.3 报告数据文件的不可用恢复操作
对于表空间中对象和组成这些表空间的数据文件执行的不可恢复操作会导致某些可恢复性问题。我们可以使用report unrecoverable命令查看unrecoverable 的对象。
RMAN> report unrecoverable;
2.4 报告数据库模式(Schema)
这里的Schema指的是数据库的物理结构,模式包括数据文件名,数据文件号,为这些数据文件指派的表空间,数据文件的大小,以及数据文件是否含有回滚段。 我们可以查看当前的模式,也可以查看过去时间点的模式。
RMAN> report schema;
2. 5 报告丢失的备份
如果使用了保存策略,备份有可能被标记为丢失状态(obsolete),可以执行report obsolete命令查看这些信息。
RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型 关键字 完成时间 文件名/句柄
-------------------- ------ ------------------ --------------------
备份集 112 18-6月 -10
备份片段 115 18-6月 -10 06lghd3f_1_1
备份集 113 18-6月 -10
备份片段 116 18-6月 -10 07lghd6e_1_1
备份集 137 21-6月 -10
备份片段 141 21-6月 -10 D:/APP/ADMINISTRATOR/FLASH_RECOVERY_ARE
A/ORCL/BACKUPSET/2010_06_21/O1_MF_NNNDF_TAG20100621T233122_61Z1GD2R_.BKP
整理自《Oracle 10g RMAN 备份与恢复》
------------------------------------------------------------------------------