這篇文章主要講解了“怎么解決12cRAC打補丁后PDB進入受限模式問題”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決12cRAC打補丁后PDB進入受限模式問題”吧!
創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)站制作、行業(yè)門戶網(wǎng)站建設、網(wǎng)頁設計制作的專業(yè)網(wǎng)站設計公司,擁有經(jīng)驗豐富的網(wǎng)站建設工程師和網(wǎng)頁設計人員,具備各種規(guī)模與類型網(wǎng)站建設的實力,在網(wǎng)站建設領域樹立了自己獨特的設計風格。自公司成立以來曾獨立設計制作的站點近1000家。
一、環(huán)境描述
操作系統(tǒng):Redhat 7.4
數(shù)據(jù)庫:12cRAC 4節(jié)點
PDB數(shù)量:20多個
總體數(shù)據(jù)量:30T
RU:DATABASE JAN 2020 RELEASE UPDATE 12.2.0.1.200114
二、主要問題
在節(jié)點1運行datapatch verbose后,其中一個PDB進入受限模式。
三、問題描述
晚上12點左右在節(jié)點1運行./datapatch verbose后,然后一直等待,2個小時后,終端開始反饋信息。
反饋的信息是:20幾個PDB打補丁成功No errors。剩下3個PDB和CDB$ROOT顯示等待超時的錯誤:
CDBROOT: ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_STATS PDB1: ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_SPACE_ADMIN ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_STATS PDB2: ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_SPACE_ADMIN ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_SNAPSHOT_UTL PDB3: ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_STATS
然后數(shù)據(jù)庫又開始自動對這4個PDB進行datapatch,等了大概半個小時,CDB$ROOT、PDB1、PDB2顯示打補丁成功NO erros,PDB3失敗,然后數(shù)據(jù)庫就自動結束打補丁了,錯誤信息如下:
OACX: ORA-04021: timeout occurred while waiting to lock object SYS.DBMS_STATS
/datapatch verbose后,查看PDB3的日志,顯示的ORA-報錯都是有IGNORED ERROR標志。然后show pdbs,查看PDB的狀態(tài),發(fā)現(xiàn)PDB3進入了受限狀態(tài)。
將所有PDB關閉后,只開啟PDB3。嘗試單獨對這個PDB3重新運行./datapatch verbose:
只會顯示Nothing to roll back Nothing to apply
檢查DBA_REGISTRY_SQLPATCH視圖,會顯示PATCH的status為WITH ERRORS(RETRYABLE)
四、問題分析
當時現(xiàn)場就對該PDB進行重打和回滾嘗試,一概顯示Nothing to roll back Nothing to apply。然后提SR,讓oracle原廠的人到現(xiàn)場分析,他們也沒遇到過這種情況,給的建議是進入startup upgrade后重新運行datapatch,但是還是一樣的狀況。
通過查看具體的日志,可能的原因是當時剛好是數(shù)據(jù)庫自動收集統(tǒng)計信息的時間段,SYS.DBMS_STATS被鎖了,而這個PDB又比較大,而且有大量的全文索引,導致這個PDB失敗打補丁失敗。
五、臨時處理方法
PDB進入受限模式后,普通用戶是無法連接數(shù)據(jù)庫的,必須授予restricted session的權限才能連接。另外所有的job都是不能自動跑起來的。通過手工授予所有業(yè)務用戶restricted session和crontab跑job的方式解決。
六、最后的解決方法
通過數(shù)據(jù)泵的方式在測試庫上恢復了這個PDB,然后嘗試將SYS.DBMS_STATS這個包通過收集全庫統(tǒng)計信息的方式鎖住,然后再運行datapatch,果然重現(xiàn)了這個問題。最后經(jīng)過不斷的測試,發(fā)現(xiàn)可以通過如下方法修復這個問題:強行打補丁,并指定補丁包的號碼。
/datapatch -force -verbose -bundle_series 200114 -apply 30593149 -pdb PDB3
感謝各位的閱讀,以上就是“怎么解決12cRAC打補丁后PDB進入受限模式問題”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么解決12cRAC打補丁后PDB進入受限模式問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!