Oracle例項的啟動和關閉

cow977發表於2011-03-18
Oracle例項啟動的三個階段:
nomount:如果指定了PFILE選項,則開啟所指定的PFILE;否則,到預設目錄中找預設的SPFILE或PFILE,並開啟找到的初始化引數檔案,啟動資料庫例項。同時,還會開啟告警日誌檔案,也就是alter.log檔案。透過startup nomount命令可以進入該階段,啟動到該階段時,可以重建控制檔案。
mount:找到初始化引數檔案裡所記錄的引數:CONTROL_FILES,根據該引數所記錄的控制檔案的路徑及名稱,找到所有的控制檔案,然後開啟所有的控制檔案。只要有一個控制檔案無法開啟,或檔案格式損壞,就不能進入該階段。獲取控制檔案中所記錄的資料檔案和聯機日誌檔案的路徑及名稱,但不會校驗這些檔案是否都存在。透過alter database mount命令從nomount階段進入該階段。啟動到該階段時,可以進行資料檔案或聯機日誌檔案的轉移、對資料庫進行還原和恢復、啟動歸檔等操作。
open:根據控制檔案裡所記錄的路徑及檔案,開啟所有的資料檔案和聯機日誌檔案。只要有一個檔案不能開啟,就不能進入該階段。例項開啟後,整個資料庫伺服器就能對外提供服務了。透過alter database open命令從mount階段進入該階段。或者在執行startup命令時,不指定具體階段,則進入open階段。
 
 
shutdown命令關閉資料庫例項,可以有4個不同選項:
abort:相當於模擬了資料庫伺服器突然斷電的情況。這時,例項所在的記憶體立即被清空,例項裡所含有的資料都還沒有來得及寫入資料檔案。如果這時有某些事務正在執行,則這些事務被立即中斷。這些被中斷的事務既沒有COMMIT也沒有ROLLBACK,處於中間狀態。
immediate:Oracle會強制中斷當前正在執行的所有事務,並ROLLBACK這些事務;ROLLBACK完畢後,強行中斷當前正處於連線狀態的使用者;將例項裡所有的資料都寫入資料檔案;將例項所佔的記憶體清空。
transactional:Oracle會等待當前正在執行的事務主動COMMIT或ROLLBACK;當所有事務都主動結束後,強行中斷當前正處於連線狀態的使用者;將例項裡所有的資料都寫入資料檔案;將例項所佔的記憶體清空。如果使用者對事務始終都不COMMIT或ROLLBACK,則例項是無法被關閉的。
normal:Oracle不僅會等當前正在執行的事務主動COMMIT或ROLLBACK,而且還會等當前正處於連線狀態的所有使用者都主動斷開連線。只要有一個使用者不主動斷開連線,例項就無法關閉。

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

相關文章