談談Oracle數據庫的關閉
之前說過了Oracle數據庫的啟動,今天再來說說Oracle數據庫的關閉。
一、數據庫關閉的三個階段Oracle數據庫啟動過程包括三個步驟: NOMOUNT -> MOUNT -> OPEN,數據庫的SHUTDOWN實際也是有三個步驟:
CLOSE -> DISMOUNT - > SHUTDOWN。SQL> SHUTDOWN; Database closed.
二、數據庫關閉的四種選項
1、SHUTDOWN NORMAL
在生產環境中,這種方式幾乎無法關閉有大量用戶連接的數據庫,所以很少被采用。
這是最為常用的一種關閉數據庫的方式,使用這個命令時,當前正在被Oracle處理的事務立即中斷,未提交的事務將全部回滾,系統不等待連接到數據庫的用戶退出,強制斷開所有的連接用戶。然後執行檢查點,將變更數據全部寫回數據文件,關閉數據庫。使用這種方式關閉數據庫,下次啟動數據庫時不需要進行實例恢復,是一種安全的數據庫關閉方式。但是注意,如果數據庫系統繁忙,當前有大量事務執行,那麼使用此選項關閉數據庫也可能需要大量時間。
最不推薦采用的數據庫關閉方式,使用此選項,數據庫會立即終止所有用戶連接、中斷所有事務、關閉數據庫,使用這種方式關閉數據庫,未完成事務不會回滾,數據庫也不會執行檢查點,所以下次啟動市,數據庫必須執行實例恢復,實例恢復可能會需要大量的時間,數據庫啟動也因此可能需要等候很長時間。
ABORT方式關閉數據庫,就類似於數據庫服務器突然斷電,可能會導致不一致的情況出現,所以除非不得已,輕易不要使用這種方式關閉數據庫。
參考:談談Oracle數據庫的啟動 Remote DBA team- Oracle Database Startup & Shutdown Process