数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

使用并行恢复提高standby的恢复速度


发布日期:2019年10月16日
 
使用并行恢复提高standby的恢复速度

有一个数据库standby库恢复时经常赶不上主库的进度用iostat x 查看磁盘利用率的时候发现三个放数据文件的盘(每个盘是由个物理盘做的raid)的读iops在以内磁盘利用率在%以内所以初步分析恢复的慢应该跟io利用率不高有关所以考虑使用并行恢复提高恢复速度

开始尝试并行恢复时有时并行恢复起不来alertlog里提示如下信息

Tue Oct ::

ALTER DATABASE RECOVER managed standby database parallel disconnect from session

Attempt to start background Managed Standby Recovery process

MRP started with pid=

MRP: Background Managed Standby Recovery process started

attempting to start a parallel recovery with processes

parallel recovery failed to get any processes

nonparallel recovery will be done

Media Recovery Log /data/arch/hzbops/hzbops_arc

有时又可以起来但最多能够启动个并行进程分析发现并行启动不了是因为nofile值设置过小导致而并行最多启动原因是parallel_max_servers 参数值设置为

对这个数据库做了如下调整

参数 parallel_max_servers

这个参数限制了实际可以起的并行进程数要在初始化参数里设置参数文件里默认没有oracle会给出一个默认值这个默认值可能过小需要调大一些

这个数据数据库从改成

/etc/security/nf 中的nofile 值调大默认是改成

* soft nofile

nofile指定了每个用户打开的文件数oracle目前有数据文件个进程并行恢复的话就需要个文件句柄所以之前设置的有点小调整完后需要关闭数据库然后退出oracle用户后再进入oracle用户让这个设置生效前面的那个并行启动不了的原因就是这个参数设置的过小

这里再检查IO看到io利用率上去了恢复进度也比以前快了很多:

avgcpu: %user %nice %sys %iowait %idle

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrqsz avgqusz await svctm %util

sda

sda

sda

sda

sda

sda

sda

sda

sda

sda

sdb

sdb

sdc

sdc

sdd

sdd

sde

sde

sdf

sdf

上一篇:Oracle9i 数据库管理实务讲座(四)-Oracle9i 数据库实体结构

下一篇:Oracle9iOCM-“大师”级别的认证