說明:參考資料庫版本:10.0.2
一、命令解析
STARTUP options | upgrade_options
options為:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT ], NOMOUNT、MOUNT、OPEN為startup的三個階段,不能在命令中同時存在。其中,open_options為:READ {ONLY | WRITE [RECOVER]} | RECOVER。
upgrade_options為:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]
1、FORCE解析:強制開啟資料庫,在open之前會先執行shutdown,相當於shutdown abort; startup open。在當前執行個體正在啟動並執行情況下,如果不使用FORCE的話,startup時會報錯。FORCE可以在調試環境或非生產環境中使用,需慎用。
2、RESTRICT解析:以此模式開啟的資料庫只有擁有RESTRICTED SESSION系統許可權的使用者才能串連。開啟後,可以使用ALTER SYSTEM命令將該狀態設為disable,以關閉restricted將資料庫正常開啟。
3、PFILE=filename解析:使用指定的檔案中的參數開啟執行個體。在未使用PFILE的情況下,startup以預設參數檔案中的參數開啟。在UNIX系統中,該檔案預設為$ORACLE_HOME/dbs/init$ORACLE_SID.ora;在Windows系統中,該檔案預設為%ORACLE_HOME%\database\initSID.ora。
4、QUIET解析:使用該選項將致使執行個體在開啟過程中不顯示SGA的相關資訊
5、MOUNT dbname解析:以MOUNT方式開啟執行個體,如果未指定dbname,則開啟以參數檔案中DB_NAME參數指定的資料庫。
6、OPEN解析:以OPEN方式開啟執行個體
7、NOMOUNT解析:以NOMOUNT方式開啟執行個體
8、RECOVER解析:該選項可以引導startup在開啟執行個體之前進行完全恢複,與RECOVER DATABASE命令的功能相同。若要開啟自動回復,可將AUTORECOVERY參數值設為ON。如果redo記錄檔未在指定位置,在根據提示指定備用的記錄檔後,即使未開啟自動回復,recovery仍可繼續進行。
9、UPGRADE解析:以OPEN UPGRADE方式開啟執行個體,並且設定特定參數值,使得能夠運行upgrade指令碼。只有在第一次開啟一個新版本的資料庫時才可使用UPGRADE選項。當使用該選項時,運行upgrade指令碼可將當前安裝的資料庫版本升級為一個更新的版本。完成upgrade後,資料庫需關閉和正常重啟。
10、DOWNGRADE解析:以OPEN DOWNGRADE方式開啟執行個體,並且設定特定參數,似的能夠運行downgrade指令碼。當使用該選項時,運行downgrade指令碼可將當前安裝的資料庫版本降為一個更舊的版本。完成downgrade後,資料庫需關閉和正常重啟。
二、使用說明
1、必須以SYSOPER或SYSDBA身份串連才有許可權執行startup
2、未帶任何參數的startup相當於 STARTUP OPEN
3、STARTUP OPEN RECOVER 即使在恢複失敗的情況下,仍舊會載入並開啟執行個體
三、執行個體和資料庫的開啟
STARTUP會分三步開啟資料庫,分別為:1、Start and instance(NOMOUNT);2、Mount the database(MOUNT);3、Open the database(OPEN)
1、Start and instance
在NOMOUNT狀態下,ORACLE開啟一個執行個體,它會讀取SPFILE或者PFILE指定參數檔案中已定義好的初始參數值。進而分配 SGA 共用記憶體區並建立後台進程。可以使用RESTRICT和FORCE選項開啟執行個體。在RESTRICT模式下,只允許DBA做以下工作:
執行結構維護,如重建索引;
執行資料庫檔案的匯入匯出;
執行資料庫裝載;
臨時阻止使用者使用資料。
2、Mount the database
以MOUNT方式載入資料庫,執行個體會根據初始化參數CONTROL_FILES指定的值找到並開啟控制檔案,從控制檔案中擷取資料檔案和重做記錄檔的資訊。在此狀態下,資料庫仍舊處於關閉狀態,只允許具有資料庫系統管理權限的部分使用者對資料庫進行操作,例如:
重新命名資料檔案;
添加、撤銷或重新命名重做記錄檔;
啟動和禁止重做日誌歸檔;
執行全部的資料庫恢複。
2.1 裝載RAC
可以設定初始化參數CLUSTER_DATABASE為true,以裝載多個資料庫。預設情況下該初始化參數值為false,即將以獨佔的方式裝載資料庫。在第一個執行個體以CLUSTER_DATABASE=TRUE裝載資料庫之後,後續的執行個體也以CLUSTER_DATABASE=TRUE裝載資料庫。
2.2 裝載副本資料庫(standby database)
副本資料庫是主要資料庫的一個完全相同的副本,可以為災難繼續提供資料庫的可用性。副本資料庫永遠都處於RECOVERY模式。只能使用ALTER DATABASE命令將資料庫以standby模式裝載,在standby模式下應用主要資料庫產生的歸檔重做日誌。只能以READ ONLY開啟(OPEN)副本資料庫
2.3 裝載複製資料庫(clone database)
複製資料庫是專門用於資料表空間時間點恢複(point-in-time recovery)的資料庫副本。在執行時間點恢複時,裝載複製資料庫並將資料庫恢複到預期的時間,則將從複製資料庫匯入中繼資料(metadata)到主要資料庫、複製資料表空間中的資料檔案到主要資料庫
3、Open the database
以OPEN方式開啟資料庫,至此資料庫才算完全開啟。資料庫在開啟時開啟線上(online)資料檔案和重做記錄檔。如果資料表空間在上一次資料庫關閉時處於offline狀態,則在重新開啟資料庫時該資料表空間依舊保持offline狀態。如果有資料檔案或者重做記錄檔存在異常,則ORACLE將返回錯誤。在開啟資料庫時,執行個體會試圖擷取undo資料表空間。如果初始化參數UNDO_MANAGEMENT值為AUTO,則執行個體自動管理UNDO。初始化參數UNDO_MANAGEMENT預設值為MANUAL。如果使用資料表空間管理UNDO,則會自動管理UNDO,此為推薦模式;如果使用復原段(rollback segment)管理UNDO空間,則使用MANUAL方式管理。如果資料庫非正常關閉,並且存在分散的有疑議的事務,無論是已提交還是已復原,當你重新開啟資料庫並完全恢複時,後台進程RECO能夠自動地、立即地、永久地完成此工作。
四、樣本
1、 STARTUP
以預設參數檔案(SPFILE)開啟執行個體,裝載預設的資料庫,並開啟資料庫。
2、 STARTUP OPEN dbname
以預設參數檔案(SPFILE) 開啟執行個體,裝載資料庫dbname,並開啟資料庫。
3、 STARTUP FORCE RESTRICT MOUNT
4、 STARTUP PFILE=init_dbname.ora NOMOUNT
5、 STARTUP FORCE RESTRICT PFILE=init_dbname.ora OPEN dbname