標籤:oracle startup shutdown
在Oracle下啟動與關閉大致都是由3個步驟完成,在啟動時分別是:啟動執行個體、載入資料庫、開啟資料庫;關閉時分別是:關閉資料庫、卸載資料庫、關閉Oracle執行個體。所以在Oracle因為這種嚴謹的風格,使得在平時可以根據不同的情況根據需要,以不同的模式啟動和關閉資料庫。在這裡就簡要的說一說Oracle下的啟動與關閉,在Oracle下啟動與關閉部分需要使用sysdba的身份來執行,最好是伺服器上通過系統身分識別驗證的方式操作,如下Unix環境中:
[[email protected] ~]$ sqlplus / as sysdba
首先,先來說一下Oracle中的啟動,啟動時所使用的參數如下:
STARTUP [nomount|mount|open|force|resetrict] [prife=filename]
Oracle在預設是會讀取運行使用者的家目錄下的初始設定檔案,所以如果使用prfile參數就是指定Oracle預設讀取的初始設定檔案,這個在以前有提過,在這裡就不做過多的說明,需要可以參看:http://blog.51cto.com/jim123/2053015
在啟動中有以下幾種模式啟動:
NOMOUNT 模式:表示啟動執行個體並不載入資料庫。在這種模式下表示啟動Oracle的記憶體結構和服務進程,期間並不載入資料庫也不開啟資料檔案,注意該模式需要有sysdba身份許可權,該模式通常用於建立新資料庫或重建控制檔案時使用
SQL> startup nomountORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytes
MOUNT 模式:表示啟動執行個體、載入資料庫並保持資料庫的關閉狀態。在這種模式常常在進行資料維護時使用,如資料的恢複、更改資料庫的歸檔、資料庫的系統配置修改等等
SQL> startup mountORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.
OPEN 模式:啟動執行個體、載入並開啟資料庫。平時最常用的模式,要讓Oracle所有使用者正常使用而必須使用的模式,預設使用startup不帶任何參數就是使用該模式,也可以使用open在其他模式下啟動相應的功能
SQL> startupORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.Database opened.
FORCE 模式:表示強制重啟資料庫,改模式具有一定的強制性,一般在其他模式已失效的情況下啟動
SQL> startupORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.Database opened.SQL> startup forceORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.Database opened.
RESETRICT 模式:表示啟動資料庫執行個體到限制模式,此時只有管理員和具有restricted session許可權的使用者可以登入資料庫,一般用於普通戶內部資料維護時使用
SQL> startup restrictORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.Database opened.
在Oracle中有啟動就用關閉,下面就來說一說Oracle中的關閉,關閉時所使用的參數如下:
SHUTDOWN [normal|transactional|immediate|abort]
NORMAL 方式:正常的關閉方式,期間阻止任何新的串連、等待當前所有使用者的session主動斷開,等所有使用者的session斷開後關閉資料庫,做一個檢查點並關閉資料檔案,重新啟動時不需要執行個體恢複
SQL> shutdown normalDatabase closed.Database dismounted.ORACLE instance shut down.
TRANSACTIONAL 方式:事務關閉方式,期間阻止任何新的串連、不等待所有使用者的session斷開,等所有使用者的事務提交結束後,做一個檢查點並關閉資料檔案,重新啟動時不需要執行個體恢複
SQL> shutdown transactionalDatabase closed.Database dismounted.ORACLE instance shut down.
IMMEDIATE 方式:顧名思義立即關閉,這種方式下能儘可能短的關閉資料庫,期間阻止任何新的串連、不等待所有使用者的session斷開,不等所有使用者的事務提交結束,未結束的事務rollback復原,做一個檢查點並關閉資料檔案,重新啟動時不需要執行個體恢複
SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.
ABORT 方式:終止關閉方式,期間阻止任何新的串連、不等待所有使用者的session斷開,不等所有使用者的事務提交結束,不做檢查點且沒有關閉資料檔案,啟動時自動進行執行個體恢複,該方式具有一定的破壞性,有可能會丟失部分資料,在平時應該盡量避免使用
SQL> shutdown abortORACLE instance shut down.
在這裡需要注意的是如果是使用ABORT 方式關閉資料庫時,雖然說下一次重啟時會自動進行執行個體恢複,但是不能保障在重啟的期間出現其他問題所以如果使用ABORT 方式關閉資料庫後建議再用MOUNT模式啟動後再用IMMEDIATE方式關閉資料庫用來修複資料庫,如下
SQL> shutdown abortORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 4275781632 bytesFixed Size 2260088 bytesVariable Size 905970568 bytesDatabase Buffers 3355443200 bytesRedo Buffers 12107776 bytesDatabase mounted.SQL> shutdown immediateORA-01109: database not openDatabase dismounted.ORACLE instance shut down.
Oracle下啟動與關閉