您的位置:首页 > 数据库 > Oracle

ORACLE 查看RMAN的备份信息总结

2016-07-19 14:45 435 查看
关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它方式检查RMAN备份的成功与失败呢?其实我们可以通过下面SQL脚本来检查某个时间段备份失败的记录:

SELECT*FROMV$RMAN_STATUS
WHERESTART_TIME>=TO_DATE(&START_TIME,'YYYY-MM-DDHH24:MI:SS')
ANDEND_TIME<=TO_DATE(&END_TIME,'YYYY-MM-DDHH24:MI:SS')
ANDOPERATION='BACKUP'
ANDSTATUS!='COMPLETED'
ANDSTATUSNOTLIKE'RUNNING%'

查看备份成功的历史记录:

SELECT*FROMV$RMAN_STATUS
WHERESTART_TIME>=TO_DATE(&START_TIME,'YYYY-MM-DDHH24:MI:SS')
ANDEND_TIME<=TO_DATE(&END_TIME,'YYYY-MM-DDHH24:MI:SS')
ANDOPERATION='BACKUP'
ANDSTATUS='COMPLETED'

其中STATUS主要有RUNNING、RUNNINGWITHWARNINGS、RUNNINGWITHERRORS、COMPLETED、COMPLETEDWITHWARNINGS、COMPLETEDWITHERRORS、FAILED等几种状态。另外,如果你在命令窗口输入

[oracle@MyDB~]$date
TueJul1910:52:02CST2016
[oracle@MyDB~]$rmantarget/
RecoveryManager:Release10.2.0.5.0-ProductiononTueJul1910:52:132016
Copyright(c)1982,2007,Oracle.Allrightsreserved.
connectedtotargetdatabase:SCM2(DBID=3990839260)
RMAN>

在V$RMAN_STATUS里面,你会看到插入了一条记录STATUS为RUNNING状态

SQL>COLROW_TYPEFORA10;
SQL>COLOPERATIONFORA10;
SQL>COLCOMMAND_IDFORA20;
SQL>COLSTATUSFORA30;
SQL>COLOBJECT_TYPEFORA16;
SQL>SELECTROW_TYPE,COMMAND_ID,OPERATION,STATUS,OBJECT_TYPE
2FROMV$RMAN_STATUS
3WHERESTART_TIME>=TO_DATE('2016-07-1910:52:00','YYYY-MM-DDHH24:MI:SS');
ROW_TYPECOMMAND_IDOPERATIONSTATUSOBJECT_TYPE
-------------------------------------------------------------------------
SESSION2016-07-19T10:52:13RMANRUNNING

此时如果在RMAN中随意执行一个错误命令,如下所示

[oracle@MyDB~]$rmantarget/
RecoveryManager:Release10.2.0.5.0-ProductiononTueJul1910:52:132016
Copyright(c)1982,2007,Oracle.Allrightsreserved.
connectedtotargetdatabase:SCM2(DBID=3990839260)
RMAN>/
RMAN-00571:===========================================================
RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:===========================================================
RMAN-00558:errorencounteredwhileparsinginputcommands
RMAN-01006:errorsignalledduringparse
RMAN-02001:unrecognizedpunctuationsymbol"/"





SQL>COLROW_TYPEFORA10;
SQL>COLOPERATIONFORA10;
SQL>COLCOMMAND_IDFORA20;
SQL>COLSTATUSFORA30;
SQL>COLOBJECT_TYPEFORA16;
SQL>SELECTROW_TYPE,COMMAND_ID,OPERATION,STATUS,OBJECT_TYPE
2FROMV$RMAN_STATUS
3WHERESTART_TIME>=TO_DATE('2016-07-1910:52:00','YYYY-MM-DDHH24:MI:SS');
ROW_TYPECOMMAND_IDOPERATIONSTATUSOBJECT_TYPE
-----------------------------------------------------------------------------
SESSION2016-07-19T10:52:13RMANRUNNINGWITHERRORS


在RMAN中退出,此时你会看到STAUS记录从"RUNNINGWITHERRORS"变成了"COMPLETEDWITHERRORS"



也就是说,你可以在这个视图里面查看在RMAN里面执行的一些操作,例如删除归档日志等,另外,如果要查看RMAN的输出,可以查看V$RMAN_OUTPUT,V$RMAN_OUTPUT视图记录了RMAN生成的信息,这是在内存中额视图,不会记录到控制文件上。最多有37278条记录.
当然也可以从V$RMAN_BACKUP_JOB_DETAILS中查看RMAN备份更详细的信息。

SELECTSTART_TIME,
END_TIME,
OUTPUT_DEVICE_TYPE,
STATUS,
ELAPSED_SECONDS,
COMPRESSION_RATIO,
INPUT_BYTES_DISPLAY,
OUTPUT_BYTES_DISPLAY
FROMV$RMAN_BACKUP_JOB_DETAILS
ORDERBYSTART_TIMEDESC;

另外,如果我们需要查看RMAN备份的一些详细记录,在惜分飞的通过sql查询rman备份信息博客里面分享了下面一些经典的SQL语句。收录在此。
查看所有备份集详细信息:

SELECTA.RECID"BACKUPSET",
A.SET_STAMP,
DECODE(B.INCREMENTAL_LEVEL,
'',DECODE(BACKUP_TYPE,'L','Archivelog','Full'),
1,'Incr-1级',
0,'Incr-0级',
B.INCREMENTAL_LEVEL)
"TypeLV",
B.CONTROLFILE_INCLUDED"包含CTL",
DECODE(A.STATUS,
'A','AVAILABLE',
'D','DELETED',
'X','EXPIRED',
'ERROR')
"STATUS",
A.DEVICE_TYPE"DeviceType",
A.START_TIME"StartTime",
A.COMPLETION_TIME"CompletionTime",
A.ELAPSED_SECONDS"ElapsedSeconds",
A.BYTES/1024/1024/1024"Size(G)",
A.COMPRESSED,
A.TAG"Tag",
A.HANDLE"Path"
FROMGV$BACKUP_PIECEA,GV$BACKUP_SETB
WHEREA.SET_STAMP=B.SET_STAMPANDA.DELETED='NO'
RDERBYA.COMPLETION_TIMEDESC;

查找某个备份集中包含数据文件

SELECTDISTINCTc.file#,A.SET_STAMP,D.NAME,C.CHECKPOINT_CHANGE#,C.CHECKPOINT_TIME
FROMV$BACKUP_DATAFILEC,V$BACKUP_PIECEA,V$DATAFILED
WHEREA.SET_STAMP=C.SET_STAMP
ANDD.FILE#=C.FILE#
ANDA.DELETED='NO'
ANDc.set_stamp=&set_stamp
ORDERBYC.FILE#;

查询某个备份集中控制文件

SELECTDISTINCTA.SET_STAMP,
D.NAME,
C.CHECKPOINT_CHANGE#,
C.CHECKPOINT_TIME
FROMV$BACKUP_DATAFILEC,V$BACKUP_PIECEA,V$CONTROLFILED
WHEREA.SET_STAMP=C.SET_STAMP
ANDC.FILE#=0
ANDA.DELETED='NO'
ANDC.SET_STAMP=&SET_STAMP;

查看某个备份集中归档日志:

SELECTDISTINCTB.SET_STAMP,
B.THREAD#,
B.SEQUENCE#,
B.FIRST_TIME,
B.FIRST_CHANGE#,
B.NEXT_TIME,
B.NEXT_CHANGE#
FROMV$BACKUP_REDOLOGB,V$BACKUP_PIECEA
WHEREA.SET_STAMP=B.SET_STAMP
ANDA.DELETED='NO'
ANDB.SET_STAMP=&SET_STAMP
ORDERBYTHREAD#,SEQUENCE#;

查看某个备份集SPFILE

SELECTDISTINCTA.SET_STAMP,B.COMPLETION_TIME,HANDLE
FROMV$BACKUP_SPFILEB,V$BACKUP_PIECEA
WHEREA.SET_STAMP=B.SET_STAMP
ANDA.DELETED='NO'
ANDB.SET_STAMP=&SET_STAMP;

查看RMAN的配置信息

SELECTNAME,VALUEFROMV$RMAN_CONFIGURATION;

参考资料:
http://www.xifenfei.com/2012/02/%E9%80%9A%E8%BF%87sql%E6%9F%A5%E8%AF%A2rman%E5%A4%87%E4%BB%BD%E4%BF%A1%E6%81%AF.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: