一、數據庫結構
二、Oracle 內存結構
三、進程結構
1、 用戶進程:在數據庫用戶請求連接到Oracle 服務器時啟動
2、 服務器進程:可以連接到Oracle實例,它在用戶建立會話時啟動
3、 後台進程:再啟動Oracle實例時啟動
四、Oracle實例管理
1、 系統監視器(SMON):出現故障後啟動實例時執行崩潰恢復任務
2、 進程監視器(PMON):用戶進程失敗時執行進程清理任務
3、 數據庫寫進程(DBWn):將修改後的塊從數據庫緩沖區高速緩存寫入磁盤中的數據文件
4、 檢查點(CKPT):通過更新數據庫的所有數據文件和控制文件指出最新的檢查點
5、 日志寫進程(LGWR):將重做日志條目寫入磁盤
6、 歸檔進程(ARCn):發生日志切換時將重做日志文件復制到歸檔存儲器
五、服務器進程和數據庫緩沖區高速緩存
處理某個查詢時,Oracle服務器進程會在數據庫緩沖區高速緩存中查找它所需的所有數據塊。如果未在數據庫緩存區高速緩存中找到數據塊,服務器進程會從數據文件中讀取數據塊,並在數據庫緩存區高速緩存中添加一個副本。因為關於同一數據塊的後續請求可能會在內存中找到該數據塊,因此,這些請求可能不需要進行物理讀操作。Oracle服務器使用最近用過的算法騰出最近未訪問的緩沖區,以便在數據庫緩沖區高速緩存中為新數據塊提供空間。
緩沖區高速緩存中的緩沖區可能處於一下四種狀態之一:
① 已連接:可防止多個會話同時對同一數據塊進行寫操作。此時,其他會話正等待訪問該塊。
② 干淨:緩沖區現已解除連接,如果沒有再次引用當前內容(數據塊),該緩沖區是可以立即騰出的候選項。此時,不是緩沖區的 內容已與磁盤中存儲的數據塊內容同步,就是緩沖區中包含塊的一致讀取(CR)快照。
③ 空閒或未使用:實例剛剛啟動,緩沖區為空。此狀態與“干淨”狀態非常相似,不同之處在於緩沖區尚未使用。
④ 灰數據:緩沖區不再處於已連接狀態,但是內容(數據塊)已更改,DBWn必須先將內容刷新到磁盤,才能騰出緩沖區。