三. 能够使用的调整视图

1、v$session_longops 和 v$session 视图

可以通过这2个视图来去定操作已执行时间和预计完成时间。 如:

/* Formatted on 2010/7/13 20:04:30 (QP5 v5.115.810.9015) */

SELECT   a.sid,

        a.serial#,

        a.program,

        b.opname,

        b.time_remaining

 FROM   v$session a, v$session_longops b

WHERE       a.sid = b.sid

        AND a.serial# = b.serial#

        AND a.program LIKE '%rman%'

        AND time_remaining > 0;

      SID    SERIAL# PROGRAM    OPNAME                    TIME_REMAINING

---------- ---------- ---------- ------------------------- --------------

      271        191 rman.exe   RMAN: aggregate input                240

       15       1546 rman.exe   RMAN: archived log backup             75

从这个输出,我们可以看出,连接的数据库SID 为15,预计完成时间为75秒。


2、v$backup_async_io 和 V$backup_sync_io 视图

 这两个视图分别表示RMAN 异步备份和同步备份操作的详细信息。 这2个视图是暂时的,并会在每次数据库关闭时被清空。 这两个视图含有每个异步操作,同步操作或恢复操作的记录。 其中最有用的信息是type列被设置为aggregate的记录中的effective_bytes_per_second列,该列表示每秒备份或恢复对象的字节数,这个字节数应当接近与列出的备份硬件读写速率。 如果effective_bytes_per_second列中的值远小于备份硬件读写速率值,就应当查找备份进程中的问题。如: CPU 超载,网络饱和,或者MML 接口的配置问题。

/* Formatted on 2010/7/13 20:04:13 (QP5 v5.115.810.9015) */

 SELECT   device_type "Device",

          TYPE,

          filename,

          TO_CHAR (open_time, 'yyyy-mm-dd hh24:mi:ss') open,

          TO_CHAR (close_time, 'yyyy-mm-dd hh24:mi:ss') close,

          elapsed_time et,

          effective_bytes_per_second EPS

   FROM   v$backup_async_io

  WHERE   close_time > SYSDATE - 10

ORDER BY   close_time DESC;

DISK INPUT D:/.../SNCFORCL.ORA   2010-07-13 19:27:25 2010-07-13 19:27:26 100 10092544

DISK AGGREGATE                   2010-07-13 19:27:25 2010-07-13 19:27:26 100 10092544

DISK OUTPUT D:/.../O1_MF_S_.BKP   2010-07-13 19:27:25 2010-07-13 19:27:26 100 10174464

DISK AGGREGATE               2010-07-13 19:27:22 2010-07-13 19:27:22 0

DISK INPUT D:/ARCHIVELOG/ORCL_1.ARC 2010-07-13 19:27:22 2010-07-13 19:27:22 0

DISK OUTPUT F:/BACKUP/ORCL1_1.BAK   2010-07-13 19:27:22 2010-07-13 19:27:22 0

DISK INPUT D:/.../SYSTEM01.DBF  2010-07-13 19:24:46 2010-07-13 19:27:17 15100 7614383

DISK AGGREGATE              2010-07-13 19:24:46 2010-07-13 19:27:17 15100 13711672

DISK OUTPUT F:/BACKUP/ORCL.BAK 2010-07-13 19:24:46 2010-07-13 19:27:17 15100 10892159

使用v$backup_async_io 视图是测试备份进程效率的另一种方法。 在v$backup_async_io视图中有用的几个列:

IO_COUNT: I/O 计数总数

READY: 缓冲区立即可用的异步I/O调用数

SHORT_WAITS: 请求一个缓冲区但缓冲区不能立即使用,而以非阻塞方式轮询I/O完成之后变为可用的次数。

LONG_WAITS: 请求一个缓冲区,但缓冲区不能使用,Oracle 必须等待I/O设备的次数。

为了判断是否存在I/O问题,我们可以用一下代码来查看I/O和长等待的比率(LONG_WAITS/IO_COUNT):

/* Formatted on 2010/7/13 20:03:55 (QP5 v5.115.810.9015) */

SELECT   b.io_count,

        b.ready,

        b.short_waits,

        b.long_waits,

        b.long_waits / b.io_count,

        b.filename

 FROM   v$backup_async_io b;

IO_COUNT READY SHORT_WAITS LONG_WAITS  B.LONG_WAITS/B.IO_COUNT FILENAME

4538 3350 1138  50 0.0110180696342001

92     68     23     1 0.0108695652173913 D:/ARCHIVELOG/ORCL_1_106_719615012.ARC

92 68 23 1 0.0108695652173913 D:/ARCHIVELOG/ORCL_1_91_719615012.ARC

92 68 23 1 0.0108695652173913 D:/ARCHIVELOG/ORCL_1_99_719615012.ARC

92 68 23 1 0.0108695652173913 D:/ARCHIVELOG/ORCL_1_98_719615012.ARC

如果LONG_WAITS/IO_COUNT 过高,则说明有问题。


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html