4.5. RMAN 查看信息List 与Report
4.5.1 恢复目录相关视图
恢复目录本身有一组视图,用于存放目标数据库与备份信息,可以用 RMAN用户登录数 据库进行查看,例:
RC_DATABASE
RC_DATAFILE
RC_STORED_SCRIPT RC_STORED_SCRIPT_LINE RC_TABLESPACE
4.5.2 RMAN 动态性能视图
以下是目标数据库上与 RMAN 备份有关系的一些动态性能视图,可以用 SYS用户进行 查询。
V$ARCHIVED_LOG V$BACKUP_CORRUPTION V$COPY_CORRUPTION V$BACKUP_DEVICE V$CONTROLFILE_RECORD_SECTION
V$BACKUP_DATAFILE 用于通过确 定各数 据文件中 的块数来创建大小 相同的备份
集。通过它也可以找出数据文件中已损坏的块数。 V$BACKUP_REDOLOG 显示在备份集中存储的归档日志。 V$BACKUP_SET 显示已经创建的备份集。 V$BACKUP_PIECE 显示为备份集创建的备份片。
这里还有一个视图,可以大致的监控到 RMAN 备份进行的程度。如通过如下的 SQL
脚本,将获得备份的进度。
SQL> SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
2 ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
3 FROM V$SESSION_LONGOPS
4 WHERE OPNAME LIKE 'RMAN%'
5 AND OPNAME NOT LIKE '%aggregate%'
6 AND TOTALWORK != 0
7 AND SOFAR <> TOTALWORK;
要在备份过程中将某一进程与一个通道关联起来,请:
1.启动恢复管理器并连接到目标数据库和恢复目录(与后者的连接是可选的)。
rmantarget / catalog rman/rman@rcat
2.在分配通道后,设置 COMMAND ID 参数,然后复制所需的对象。
run {
allocate channel t1 type disk;
set command id to 'rman';
copydatafile 1 to '/u01/backup/df1.cpy';
release channel t1;}
3.查询 V$SESSION_LONGOPS 视图以获得复制的状态。
SELECT sid, serial#, context, sofar, totalwork
round(sofar/totalwork*100,2) "% Complete",
FROM v$session_longops
WHERE opname LIKE 'RMAN:%'
AND opname NOT LIKE 'RMAN: aggregate%';
4.使用 SQL*Plus 并查询 V$PROCESS 和 V$SESSION 以获得 SID 和 SPID。然 后, 使用操作系统实用程序来监视进程或线程。
SELECT sid, spid, client_info FROM v$process p, v$session s WHERE p.addr = s.paddr
AND client_info LIKE '%id=rman%';
4.5.3 List
List 命令是一种在数据库控制文件 或者恢复目录中查询备份的历史信息的方法。 List提供了一组信息,可以提供各种备份的信息,如对应物、备份集、归档日志备份、控 制文件备份等等。
列出对应物:
RMAN> list incarnation;
列出备份概要信息:
RMAN> list backup summary;
按备份类型列出备份:
RMAN> list backup by file;
获得备份的详细信息,包括备份片的物理文件名:
RMAN> list backup; RMAN> list backupset bs#;
或者按照TAG 来查:
RMAN> list backup tag=tab_number;
列出过期的备份:
RMAN> list expired backup; 按照表空间和数据文件来列出备份:列出 USERS 表空间的备份:
RMAN> list backup of tablespace USERS;
列出文件 5 的备份:
RMAN> list backup of datafile 5;
列出文件 E:\ORACLE\USERS.DB 的备份:
RMAN> list backup of datafile ' E:\ORAC LE\USERS.DB ';
列出控制文件的备份:
RMAN> list backup of controlfile;
列出归档日志的备份:
RMAN> list archivelog all;
RMAN> list backup of archivelog all;
列出副本:
RMAN> list copy 列出所有的副本。 RMAN> list copy of controlfile 列出控制文件副本 RMAN> list copy of archivelog all 列出所有归档日志副本
RMAN> list copy of database 列出数据库所有数据文件的副本
4.5.4 Report
Report 命令被用于判断数据库的当前可恢复状态和提供数据库备份的特定信息,可 以检测哪些文件需要备份,哪些备份能被删除以及那些文件能不能获得的信息。可以报 告数据库的所有能备份数据文件对象,包括数据文件名、文件号、表空间、文件大小、 是否含有回滚段等。
RMAN> report schema
或者
RMAN> REPORT SCHEMA AT TIME 'SYSDATE-14'; RMAN> REPORT SCHEMA AT SCN 1000;
RMAN> REPORT SCHEMA AT SEQUENCE 100 THREAD 1;
报告需要备份的数据文件
RMAN> report need backup [ redundancy | days | incremental n];
报告过期了的数据文件或者不可用的备份与拷贝
RMAN> Report obsolete [orphan]
报告最近没有备份的数据文件
RMAN> report need backup days=10; // 恢复需要超过 10天的归档日志
RMAN> report need backup incremental=3; // 恢复时需要超过 3 增量的文件报表
文件 增量 名称
8 | 15 | E:\ORACLE\ORADATA\MING_RECOVER\MINGDICT.DB |
9 | 15 | E:\ORACLE\ORADATA\MING_RECOVER\MINGLOB.DB |
这个报告中,列出的数据文件,在进行恢复的时候,需要从 3 个以上的增量备份文件中
恢复。我们知道如果需要从很多文件中恢复,会影响恢复速度,可以根据情况来重新备份这
些文件。
报告备份冗余或恢复窗口
我们可以执行 report need backup redundancy 来确定为满足冗余备份策略而需要备份的 文件。例如:
RMAN> report need backup redundancy=2; // 文件冗余备份少于 2 个
我们也可以按照恢复窗口来查找需要备份的文件。比如我们要求恢复窗口小于 2 天,那 么用下面的命令:
RMAN> report need backup recovery window of 2 days; //文件报表的恢复需要超过 2天
的归档日志
这个命令等同于:report need backup days=2;