標籤:database width 建立 redo ram 其他 java load 進程
oracle體系架構簡介
先來簡要瞭解一下Oracle資料庫體系架構以便於後面深入理解,Oracle Server主要由執行個體(instance)和資料庫(database)組成。執行個體(instance)由共用記憶體(SGA)和後台進程系統組成,資料庫(database)是儲存在磁碟上的一系列物理檔案。
SGA主要由Share Pool(共用池,又分Library Cache和Data Dictionary Cache,前者臨時儲存最近執行過的語句代碼等,後者臨時儲存資料位元置、表定義及使用者權限等)、Database Buffer Cache(資料緩衝區,臨時儲存讀過的資料區塊)、Redo Log Buffer(重做日誌緩衝區,臨時儲存資料庫修改操作)、Large Pool(大池,分擔Share Pool部分工作供共用伺服器處理序使用,如備份恢複、大型I/O操作、並行查詢等)和Java Pool(Java池,分析Java語句)。
後台進程是資料庫和作業系統進行互動的通道,後台進程的命名由ORACLE_SID決定,ORACLE根據ORACLE_SID來尋找參數檔案啟動執行個體。是Oracle資料庫為保持最佳效能和協調多使用者請求而設定的,主要有DBWR(將Database Buffer Cache資料寫入Data Files)、LGWR(將Redo Log Buffer資料寫入Redo Log Files)、CKPT(協調資料檔案、控制檔案和重做日誌,將System Change Number即SCN寫入到控制檔案和資料檔案頭部,促使DBWR、LGWR執行)、SMON(System Monitor,3方面作用:instance recovery執行個體故障資料恢複、合并空閑片段空間、回收臨時段)、PMON(使用者常式意外終止時處理事務,如回退事務、釋放鎖及其他資源等)、ARCH(將Redo Log Files寫入Archive Log Files)、CJQ0(job queue coordinator)、RVWR(recover writer,為flashback database提供日誌記錄)等進程。
資料庫(database)是指儲存在磁碟上的一組物理檔案,如資料檔案(Data files,用於儲存資料)、控制檔案(Control files,儲存資料檔案、重做記錄檔、歸檔記錄檔位置及維護資料庫完整性所需資訊)和重做記錄檔(Redo Log files,儲存修改資料的所有操作記錄以備故障後恢複),這三個是啟動資料庫必須的檔案;另外還有參數檔案(Parameter file,設定記憶體後台進程的啟動等)、歸檔記錄檔(Archived Log files,歸檔記錄寫滿的重做記錄檔的內容)和口令檔案(Password file,驗證使用者名稱密碼),這三個是非必須的檔案。
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)簡介