最近幫一些朋友處理了一些Oracle的問(wèn)題,也從中發(fā)現(xiàn)了一些潛在的問(wèn)題,索性總結(jié)出來(lái)作為借鑒。為了保證信息的敏感,里面的問(wèn)題描述可能和真實(shí)情況不符,但是問(wèn)題的處理方式是真實(shí)的。
問(wèn)題1:Oracle備庫(kù)無(wú)法啟動(dòng)
問(wèn)題2:Oracle備庫(kù)無(wú)法同步
問(wèn)題3:主庫(kù)添加數(shù)據(jù)文件后,備庫(kù)MRP退出。
問(wèn)題4:備庫(kù)數(shù)據(jù)無(wú)法同步
問(wèn)題1:Oracle備庫(kù)無(wú)法啟動(dòng)
有一個(gè)數(shù)據(jù)庫(kù)備庫(kù)無(wú)法啟動(dòng),這個(gè)問(wèn)題聽(tīng)起來(lái)蠻有意思,這是一個(gè)套11g的數(shù)據(jù)庫(kù),其實(shí)可以先把備庫(kù)置為read only,然后開(kāi)啟日志應(yīng)用,等狀態(tài)變?yōu)閞ead only with apply之后,就可以了,但是真實(shí)的情況還是有一些特別之處。我查看環(huán)境里的配置,發(fā)現(xiàn)主從復(fù)制關(guān)系竟然都沒(méi)有了,但是盡管復(fù)制關(guān)系沒(méi)有了,要把數(shù)據(jù)庫(kù)置為只讀還是可行的,結(jié)果嘗試了一圈都不行,最后發(fā)現(xiàn)是這位同學(xué)把system表空間的文件給調(diào)換了。
問(wèn)題2:備庫(kù)無(wú)法同步數(shù)據(jù)
這個(gè)問(wèn)題在我隨后去跟進(jìn)的時(shí)候,發(fā)現(xiàn)問(wèn)題比之前有了很大的改觀,備庫(kù)可以正常啟動(dòng)了,但是現(xiàn)在的問(wèn)題是主從數(shù)據(jù)的復(fù)制依舊失敗,從歸檔參數(shù)可以看到復(fù)制關(guān)系是存在的,網(wǎng)絡(luò)配置也沒(méi)問(wèn)題,面對(duì)這樣一個(gè)看起來(lái)有些奇怪的問(wèn)題,我的處理思路就很直接,肯定是哪里有一些我們忽略的細(xì)節(jié),怎么能夠快速定位問(wèn)題,排查問(wèn)題呢,DG Broker就是一款神器,主備庫(kù)幾乎不需要做什么額外的配置,就可以很輕松的創(chuàng)建配置,結(jié)果不到10分鐘,配置的時(shí)候,發(fā)現(xiàn)問(wèn)題的原因就是備庫(kù)的db_unique_name和主庫(kù)是一樣的,修改之后,問(wèn)題馬上迎刃而解。所以問(wèn)題原因都很簡(jiǎn)單,但是能夠很快從中找到這個(gè)原因,有一些技巧就會(huì)事半功倍。
問(wèn)題3:主庫(kù)添加數(shù)據(jù)文件后,備庫(kù)MRP退出。
第3個(gè)問(wèn)題比較特別,是因?yàn)橹鲙?kù)的表空間不足,導(dǎo)致數(shù)據(jù)寫(xiě)入阻塞,擴(kuò)容了表空間之后,發(fā)現(xiàn)問(wèn)題就來(lái)了,備庫(kù)的MRP竟然異常退出,關(guān)于數(shù)據(jù)文件導(dǎo)致的MRP異常退出,印象中比較深是在10.2.0.4里面,add datafile之后drop datafile會(huì)導(dǎo)致MRP異常,確切的說(shuō),這是一個(gè)bug,但是這里碰到的問(wèn)題是在11g里,只是添加了數(shù)據(jù)文件而已。
錯(cuò)誤大概是這樣:
/opt/oradata/u01/app/oracle/diag/rdbms/xxxxx_dg/xxxx/trace/xxxx_dbw0_9328.trc:
ORA-01186: file 6 failed verification tests
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01111: name for data file 6 is unknown - rename to correct file
ORA-01110: data file 6: '/U01/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00006'
這個(gè)6號(hào)數(shù)據(jù)文件就是新增的,簡(jiǎn)單分析之后,就會(huì)發(fā)現(xiàn)又是一個(gè)坑,主要還是參數(shù)standby_file_management是manual導(dǎo)致,可以修改下這個(gè)文件的路徑,然后開(kāi)啟文件管理為auto即可。最后開(kāi)啟日志應(yīng)用。
alterdatabasecreatedatafile
'/U01/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00006'as'xxxxxx';
altersystem setstandby_file_management=auto;
alterdatabaserecover managed standby databasedisconnect fromsession using currentlogfile;
問(wèn)題4:備庫(kù)數(shù)據(jù)無(wú)法同步。
這個(gè)問(wèn)題和問(wèn)題2是一樣的效果,但是問(wèn)題的原因卻有很大的差別。這個(gè)問(wèn)題的愿意就在于閃回去的設(shè)置,即歸檔文件無(wú)法正常創(chuàng)建,不是系統(tǒng)層面的空間不足,而是閃回區(qū)的大小不足。
所以問(wèn)題的原因和現(xiàn)象可以歸納為四點(diǎn)建議:
備庫(kù)的搭建和同步關(guān)系維護(hù)建議使用DG Broker,他們的差別就跟自動(dòng)擋和手動(dòng)擋差不多,能自動(dòng)擋干嘛非要手動(dòng)擋。
備庫(kù)的文件路徑建議保持一致,建議standby_file_management為auto
盡可能設(shè)置主備庫(kù)的閃回區(qū)為一個(gè)較大的值范圍,保證數(shù)據(jù)的寫(xiě)入不會(huì)因?yàn)檫壿嬒拗贫枞?/p>
全方位,細(xì)粒度的檢查,把問(wèn)題解決在初始階段。
單純說(shuō)上面的問(wèn)題,其實(shí)不難,但是真實(shí)的環(huán)境,真實(shí)的問(wèn)題,和你知道結(jié)果分析原因是兩回事。更何況,把別人的問(wèn)題當(dāng)做自己的問(wèn)題一樣來(lái)對(duì)待,別人也會(huì)認(rèn)真對(duì)待你。
原則上,百度谷歌沒(méi)有答案的問(wèn)題,可以郵件(jeanrock@126.com)溝通,有些問(wèn)題可能沒(méi)有答案或者因?yàn)闀r(shí)間,會(huì)有延誤,敬請(qǐng)諒解,歡迎技術(shù)交流。