大多数操作系统支持异步I/O。

备份到磁盘,异步I/O是一个优势,因为一个服务器进程同时可以执行多个I/O操作;同步I/O必须等上一个I/O操作完成才可以执行下一个I/O操作。

初始化参数disk_asynch_io控制oracle异步I/O操作行为。如果操作系统支持异步I/O,oracle建议设置该参数为true。

如果操作系统不支持异步I/O,可以设置dbwr_io_slaves参数为非零值来调优I/O性能。(如果设置为非零值,会增加数据库进程的数量,需要增加processes的值)

如果使用的是磁带备份,查看视图v$backup_sync_io中的列effective_bytes_per_second。如果该值比磁带设备的最大吞吐小,表明磁带设备不是streaming(连续写) 。

此外,对于磁带设备,可以比较backup validate命令和实际备份任务的时间,如果时间明显比实际备份任务时间小,表明磁带的写能力很可能是瓶颈。

可以通过以下两个试图,监控异步I/O和同步I/O:

·v$backup_async_io:查看备份或者还原操作的异步I/O

·v$backup_symc_io:查看备份或者还原的同步I/O性能。

在这两个试图中,effective_bytes_per_second列的含义:Read/write rate for device during backup or restore.

备份或还原操作中,异步I/O的监控信息:

SQL> SELECT sid, serial, filename, type, elapsed_time, effective_bytes_per_second
FROM v$backup_async_io
WHERE close_time > sysdate-; SID SERIAL FILENAME TYPE ELAPSED_TIME EFFECTIVE_BYTES_PER_SECOND
---------- ---------- ------------------------------------------------------------ --------- ------------ --------------------------
AGGREGATE
/u11/app/oracle/oradata/ora11/system01.dbf INPUT
/u11/app/oracle/oradata/ora11/sysaux01.dbf INPUT
/u11/app/oracle/oradata/ora11/example01.dbf INPUT
/u11/app/oracle/oradata/ora11/UNDOTBS02.dbf INPUT
/u11/app/oracle/oradata/ora11/yb01.dbf INPUT
/u11/app/oracle/oradata/ora11/users01.dbf INPUT
/u11/app/oracle/oradata/ora11/yb02.dbf INPUT
/u11/app/oracle/fra/ORA11/backupset/2015_07_01/o1_mf_nnndf_T OUTPUT
AG20150701T122458_bs6twvbn_.bkp AGGREGATE
/u11/app/oracle/product/11.2./dbhome_1/dbs/snapcf_ora11.f INPUT
/u11/app/oracle/fra/ORA11/autobackup/2015_07_01/o1_mf_s_8839 OUTPUT
16783_bs6tzjr5_.bkp rows selected. SQL> SELECT filename, sid, serial, close_time, long_waits/io_count as ratio
FROM v$backup_async_io
WHERE type != 'AGGREGATE'
AND SID = &SID
AND SERIAL = &SERIAL
ORDER BY ratio desc;
Enter value for sid:
old : AND SID = &SID
new : AND SID =
Enter value for serial:
old : AND SERIAL = &SERIAL
new : AND SERIAL = FILENAME SID SERIAL CLOSE_TIM RATIO
------------------------------------------------------------ ---------- ---------- --------- ----------
/u11/app/oracle/fra/ORA11/backupset/2015_07_01/o1_mf_nnndf_T -JUL- .
AG20150701T122458_bs6twvbn_.bkp /u11/app/oracle/fra/ORA11/autobackup/2015_07_01/o1_mf_s_8839 -JUL- .
16783_bs6tzjr5_.bkp /u11/app/oracle/oradata/ora11/example01.dbf -JUL-
/u11/app/oracle/oradata/ora11/UNDOTBS02.dbf -JUL-
/u11/app/oracle/oradata/ora11/users01.dbf -JUL-
/u11/app/oracle/oradata/ora11/yb02.dbf -JUL-
/u11/app/oracle/product/11.2./dbhome_1/dbs/snapcf_ora11.f -JUL-
/u11/app/oracle/oradata/ora11/sysaux01.dbf -JUL-
/u11/app/oracle/oradata/ora11/system01.dbf -JUL-
/u11/app/oracle/oradata/ora11/yb01.dbf -JUL- rows selected. SQL>

RMAN - 发现I/O瓶颈的更多相关文章

  1. 使用 Visual Studio 分析器找出应用程序瓶颈

    VS的性能分析工具 性能分析工具的选择 打开一个“性能分析”的会话:Debug->Start Diagnotic Tools Without Debugging(或按Alt+F2),VS2013 ...

  2. RMAN 还原与恢复

    一. RMAN 还原与恢复基础 在RMAN 用于中,还原与恢复是两个不同的概念.还原(restore):指访问先前生成的备份,从中得到一个或多个对象,然后在磁盘上的某个位置还原这些对象.恢复(reco ...

  3. Oracle RMAN 学习:恢复

    Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...

  4. PC虚拟现实应用的性能分析与优化:从CPU角度切入

    如今,虚拟现实 (VR) 技术正日益受到欢迎,这主要得益于遵循摩尔定律的技术进步让这一全新体验在技术上成为可能.尽管虚拟现实能给用户带来身临其境般的超凡体验,但相比传统应用,其具有双目渲染.低延迟.高 ...

  5. 带你玩转Visual Studio

    带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...

  6. (转载)持续集成(第二版)[来自:Martin Fowler]

    转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以 ...

  7. 18 个命令&工具帮你定位 Linux 性能问题

    1.TopTop命令是一个性能监控程序,它按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果.这条命令显示了CPU的使用率.内存使用率.交换内存使用大小.高速缓存使用大小. ...

  8. 我为什么期待M#?

    前段时间的报导"微软将推新编程语言M#:系统编程级别的C#",第一眼看到并没有当初看到F#的那一种不安,反而感到欣喜,业界一直存在"语言论"讨论c#.java. ...

  9. [ZZ] Maxwell 架构

    http://digi.163.com/14/0218/23/9LDCTFON00162DSP.html [IT168 评测]随着一句“娘娘,封神啦(宝鸡口音)”,中国的观众迅速认识到了两个极其出彩的 ...

随机推荐

  1. POJ 1753 Flip Game (枚举)

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26492   Accepted: 11422 Descr ...

  2. Python并发编程-redis-3.0.5 源码安装

    1.简介 Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统.redis 和 Memcached 缓存服务很像,但它支持存储的 ...

  3. mysql必知必会(三、使用mysql)

    一.连接mysql数据库 mysql -u 用户名 -p回车输入密码 二.显示所有的数据库 show databases; 三.使用数据库 use 数据库名; 四.显示所有的表 show tables ...

  4. 记录C#错误日志工具

    在编程过程中,我们经常会用try...catch处理可能出错的代码块.如果程序出现错误,则直接show出错误信息. 当然,大型的系统都有错误日志处理模块,用数据库记录错误日志信息,有相应的写入错误日志 ...

  5. 俄罗斯水手 [C#] 对List<T>取交集、连集及差集

    ※本文使用int為例,若為使用自訂之DataModel,需實作IEquatable<T>介面才能使用 1.  取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , ...

  6. POJ 1651 Multiplication Puzzle (区间DP)

    Description The multiplication puzzle is played with a row of cards, each containing a single positi ...

  7. C# 使用DateTime.TryParseExact将自定义日期类型转换成日期

    在C#中如果将一个字符串类型的日期转换成日期类型很方便的 即使用Convert.ToDateTime("2015/01/01").ToString()或DateTime.TryPa ...

  8. Python网络爬虫 - 下载图片

    下载博客园的logo from urllib.request import urlretrieve from urllib.request import urlopen from bs4 import ...

  9. CheeseZH: Octave basic commands

    1.Basic Operations 5+6 3-2 5*8 1/2 2^6 1 == 2 %false ans = 0 1 ~= 2 %true ans = 1 1 && 0 %AN ...

  10. Hibernate(十一)检索

    一.Hibernate检索策略 二.检索方法 三.get和load比较 get和load的区别:  get不支持延迟加载,而load支持.  当查询特定的数据库中不存在的数据时,get会返回null, ...