有一个数据库,standby库恢复时经常赶不上主库的进度,用iostat -x 3查看磁盘利用率的时候,发现三个放数据文件的盘(每个盘是由6个物理盘做的raid10)的读iops在80以内,磁盘利用率在30%以内。所以初步分析恢复的慢应该跟io利用率不高有关。所以考虑使用并行恢复提高恢复速度。这样就大大加快了工作效率,下面就来学习学习吧。
开始尝试并行恢复时,有时并行恢复起不来,alert.log里提示如下信息:
Tue Oct 12 18:09:28 2010
ALTER DATABASE RECOVER managed standby database parallel 8 disconnect from session Exti+%g
Attempt to start background Managed Standby Recovery process
MRP0 started with pid=8
MRP0: Background Managed Standby Recovery process started
attempting to start a parallel recovery with 8 processes
parallel recovery failed to get any processes VUvh8wun
non-parallel recovery will be done Sb'a@ ]`cn
Media Recovery Log /data3/arch/hzbops/hzbops1_347246.arc
有时又可以起来,但最多能够启动5个并行进程。分析发现并行启动不了是因为nofile值设置过小导致,而并行最多启动5个,原因是parallel_max_servers 参数值