RMAN调优

发布时间 2024-01-04 10:59:59作者: guapisama

找出性能的瓶颈:
使用backup validate检查问题是否在读上面,restore validate命令
通过查询V$BACKUP_ASYNC_IO(异步)视图的EFFECTIVE_BYTES_PER_SECOND字段或者V$BACKUP_SYNC_IO(同步)的AGGREGATE字段。如果EFFECTIVE_BYTES_PER_SECOND列数值远远小于硬件的吞吐量就说明有优化的可能。可通过backup validate发现一些其他的可用信息。

当backup validate时间≈备份时间,那么问题通常出现在读。应该适当的多路复用以及足够的缓存去改善I/O性能;或观察LONG_WAITS/IO_COUNT比例,如果很大,考虑添加更多的磁盘、把慢的文件移动到快的设备上

如果问题在写阶段,可通过DBMS_BACKUP_RESTORE.SETPARMS来设置写驱动参数(一般缺省就行)

如果backup validate小于备份的时间,则大部分时间浪费到写了,可以使用压缩。压缩就是用CPU去换I/O,如果CPU有富裕则可选择高压缩比。

通过V$SESSION_LONGOPS来监控长时间的备份还原job的进度。
SELECT SID,SERIAL#,CONTEXT,SOFAR,TOTALWORK,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK;

调优思路
调整设备带宽(RATE)不是特别好建议去掉
设置DBWR_IO_SLAVELS调整同步io,异步不设置
----------------------------------------------------------------------
DBWR_IO_SLAVES参数控制数据库操作进程(DBWR)使用的文件I/O从进程数量。当系统出现磁盘I/O性能瓶颈,建议将该参数值设置大一点,以提高磁盘I/O的吞吐量。

默认情况下,DBWR_IO_SLAVES的值为0,表示不开启从进程,只有主进程。如果确实有I/O性能缓慢的情况出现,可以适当调整该参数。

正确设置DBWR_IO_SLAVES参数的方法是:

1、使用SQL或者SQL*Plus查看I/O使用的情况,比如可以使用V$SESSTAT和V$SYSSTAT视图,查看I/O操作的耗时和I/O调用次数;

2、如果耗时较高和调用次数较多,则适当调大DBWR_IO_SLAVES参数值,比如从0->2;

3、注意,调大DBWR_IO_SLAVES参数值有可能会降低系统性能,要根据实际情况来选择合适的值,并且需要经过一段时间的性能测试才能确定最佳参数值;

4、最终选择完成后,用alter system命令即可更新数据库参数。
----------------------------------------------------------------------
设置LARGE_POOL_SIZE会有更好的利用率

RMAN复用:在一个通道里面同时打开最多8个文件,一个备份集最多包含64个文件。如果我们是磁带流设备并且利用率比较低,说明复用太小,但是将复用设大了恢复的时候就会变慢。通过MAXOPENFILES来决定输入缓冲区的大小(一般16M) --所有的缓冲区都来自PGA。如果是ASM则建议都设为1-2,因为ASM已经具有条带的功能了。不建议大于8,不然读的性能会非常差。