应使用 LIST BACKUP OF ARCHIVELOG ALL; 专门查询归档日志备份,因其明确列出 SEQUENCE#、FIRST_TIME 和备份集号;而 LIST BACKUP 默认不区分类型,无法识别归档日志是否包含在备份集中。
直接看备份集内容,别只信“备份成功”四个字——rman的默认不展开归档日志细节,必须加条件或换视图才能确认是否真包含。
如何用
快速识别归档日志备份
RMAN 的
命令本身不区分备份类型,输出全是“Backup Set”条目。归档日志备份和数据文件备份混在一起,靠肉眼很难分辨。
执行
只能看到备份集编号、时间、大小等概要信息,
字段显示为
,无法判断里面是数据文件还是归档日志
真正能定位归档日志备份的是
——这个命令专查归档日志的备份记录,会列出每个归档日志的
、
和对应备份集号
如果想查某段时间内的归档日志是否被备份过,用
为什么
查不到归档日志?常见误解
很多人在 RMAN 中执行
后没看到“ARCHIVELOG”字样,就以为没备份归档日志。其实不是没备,而是没“显式归类”。
RMAN 把归档日志打包进备份集中,但备份集元数据里不标注“含归档”,只在
或
里记录归属关系
输出中的
行若带
在
路径里(比如
),大概率就是归档日志备份,但不能 100% 依赖路径命名
更可靠的方式是结合
和
对比:后者会按类型统计数量,
行非零才说明有归档日志被纳入备份
验证归档日志是否可恢复的关键检查点
光知道“有备份”不够,得确认这些归档日志能实际用于恢复——这取决于它们是否 still available 且 not expired。
oracle知识库
oracle知识库下载
下载
先运行
,再
,清理控制文件里已丢失的归档记录(否则
可能列出一堆“找不到文件”的假条目)
检查归档日志本身是否还在磁盘上:
——结果非空说明有归档日志生成了但没被任何备份覆盖
用
看有没有备份集标记为
;如果有,说明 RMAN 认为对应物理文件已不存在,即使
还显示它,也不能用于恢复
归档日志是否真正纳入备份,不能只扫一眼
就下结论。最易被忽略的是
步骤——很多 DBA 看到
有输出就认为万事大吉,结果恢复时才发现控制文件里存的是“幽灵记录”。
list backupLIST BACKUPLIST BACKUPLIST BACKUP;TYPEBACKUPSETLIST BACKUP OF ARCHIVELOG ALL;SEQUENCE#FIRST_TIMELIST BACKUP OF ARCHIVELOG FROM TIME 'SYSDATE-7' TO TIME 'SYSDATE';LIST BACKUPLIST BACKUP;V$BACKUP_ARCHIVELOGV$RMAN_BACKUP_JOB_DETAILSLIST BACKUPPIECEarchivelogHANDLE/backup/AL_1_12345_1234567890.arc.bkpLIST BACKUP OF ARCHIVELOG ALL;LIST BACKUP SUMMARY;ARCHIVELOGCROSSCHECK ARCHIVELOG ALL;DELETE EXPIRED ARCHIVELOG ALL;LIST BACKUP OF ARCHIVELOGSELECT NAME, STATUS FROM V$ARCHIVED_LOG WHERE BACKED_UP = 'N' AND DELETED = 'NO';LIST EXPIRED BACKUP;EXPIREDLIST BACKUP OF ARCHIVELOGLIST BACKUPCROSSCHECKLIST BACKUP OF ARCHIVELOG