備庫重新編譯導致的ora-16000 :database open for read-only access

    今天,一個開發來找我,說是備庫的一個用戶執行存儲過程報錯(我們的備庫是ora11.2.0.3的active standby)。錯誤信息如下:

    ora-00604:error occurred  at recursive SQL level 1

    ora-16000 :database open for read-only access

    看到這個錯誤,作爲一個ora菜鳥,第一感覺以爲是該存儲過程有更改數據的操作,而備庫是隻讀的。隨後,查看了該存儲過程,然而發現該存儲過程涉及到的全部都是select語句。這時開發告訴我,應用連接的用戶是b,而存儲過程是a的,並且在週四的時候b用戶執行是沒有問題的,在週五執行的時候就楚翔了上述問題,在覈對了權限問題後,依然沒有解決問題。

    後來,登陸到主庫,突然間發現存儲過程是無效的,問開發,原來是週四晚上,更改了該存儲過程導致其無效。在備庫上執行的時候,需要重新編譯,而備庫是隻讀的,無法重新編譯,導致出現了以上的錯誤。ora菜鳥---傷不起啊!~~~~


發佈了34 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章