Oracle 數據庫啓動過程

  一 啓動數據庫數據庫

  Oracle啓動過程涉及幾種模式,這些模式涉及不一樣的文件,每一個狀態下數據庫作不一樣的事情,同時這些模式適用於不一樣的維護需求,主要的模式有三種:NOMOUNT、MOUNT、OPEN。安全

  

  1 NOMOUNT:啓動數據庫實例, 此時讀取參數文件,可是不加載數據庫;測試

  2 MOUNT:啓動數據庫實例,加載數據庫,可是數據庫處於關閉狀態;spa

  3 OPEN: 啓動數據庫實例,加載並打開數據庫;3d

  4 FORCE: 終止實例並重啓數據庫,這種模式在數據庫關閉或者啓動遇到問題時使用,這種方式不到萬不得已時不要使用,會有數據丟失;日誌

 

  1 NOMOUNTblog

  這種模式只會建立實例(建立Oracle實例的各類內存結構與服務進程,其中有5個進程必須啓動, DBWR、LGWR、SMON、PMON、CKPT),並不加載數據庫,也不會打開任何數據文件。進程

  先關閉數據庫事務

  

  startup nomount內存

  

  數據庫的啓動過程記錄在警告追蹤文件中,該警告追蹤文件中包括數據庫啓動信息,它存放在參數BACKGOUND_DUMP_DEST定義的目錄下,警告日誌的名字爲alert_orcl.log

  

  進入到目錄查看警告日誌關於startup nomount過程記錄

  

  測試在nomount狀態時數據字典是否打的開,下圖說明數據庫字典在nomount狀態下是沒法訪問的,由於數據字典須要從控制文件獲取文件的信息,而此時控制文件沒有打開因此沒法查看。

  

  可是在nomount下能夠經過參數文件得到控制文件的位置,由於此時參數文件已經打開

  

  

  2 MOUNT

  這種模式將啓動實例,加載數據庫並保持數據庫關閉狀態。數據庫啓動到MOUNT狀態有兩種方式,一是能夠直接啓動數據庫到MOUNT,二是若是數據庫已經啓動到NOMOUNT狀態,使用alter database mount把數據庫切換到MOUNT狀態;

  alert database mount

  

  startup mount

  

  此時咱們能夠查看數據字典,由於控制文件已經打開

  

  可是此時咱們不能訪問數據庫的數據文件(表,視圖),文件此時數據文件沒有打開。

  

  

  3 OPEN

  這種模式將啓動實例,加載並打開數據庫,這是常規的啓動模式,用戶想要對數據庫進行多種操做就必須使用OPEN模式啓動數據庫,啓動到OPEN狀態,有兩種方式,一是直接啓動到OPEN狀態(使用startup或者startup open),二是若是數據庫處於NOMOUNT或者MOUNT狀態,能夠經過alter database open切換到OPEN狀態。

  

  此時能夠訪問數據文件了。

  

  

  4 FORCE

  這種模式將終止實例並重啓數據庫,這是一種強制性啓動模式,只有在啓動或者關閉出現問題時才使用,而且有必定的風險,會丟失數據,形成意外的問題。

  

  

  二 關閉數據庫

  與啓動數據庫順序相反,也分三個步驟:關閉數據庫(CLOSE 關閉數據文件),卸載數據庫(關閉控制文件 DISMOUNT),關閉Oracle實例(SHUTDOWN)。同時關閉模式也有多種常見的有:

  1 NORMAL

  正常的關閉方式,若是對於關閉數據庫的時間沒有限制,一般採用這種方式,以NORMAL方式關閉數據庫,Oracle將執行以下操做:

  A 阻止任何用戶創建新的鏈接;

  B 等待當前全部正在鏈接的用戶主動斷開鏈接;

  C 當前全部用戶的都斷開鏈接後,將當即關閉數據庫;

 

  2 TRANSACTION

  事務關閉方式,它的首要任務是保證當前全部活動的事務均可以被提交,並在儘量短的時間內關閉數據庫。以事務方式關閉,Oracle將執行以下操做:

  A 阻止用戶創建新鏈接和開始新事務;

  B 等待全部活動事務提交後,再斷開用戶鏈接;

  C 當全部活動事務提交完畢,用戶斷開鏈接後,關閉數據庫;

 

  3 IMMEDIATE

  當即關閉方式,能夠較快且安全的關閉數據庫,是DBA常常採用的關閉數據庫的方式,當即關閉方式,Oracle執行以下操做:

  A 阻止用戶創建新的鏈接和開始新的事務;

  B 中斷當前事務,回滾未提交事務;

  C 強制斷開全部用戶鏈接和執行檢查點把髒數據寫到數據文件中;

  D 關閉數據庫

相關文章
相關標籤/搜索