oracle資料庫啟動過程大揭祕

賀子_DBA時代發表於2014-05-12
    五一期間,拜讀了《Oracle Database 9i/10g/11g程式設計藝術》,突然對oracle資料庫啟動過程有了清晰的瞭解,現通過實驗對其啟動過程進行大揭祕。
一、oracle資料庫啟動概述及部分知識儲備
     很多人都知道,oracle資料庫具有四種狀態,啟動過程具有三個階段。四種狀態分別shutdown、nomount、mount、open,對應三個階段分別為shutdown至nomount,nomount至mount,mount至open。
     ps命令:常用來檢視系統執行了哪些程式。
     ipcs:報告程式間通訊設施狀態。會報告指出使用了共享記憶體和訊號量。
二、oracle資料庫啟動詳解
2.1 shutdown狀態
     檢視程式和通訊設施狀態:

2.2 shutdown至nomount階段
資料庫狀態如下圖:

檢視系統程式和通訊設施狀態:

由smon、pmon等程式可以看出此階段例項已經啟動,並首次報告使用了共享記憶體和訊號量。因此此階段完成了以下任務:
1、讀取引數檔案,並指定控制檔案和資料庫例項名
2、分配SGA
3、啟動後臺程式
4、開啟告警檔案和跟蹤檔案
注意:讀取引數檔案順序為:spfile(sid).ora,init(sid).ora,init.ora
2.3 nomount至mount狀態
資料庫狀態圖如下:

可以看出資料庫狀態已變成mount了,可以查詢控制檔案、資料檔案、重做日誌檔案了。表明此階段,開啟了控制檔案,將資料庫與開啟的例項相關聯,同時讀取了資料檔案和重做日誌檔案的名稱和狀態。但此時還不能查詢使用者表的內容。如圖:

2.3 mount至open狀態
資料庫狀態資訊:


    由實驗可以看出此階段開啟了資料庫,通過控制檔案開啟了資料檔案和重做日誌檔案。
三、總結
    由oracle資料庫啟動過程來看,例項其實就是諸如smon、pmon、ckpt、dbwn、lgwr等程式以及這些程式需要的共享記憶體集合,具有生命週期。資料庫就是物理檔案(控制檔案、資料檔案、重做日誌檔案、引數檔案等)的組合。一個例項只能載入一個資料庫。在rac中,一個資料庫可以被多個例項連線。所以例項和資料庫還是有區別的。

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

相關文章