使用并行恢复提高standby的恢复速度
: A0 l' z5 C; l0 s7 w有一个数据库,standby库恢复时经常赶不上主库的进度,用iostat -x 3查看磁盘利用率的时候,发现三个放数据文件的盘(每个盘是由6个物理盘做的raid10)的读iops在80以内,磁盘利用率在30%以内。所以初步分析恢复的慢应该跟io利用率不高有关。所以考虑使用并行恢复提高恢复速度。; D4 c6 G$ w( E! ]/ r
开始尝试并行恢复时,有时并行恢复起不来,alert.log里提示如下信息:
( e4 u: U* b5 E; J$ `. D. VTue Oct 12 18:09:28 2010& S# U7 h6 ?# F! y
ALTER DATABASE RECOVER managed standby database parallel 8 disconnect from session
6 \) I% y" V2 i& e+ X5 _$ HAttempt to start background Managed Standby Recovery process2 z( B- K4 h0 R. \
MRP0 started with pid=8, v: b7 G7 ^6 V( l) |- X3 a& {
MRP0: Background Managed Standby Recovery process started- a& y8 O2 {5 a
attempting to start a parallel recovery with 8 processes
% [6 v; `# {5 ]4 C/ {) u, Vparallel recovery failed to get any processes5 [- x2 B# T3 I S+ Q) R) u; a& x' P
non-parallel recovery will be done# L) m5 L: s5 N' ^0 x
Media Recovery Log /data3/arch/hzbops/hzbops1_347246.arc
& m$ n( g/ i0 H有时又可以起来,但最多能够启动5个并行进程。分析发现并行启动不了是因为nofile值设置过小导致,而并行最多启动5个,原因是parallel_max_servers 参数值设置为5。4 Z3 e( d6 \4 F* p; r: X7 g6 H
对这个数据库做了如下调整:
( G. U" z4 ?7 P: `' l1. 参数 parallel_max_servers1 O5 J: E9 k: ^+ C% {
这个参数限制了实际可以起的并行进程数,要在初始化参数里设置。参数文件里默认没有,oracle会给出一个默认值。这个默认值可能过小,需要调大一些。& A' z) J9 n. Q$ t
这个数据数据库从5改成16。
& F) g7 x H" G, Q' }4 K# D! K4 j2. /etc/security/limits.conf 中的nofile 值调大,默认是1024,改成5000。8 H8 Q; U+ q/ ^2 W3 F$ S5 l
* soft nofile 655365 z2 g' U2 ^6 t: [9 x( ]/ t
nofile指定了每个用户打开的文件数,oracle目前有数据文件500个,开8个进程并行恢复的话就需要4000个文件句柄。所以之前设置的有点小。调整完后,需要关闭数据库,然后退出oracle用户后,再进入oracle用户,让这个设置生效。前面的那个并行启动不了的原因就是这个参数设置的过小。
; ?7 K1 d$ a2 E" U% x4 t$ W这里再检查IO,看到io利用率上去了,恢复进度也比以前快了很多:
0 {4 ?0 d, R4 Z+ x8 I9 j6 N avg-cpu: %user %nice %sys %iowait %idle
% `8 H) P( O8 X. O2 w+ w 1.04 0.00 0.71 27.54 70.71
4 o% u5 O" C4 j$ p6 N Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util2 U5 O7 p! t8 c$ c& X
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( T8 e+ X9 T" L4 Y$ r8 S9 V, C7 e: y, u
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
. O' E1 {# } ~" F; r4 }2 _ 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, I# d6 r. v2 z! g9 i) o
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
! f. p5 V) h8 u5 q! F) c 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
' f" c0 A( K7 I9 L1 {9 R 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
0 @5 T' T+ B8 N" A/ E! B 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) s# Z0 s- W7 q& u3 K
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.006 B+ E2 ~1 |% m0 T! L* a& \1 B
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% i2 K9 {! x! p$ z9 x& J
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. s6 C$ W( M* [% H' g9 K- ^2 L
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
0 o% }# E* V i& D. c 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# {$ E7 N0 F3 n; [
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! l2 b& ^% i9 S, d5 I6 n
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.004 X$ x2 s! ~2 h
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
0 e% r/ e9 n7 E8 B! X 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 d' T$ V; o2 ^! X1 G: a( S
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
3 X! u, {4 \! q8 E 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. S: s! K4 H6 u/ ?7 }$ _
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
* T" F, z* ^$ Q) W1 `' z 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 |