RMAN实战7:list、report命令、相关动态视图、shell对RMAN监控

看RMAN备份情况常用的命令有list和report,功能可以从字面的意思上理解出来^_^,另外可以从几个动态视图中看有关备份信息。

list 命令


--查看比较详细的信息

RMAN> list backup;


备份集列表
===================


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
268     Full    17.20M     DISK        00:00:01     2015-12-15 20:45:24
        BP 关键字: 277   状态: AVAILABLE  已压缩: NO  标记: TAG20151215T204523
段名:C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\AUTOBACKUP\2015_12_15\O1_MF_S_898548323_C702V43N_.BKP
  包含的 SPFILE: 修改时间: 2015-12-15 20:37:14
  SPFILE db_unique_name: CYANG
  包括的控制文件: Ckp SCN: 3767379      Ckp 时间: 2015-12-15 20:45:23

--查看备份摘要信息
RMAN> list backup summary;


备份列表
===============
关键字     TY LV S 设备类型 完成时间            段数 副本数 压缩标记
------- -- -- - ----------- ------------------- ------- ------- ---------- ---
268     B  F  A DISK        2015-12-15 20:45:24 1       1       NO         TAG20151215T204523
269     B  F  A DISK        2015-12-15 20:47:04 1       1       NO         TAG20151215T204703
270     B  1  A DISK        2015-12-15 20:47:15 1       1       NO         INCUPDATE
271     B  1  A DISK        2015-12-15 20:47:23 1       1       NO         INCUPDATE
272     B  F  A DISK        2015-12-15 20:47:26 1       1       NO         TAG20151215T204725
273     B  1  A DISK        2015-12-15 20:47:37 1       1       NO         INCUPDATE
274     B  1  A DISK        2015-12-15 20:47:45 1       1       NO         INCUPDATE
275     B  F  A DISK        2015-12-15 20:47:48 1       1       NO         TAG20151215T204748
276     B  F  A DISK        2015-12-16 18:43:09 1       1       NO         TAG20151216T184309

--查看镜像副本
RMAN> list copy;

--列出已经备份的所有文件和相关备份集团
RMAN> listbackup by file;

--显示磁盘上的归档重做日志
RMAN> list archivelog all;

db_unique_name 为 CYANG 的数据库的归档日志副本列表
=====================================================================

关键字     线程序列     S 时间下限
------- ---- ------- - -------------------
64      1    73      A 2015-12-15 19:42:05
        名称: C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\ARCHIVELOG\2015_12_16\O1_MF_1_73_C72G9PJZ_.ARC


--显示磁盘上的归档重做日志
RMAN> list copy of archivelog all;

db_unique_name 为 CYANG 的数据库的归档日志副本列表
=====================================================================

关键字     线程序列     S 时间下限
------- ---- ------- - -------------------
64      1    73      A 2015-12-15 19:42:05
        名称: C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\ARCHIVELOG\2015_12_16\O1_MF_1_73_C72G9PJZ_.ARC

--列出归档日志的备份,及哪些归档重做日志包含到备份片中
RMAN> list backup of archivelog all;

说明与资料档案库中的任何备份都不匹配

RMAN>

report 命令

--报告各种详细信息
RMAN> report schema;

db_unique_name 为 CYANG 的数据库的数据库方案报表

永久数据文件列表
===========================
文件大小 (MB) 表空间           回退段数据文件名称
---- -------- -------------------- ------- ------------------------
1    800      SYSTEM               YES     C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSTEM_BYCLTN26_.DBF
2    250      PDB$SEED:SYSTEM      NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSTEM_BYCM0ZWL_.DBF
3    780      SYSAUX               NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSAUX_BYCLRWV7_.DBF
4    550      PDB$SEED:SYSAUX      NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSAUX_BYCM0ZW8_.DBF
5    645      UNDOTBS1             YES     C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_UNDOTBS1_BYCLWPHZ_.DBF
6    5        USERS                NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_USERS_BYCLWOB1_.DBF
7    260      PYANG1:SYSTEM        NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSTEM_BYCMNHWC_.DBF
8    600      PYANG1:SYSAUX        NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSAUX_BYCMNHW0_.DBF
9    5        PYANG1:USERS         NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_USERS_BYCMNHWP_.DBF
10   1260     PYANG1:EXAMPLE       NO      C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_EXAMPLE_BYCMNHVM_.DBF
11   500      RECCAT               NO      C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF

临时文件列表
=======================
文件大小 (MB) 表空间           最大大小 (MB) 临时文件名称
---- -------- -------------------- ----------- --------------------
1    197      TEMP                 32767       C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_TEMP_BYCM0XJO_.TMP
2    100      PDB$SEED:TEMP        32767       C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\PDBSEED_TEMP012015-09-02_12-03-07-AM.DBF
3    197      PYANG1:TEMP          32767       C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\PYANG1_TEMP012015-09-02_12-13-42-AM.DBF

--过时备份

RMAN> report obsolete;

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
数据文件副本         48     2015-12-15 20:44:45 C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\DATAFILE\O1_MF_SYSTEM_C702SQFL_.DBF
数据文件副本         49     2015-12-15 20:44:52 C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\DATAFILE\O1_MF_SYSAUX_C702SYLG_.DBF


--查看需要备份的文件
RMAN> report need backup;

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------
11   0     C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF

--根据不同的备份策略预测下需要备份的文件
RMAN> report need backup redundancy 2;

文件冗余备份少于2个
文件 #bkps 名称
---- ----- -----------------------------------------------------
10   1     C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_EXAMPLE_BYCMNHVM_.DBF
11   0     C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF

RMAN> report need backup redundancy 1;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------
11   0     C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF

RMAN> report need backup redundancy 1 datafile 4;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------

RMAN> report need backup redundancy 1 datafile 6;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------

RMAN> report need backup redundancy 1 datafile 19;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: report 命令 (在 12/16/2015 20:28:18 上) 失败
RMAN-20201: 在恢复目录中未找到数据文件
RMAN-06010: 在查看数据文件时出错: 19

--无法进行恢复得数据文件
RMAN> report unrecoverable;

由于操作无法被恢复, 文件的报表需要备份
备份请求名称的文件类型
---- ----------------------- -----------------------------------

RMAN> backup database ;



RMAN> report unrecoverable;

由于操作无法被恢复, 文件的报表需要备份
备份请求名称的文件类型
---- ----------------------- -----------------------------------

RMAN> report need backup redundancy 1 datafile 6;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------

RMAN> report need backup redundancy 1 datafile 4;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------

RMAN> report need backup redundancy 2;

文件冗余备份少于2个
文件 #bkps 名称
---- ----- -----------------------------------------------------
11   1     C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF

RMAN> report need backup redundancy 1;

文件冗余备份少于1个
文件 #bkps 名称
---- ----- -----------------------------------------------------

RMAN>

SQL命令

与备份集、备份片、备份文件等有关的几个动态视图

掌握oracle里面的视图有利于让我们更熟悉ORACLE,下面是几个视图的简要说明:

View NameInformation Provided
V$RMAN_BACKUP_JOB_DETAILSRMAN backup jobs,单个备份任务回话,含有绘画前景所有信息
V$BACKUPBackup status of online data files placed in backup mode(for hot backups)
V$BACKUP_ARCHIVELOG_SUMMARYArchive logs backed up,汇总。
V$BACKUP_ARCHIVELOG_DETAILSArchive logs backed up,详细。
V$BACKUP_CONTROLFILE_SUMMARYControl files backed up,汇总
V$BACKUP_CONTROLFILE_DETAILSControl files backed up,详细
V$BACKUP_COPY_SUMMARYControl file and data file copies,汇总
V$BACKUP_COPY_DETAILSControl file and data file copies
V$BACKUP_DATAFILEControl files and data files backed up
V$BACKUP_DATAFILE_DETAILSData files backed up in backup sets, image copies, and proxy copies
V$BACKUP_FILESData files, control files, spfiles, and archive redo logs backed up
V$BACKUP_SPFILESpfiles
V$BACKUP_PIECEBackup piece files
V$BACKUP_PIECE_DETAILSBackup piece details
V$BACKUP_SETBackup sets
V$BACKUP_SET_DETAILSBackup set details
V$RMAN_CONFIGUATIONRMAN 的配置

--查看备份集和数据文件直接的关系
sys@CYANG> SET LINES 200 PAGESIZE 100
sys@CYANG> BREAK ON REPORT ON bs_key ON completion_time ON bp_name ON file_name
sys@CYANG> COL bs_key FORM 99999 HEAD "BS Key"
sys@CYANG> COL bp_name FORM a50 HEAD "BP Name"
sys@CYANG> COL file_name FORM a88 HEAD "Datafile"
sys@CYANG> SELECT
  2  s.recid bs_key
  3  ,TRUNC(s.completion_time) completion_time
  4  ,p.handle bp_name
  5  ,f.name file_name
  6  FROM v$backup_set s
  7  ,v$backup_piece p
  8  ,v$backup_datafile d
  9  ,v$datafile f
 10  WHERE p.set_stamp = s.set_stamp
 11  AND p.set_count = s.set_count
 12  AND d.set_stamp = s.set_stamp
 13  AND d.set_count = s.set_count
 14  AND d.file# = f.file#
 15  ORDER BY
 16  s.recid
 17  ,p.handle
 18  ,f.name;

BS Key COMPLETION_TIME     BP Name                                            Datafile
------ ------------------- -------------------------------------------------- -------------------------------------------------------------------------------------
   277 2015-12-16 00:00:00 C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\BACKUPSET\2 C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSAUX_BYCLRWV7_.DBF
                           015_12_16\O1_MF_NNNDF_TAG20151216T202849_C72P821L_
                           .BKP

                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSTEM_BYCLTN26_.DBF
                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_UNDOTBS1_BYCLWPHZ_.DBF
                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_USERS_BYCLWOB1_.DBF
                                                                              C:\APP\ORACLE\RECCATLODDIR\RECCAT01.DBF
   278 2015-12-16 00:00:00 C:\APP\ORACLE\FAST_RECOVERY_AREA\CYANG\809378F0242 C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_EXAMPLE_BYCMNHVM_.DBF
                           54A0AAF1C7D06CC6D9706\BACKUPSET\2015_12_16\O1_MF_N
                           NNDF_TAG20151216T202849_C72P8KBW_.BKP

                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSAUX_BYCMNHW0_.DBF
                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_SYSTEM_BYCMNHWC_.DBF
                                                                              C:\APP\ORACLE\ORADATA\CYANG\DATAFILE\O1_MF_USERS_BYCMNHWP_.DBF

已选择 9 行。

sys@CYANG>

查看备份的性能,表v$rman_backup_job_details

用v$rman_backup_job_details这个表来看,这个地方需要注意下,里面的起止结束时间是session时间,是你连上RMAN到退出RMAN的时间,不是做备份的时间,一般都是用来统计用脚本备份的时间,如果你手动连上RMAN后在里面折腾一阵子再备份,那么时间肯定比较长,就没什么价值了。

C:\app\oracle\product\12.1.0\dbhome_1\BIN>sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on 星期三 1216 22:39:02 2015

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

sys@CYANG> COL hours FORM 9999.99
sys@CYANG> COL time_taken_display FORM a20
sys@CYANG> SET LINESIZE 132
sys@CYANG> --
sys@CYANG> SELECT
  2  session_recid
  3  ,compression_ratio
  4  ,time_taken_display
  5  ,(end_time - start_time) * 24 as hours
  6  ,TO_CHAR(end_time,'dd-mon-yy hh24:mi') as end_time
  7  FROM v$rman_backup_job_details
  8  ORDER BY end_time;

SESSION_RECID COMPRESSION_RATIO TIME_TAKEN_DISPLAY      HOURS END_TIME
------------- ----------------- -------------------- -------- --------------------
          119        1.62642761 00:11:35                  .19 07-12月-15 20:21
          177        2.62281522 00:00:13                  .00 14-12月-15 19:47
          180        1.63233666 00:00:37                  .01 14-12月-15 20:02
          186        2.95125914 00:07:31                  .13 14-12月-15 20:55
          195        3.01111485 00:21:05                  .35 15-12月-15 19:53
          208         3.2232692 00:18:44                  .31 15-12月-15 20:16
          228        5.13025553 00:00:42                  .01 15-12月-15 20:21
          235        1.49291726 00:14:55                  .25 15-12月-15 20:47
          258        1.63223903 00:00:40                  .01 16-12月-15 20:29

已选择 9 行。

sys@CYANG>

用shell脚本来检查RMAN备份的失败情况

下面这个脚本用来检测N天之内RMAN是否有过备份,已经N天内是否有未备份的数据文件,该脚本需要两个参数,参数1是SID,参数2是备份间隔天数:

#!/bin/bash
#
if [ $# -ne 2 ]; then
echo "Usage: $0 SID threshold"
exit 1
fi
# source oracle OS variables
. /var/opt/oracle/oraset $1
#--这一部分是检查N天之内是否备份过,N就是脚本的第2个参数
crit_var=$(sqlplus -s <<EOF
/ as sysdba
SET HEAD OFF FEEDBACK OFF
--delta表示 现在距最后一次备份有几天了,如果有值说明这几天之内没备份过
SELECT COUNT(*) FROM
(SELECT (sysdate - MAX(end_time)) delta
FROM v\$rman_backup_job_details) a
WHERE a.delta > $2;
EOF)
#
if [ $crit_var -ne 0 ]; then
echo "rman backups not running on $1" | mailx -s "rman problem" XXXX@XXXX.com
else
echo "rman backups ran ok"
fi
#--这一部分是检查N天内,那个数据文件还没有进行备份,即维护了数据文件后要及时进行备份
crit_var2=$(sqlplus -s <<EOF
/ as sysdba
SET HEAD OFF FEEDBACK OFF
SELECT COUNT(*)
FROM
(
SELECT name
FROM v\$datafile
MINUS
SELECT DISTINCT
f.name
FROM v\$backup_datafile d
,v\$datafile f
WHERE d.file# = f.file#
AND d.completion_time > sysdate - $2);
EOF)
#
if [ $crit_var2 -ne 0 ]; then
echo "datafile not backed up on $1" | mailx -s "backup problem" XXXX@XXXX.com
else
echo "datafiles are backed up..."
fi
#
exit 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贤时间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值