測試庫發生ora-12528錯誤及相應的該錯誤測試記錄

jinqibingl發表於2012-10-04

測試庫發生ora-12528錯誤及相應的該錯誤測試記錄  

1、為了測試程式是否確實接入測試庫,所以關閉測試庫。然後重新啟動,執行STARTUP命令,就發生了ORA-12528錯誤。

2、數次啟動資料庫,啟動方式如下:

connect / as sysdba

startup

啟動是正常的,但是每次啟動完成之後,用lsnrctl status檢視時,發現指定的服務狀態為BLOCKED,比較奇怪。

3、後來才想明白,這個測試伺服器上安裝了兩個資料庫,預設情況下,關閉並重啟了另外一個資料庫,沒有啟動我需要的那個資料庫。

4、CMD下:set ORACLE_SID=orcl

然後執行sqlplus /nolog,去正常啟動ORCL資料庫,這時候故障就排除了。

5、但是始終沒有明白,為什麼ORCL資料庫會停止在NOMOUNT階段,從執行過程看,自己認為應該是資料庫關閉的事情,停滯在了NOMOUNT階段.

6、這裡還需要說明一下,我使用的是動態註冊,動態監聽註冊由PMON程式負責向監聽器註冊。

7、經過試驗發現,在資料庫的NOMOUNT和MOUNT階段,PMON程式在NOMOUNT階段已經啟動,但可能是由於資料庫沒有開啟,所以PMON程式向監聽器註冊的服務狀態都是BLOCKED,並不是READY狀態,所以導致所有連線全部中斷。最後一次測試,發現,NOMOUNT階段,PMON向監聽器註冊的狀態確實為BLOCKED,但是在MOUNT階段,大概資料庫MOUNT之後1分鐘左右,監聽服務狀態已經改為READY,但是遠端仍然連線不進。

8、進一步測試,發現各個階段出現的錯誤提示不太相同,注意哈,這裡的連線方式是透過簡易連線字串連線的,就是@ip地址:1521/服務名,這種方式連線的,不是IPC,也不是TNSNAME解析:

NOMOUNT階段,任何使用者包括SYS使用者,登入的時候,均提示ora-12528錯誤。

MOUNT階段,任何使用者包括SYS使用者,登入的時候,均提示ora-01033錯誤。

提示的錯誤號居然不一樣,提示的錯誤內容不一樣。

9、用IPC進行連線測試:

SYS使用者,所有階段均可以連線。

SYSTEM使用者,在NOMOUNT階段和MOUNT階段,均提示ora-01033錯誤。

10、用TNSNAME解析連線,在客戶機上進行:

NOMOUNT階段,SYS和SYSTEM使用者均提示ora-12528錯誤。

MOUNT階段,SYS使用者連線正常,但是SYSTEM使用者連線錯誤,提示:ora-01033錯誤。

11、綜述

       8、9、10中關於出現的錯誤的描述,不完全正確,但是可以概括為NOMOUNT階段連線不上出現的錯誤大多為ora-12528錯誤,MOUNT階段連線不上出現的錯誤大多為ora-01033錯誤,這個基本上可以確定。這兩個錯誤,估計原因為NOMOUNT階段,監聽服務狀態還在BLOCKED,所以出現的是ORA-12528錯誤,到了MOUNT階段,MOUNT成功之後1分鐘左右,監聽服務狀態改為READY,但是由於資料庫還沒有開啟,所以導致出現的錯誤時ORA-01033錯誤。   

        可以看出,在不同階段,可以連線的使用者不同,這個是肯定的,在本機上IPC連線,SYS全部連線。在遠端連線上,連線方式的不同,可以導致不同使用者出現不同的錯誤,根據出現的錯誤,基本可以判斷出,主機資料庫現在處於何種狀態。


這裡再補充一句,這些內容的前提是主機資料庫使用的是動態監聽註冊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606200/viewspace-745700/,如需轉載,請註明出處,否則將追究法律責任。

相關文章