三. 能够使用的调整视图
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