Oracle學習筆記—oracle體系架構及狀態(nomount、mount和open)簡介
oracle體系架構簡介
先來簡要了解一下Oracle數據庫體系架構以便於後面深入理解,Oracle Server主要由實例(instance)和數據庫(database)組成。實例(instance)由共享內存(SGA)和後臺進程系統組成,數據庫(database)是存儲在磁盤上的一系列物理文件。
SGA主要由Share Pool(共享池,又分Library Cache和Data Dictionary Cache,前者臨時存儲最近執行過的語句代碼等,後者臨時存儲數據位置、表定義及用戶權限等)、Database Buffer Cache(數據緩沖區,臨時存儲讀過的數據塊)、Redo Log Buffer
後臺進程是數據庫和操作系統進行交互的通道,後臺進程的命名由ORACLE_SID決定,ORACLE根據ORACLE_SID來尋找參數文件啟動實例。是Oracle數據庫為保持最佳性能和協調多用戶請求而設置的,主要有DBWR(將Database Buffer Cache數據寫入Data Files)、LGWR(將Redo Log Buffer數據寫入Redo Log Files)、CKPT
數據庫(database
oracle啟動狀態
Oracle啟動分3個過程nomount、mount和open,這三個過程具體執行的工作如下:
- NOMOUNT狀態: SGA和後臺進程已經啟動
- MOUNT狀態: 通過參數讀取了控制文件 ,擁有sysdba權限的可以進行一些數據的備份和恢復操作,其他用戶還不能訪問
- OPEN狀態; 其他用戶正常訪問
NOMOUNT狀態
創建數據庫實例 首先從spfile或者pfile中讀取數據庫參數文件,然後分配SGA和創建後臺進程。 相當於生產線和工人都到位了,但是沒有開始生產,生產線上沒有產品。MOUNT狀態
建立數據庫和實例的關系。 首先根據初始化參數文件中的CONTROL_FILE參數找到相應的控制文件然後打開它們,在控制文件中包含了數據庫的數據文件和redo log文件信息。 這個時候數據庫還沒有打開,仍然處於關閉狀態,這個時候普通的用戶還不能連接到數據庫,只有數據庫管理員可以進行一些備份恢復等工作。OPEN狀態
打開數據庫。
通過控制文件信息找到聯機數據文件和redo log 文件,如果沒有以上兩個文件,數據庫就會報錯。如果這兩個文件壞了,數據庫無法打開,這個時候可以通過sysdba權限進入mount掛載狀態後,對這兩個數據文件進行恢復操作後再打開數據庫。
參考:
Oracle數據庫啟動過程及狀態詳解(nomount、mount和open)
oracle啟動的四個狀態
Oracle學習筆記—oracle體系架構及狀態(nomount、mount和open)簡介