1. 程式人生 > >備庫重新編譯導致的ora-16000 :database open for read-only access

備庫重新編譯導致的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菜鳥---傷不起啊!~~~~