并行恢復(fù)standby數(shù)據(jù)庫(kù) 提高恢復(fù)速度
有一個(gè)數(shù)據(jù)庫(kù),standby庫(kù)恢復(fù)時(shí)經(jīng)常趕不上主庫(kù)的進(jìn)度,用iostat -x 3查看磁盤利用率的時(shí)候,發(fā)現(xiàn)三個(gè)放數(shù)據(jù)文件的盤(每個(gè)盤是由6個(gè)物理盤做的raid10)的讀iops在80以內(nèi),磁盤利用率在30%以內(nèi)。所以初步分析恢復(fù)的慢應(yīng)該跟io利用率不高有關(guān)。所以考慮使用并行恢復(fù)提高恢復(fù)速度。這樣就大大加快了工作效率,下面就來學(xué)習(xí)學(xué)習(xí)吧。
開始嘗試并行恢復(fù)時(shí),有時(shí)并行恢復(fù)起不來,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
有時(shí)又可以起來,但最多能夠啟動(dòng)5個(gè)并行進(jìn)程。分析發(fā)現(xiàn)并行啟動(dòng)不了是因?yàn)閚ofile值設(shè)置過小導(dǎo)致,而并行最多啟動(dòng)5個(gè),原因是parallel_max_servers 參數(shù)值設(shè)置為5。
對(duì)這個(gè)數(shù)據(jù)庫(kù)做了如下調(diào)整:
1. 參數(shù) parallel_max_servers
這個(gè)參數(shù)限制了實(shí)際可以起的并行進(jìn)程數(shù),要在初始化參數(shù)里設(shè)置。參數(shù)文件里默認(rèn)沒有,oracle會(huì)給出一個(gè)默認(rèn)值。這個(gè)默認(rèn)值可能過小,需要調(diào)大一些。
這個(gè)數(shù)據(jù)數(shù)據(jù)庫(kù)從5改成16。
2. /etc/security/limits.conf 中的nofile 值調(diào)大,默認(rèn)是1024,改成5000。
* soft nofile 65536 2u7
nofile指定了每個(gè)用戶打開的文件數(shù),oracle目前有數(shù)據(jù)文件500個(gè),開8個(gè)進(jìn)程并行恢復(fù)的話就需要4000個(gè)文件句柄。所以之前設(shè)置的有點(diǎn)小。調(diào)整完后,需要關(guān)閉數(shù)據(jù)庫(kù),然后退出oracle用戶后,再進(jìn)入oracle用戶,讓這個(gè)設(shè)置生效。前面的那個(gè)并行啟動(dòng)不了的原因就是這個(gè)參數(shù)設(shè)置的過小。
這里再檢查IO,看到io利用率上去了,恢復(fù)進(jìn)度也比以前快了很多:
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
這就是我要為大家介紹的并行恢復(fù)standby數(shù)據(jù)庫(kù),這些代碼之類的可能對(duì)初學(xué)者比較難理解,凡事開頭難,只要您肯下功夫?qū)W習(xí),沒有不成的事。好好學(xué)習(xí)這篇文章中介紹的,希望能對(duì)大家又幫助。
【編輯推薦】