关于rmanI/O同步异步问题

本文详细探讨了Oracle RMAN备份时的I/O同步和异步模式,指出并非所有RMAN备份都会使用Large Pool。在支持异步I/O的系统中,磁盘备份不会使用从属I/O,而是直接使用PGA。同时,配置db_io_slaves与db_write_process可能存在冲突。RMAN备份默认使用AIO,但若操作系统不支持,可通过启用IO从属进程模拟。文中还介绍了如何计算Large Pool的大小,并建议在启用IO从属时设置合适的Large Pool大小以优化性能。
摘要由CSDN通过智能技术生成

困扰了好几日的问题,其实并不是所有的rman备份都会被推入到SGA区的,要分情况看,看系统是否支持异步I/O,还有是否配置了相关的从属I/O参数,磁盘和磁带需要分别看待。现在的书就算买理论的都讲得不清不楚,中国这种教育,害人不浅那。还好查了几日,甚至直接下了一篇Rman的电子书从头读,幸运找到这个文章,写的很具体详实。如果系统支持异步i/o,备份到磁盘是不用使用从属的,就算配置了,数据库也会直接忽略该参数值,而且这种情况仅会使用PGA(从通道中分配内存空间)。

还要注意,配置db_io_slaves是和db_write_process参数有冲突的。具体写到另一篇文章中。

我们在学习Oracle的过程中,或多或少会存在个人对概念的理解错误、误解或者根本是教材编写存在不严谨的地方,这样或以讹传讹或三人言虎,导致在Oracle圈子存在着一些古老相传的迷信(superstition),因为这些迷信已经深入人心了,所以我们几乎很难纠正过来;这其实很有意思,IT作为一个高科技的领域也会出现迷信,说明我们在IT技术的”教学”和”思考”上存在问题,这一点值得深思。

这里我列出几个最为常见的迷信,算作抛砖引玉:

1.几乎所有的Oracle入门教程都会在介绍Large pool的时候这样描述:”RMAN 备份使用large pool作为磁盘I/O缓冲区,配置Large pool有助于提高RMAN备份性能”

Truth:除非你启用了slaves IO,否则rman并不使用large pool

RMAN I/O可以分成三种模式:

Mode Disk tape
Asynchronous I/O(异步) 绝大多数操作系统支持AIO,默认disk_asynch_io为TRUE,即默认启用磁盘异步IO。如果磁盘设备不支持AIO,那么会使用synchronous I/O。磁盘异步模式下RMAN I/O缓冲区域从PGA中分配,相关IO性能信息存放在V$backup_async_io视图中 磁带设备本身不支持AIO(tape I/O is always synchronous),虽然默认tape_asynch_io为TRUE,但磁带设备只能通过IO slaves模拟异步IO,所以启用磁带AIO需要另外设置backup_tape_io_slaves=TRUE。此模式下RMAN I/O缓冲区从shared pool或者large pool中分配,相关IO性能信息存放在V$backup_async_io视图中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值