Menu Close

RMAN备份信息查询

1. 名词解释

1.1. Backup sets 备份集

备份集顾名思义就是一次备份的集合,它包含本次备份的所有备份片,以oracle专有的格式保存。一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。

1.2. Backup pieces 备份片

一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能大于你的文件系统所支持的文件长度的最大值。

1.3. Image copies 映像备份

映像备份不压缩、不打包、直接COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。而且只能COPY 到磁盘,不能到磁带。可以作为增量备份的0级,一般用来备份控制文件。

1.4. Full backup 全备份

全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN 进行备份是进行压缩的。

1.5. Incremental backup 增量备份

增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。与完全备份相同,增量备份也进行压缩。增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。

1.6. Recovery catalog 恢复目录

恢复目录用于记录RMAN 使用过程中的控制信息,恢复目录应该经常被同步(这在后面会讲到)。尽管我们可以使用nocatalog 方式来使用RMAN,此时控制信息记录在目标数据库的控制文件中,但这样毕竟不安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN 备份失效。同样的道理恢复目录应该建立在另外一个数据库中,在下面的例子中我们称作“目录数据库”。

2. 查看备份详细信息

RMAN>
list backup of database;
术语 解释--------------------------------------------------------------------
BS Key 备份集号
Type 备份类型,Incr代表增量备份
LV 备份级别,如1级备、0级备份
Size 大小
Device Type 设备类型,DISK代表磁盘
Elapsed Time 消耗时间
Completion Time 完成时间
BP Key 备份片号
Status 备份状态,AVAILABLE代表可用
Compressed 是否压缩,YES代表已经压缩
Tag 标签,默认会以时间格式列出,如 TAG20140526T151509代表2014年5月26日,15:15进行的备份
Piece Name 备份片的物理路径,如/backup/level1_25p98sfu_1_1.bak
Ckp SCN 数据文件的scn号
Ckp Time 生产检查点时间

2.1. rman备份监控脚本

此脚本将报告当前和已完成备份详细信息的状态,如完整、增量和归档日志备份.

SET LINES 300 PAGES 999
COL STATUS           FORMAT a9
COL elapsed_minutes  FORMAT 999.99
SELECT session_key,
       input_type,
       status,
       to_char(START_TIME,'mm/dd/yy hh24:mi') AS start_time,
       to_char(END_TIME,'mm/dd/yy hh24:mi')   AS end_time,
       round(elapsed_seconds / 60,2)          AS elapsed_minutes
  FROM v$rman_backup_job_details
 ORDER BY session_key;

2.2. rman备份监控脚本

此脚本将查看RMAN备份集的大小.

SET LINES 300 PAGES 999
SELECT TO_CHAR(start_time, 'yyyy-mm-dd')                AS start_time,
       TO_CHAR(start_time, 'day')                       AS day,
       ROUND(SUM(output_bytes) / 1024 / 1024 / 1024, 2) AS size_gb
  FROM v$backup_set_details
 GROUP BY TO_CHAR(start_time, 'yyyy-mm-dd'), TO_CHAR(start_time, 'day')
 ORDER BY start_time DESC;

或者:

SET LINES 300 PAGES 999
SELECT TO_CHAR(start_time, 'yyyy-mm-dd')         AS start_time,
       TO_CHAR(start_time, 'day')                AS day,
       ROUND(SUM(BYTES) / 1024 / 1024 / 1024, 2) AS size_gb
  FROM v$backup_piece
 WHERE handle IS NOT NULL
GROUP BY TO_CHAR(start_time, 'yyyy-mm-dd'), TO_CHAR(start_time, 'day')
 ORDER BY start_time DESC;

附录

A、相关联的文档

Oracle Rman 累积增量备份与差异增量备份:http://dba.qishuo.xin/?p=876
Oracle Rman 备份实践:http://dba.qishuo.xin/?p=886