并行恢复standby数据库 提高恢复速度
创始人
2024-07-22 11:50:37
0

有一个数据库,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 参数值设置为5。

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

1. 参数 parallel_max_servers

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

这个数据数据库从5改成16。

2. /etc/security/limits.conf 中的nofile 值调大,默认是1024,改成5000。

* soft nofile 65536 2u7

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

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

avg-cpu: %user %nice %sys %iowait %idle @}

1.04 0.00 0.71 27.54 70.71

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

sda 0.00 12.67 0.33 5.67 2.67 146.67 1.33 73.33 24.89 0.00 0.28 0.28 0.17

sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sda2 0.00 5.33 0.33 1.00 2.67 50.67 1.33 25.33 40.00 0.00 1.25 1.25 0.17

sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sda5 0.00 1.33 0.00 1.33 0.00 21.33 0.00 10.67 16.00 0.00 0.00 0.00 0.00

sda6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sda7 0.00 3.67 0.00 1.67 0.00 42.67 0.00 21.33 25.60 0.00 0.00 0.00 0.00

sda8 0.00 2.00 0.00 1.00 0.00 24.00 0.00 12.00 24.00 0.00 0.00 0.00 0.00

sda9 0.00 0.33 0.00 0.67 0.00 8.00 0.00 4.00 12.00 0.00 0.00 0.00 0.00

sda10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

sdc 0.67 0.00 22.00 0.00 5466.67 0.00 2733.33 0.00 248.48 0.02 0.91 0.91 2.00

sdc1 0.67 0.00 22.00 0.00 5466.67 0.00 2733.33 0.00 248.48 0.02 0.91 0.91 2.00

sdd 0.00 0.67 365.33 0.67 5634.67 10.67 2817.33 5.33 15.42 1.76 4.81 2.13 77.97

sdd1 0.00 0.67 365.33 0.67 5634.67 10.67 2817.33 5.33 15.42 1.76 4.81 2.13 77.97

sde 0.00 0.33 356.33 0.33 5528.00 5.33 2764.00 2.67 15.51 1.49 4.19 2.08 74.07

sde1 0.00 0.33 356.33 0.33 5528.00 5.33 2764.00 2.67 15.51 1.49 4.19 2.08 74.07

sdf 0.00 0.00 290.00 0.00 4533.33 0.00 2266.67 0.00 15.63 1.37 4.72 2.37 68.73

sdf1 0.00 0.00 290.00 0.00 4533.33 0.00 2266.67 0.00 15.63 1.37 4.72 2.37 68.73

这就是我要为大家介绍的并行恢复standby数据库,这些代码之类的可能对初学者比较难理解,凡事开头难,只要您肯下功夫学习,没有不成的事。好好学习这篇文章中介绍的,希望能对大家又帮助。

【编辑推荐】

  1. 专利数据库的作用
  2. 数据库优化设计注意事项
  3. 企业数据库安全四大策略

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...