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

1 NOMOUNT:啟動數據庫實例, 此時讀取參數文件,但是不加載數據庫;
2 MOUNT:啟動數據庫實例,加載數據庫,但是數據庫處於關閉狀態;
3 OPEN: 啟動數據庫實例,加載並打開數據庫;
4 FORCE: 終止實例並重啟數據庫,這種模式在數據庫關閉或者啟動遇到問題時使用,這種方式不到萬不得已時不要使用,會有數據丟失;
1 NOMOUNT
這種模式只會創建實例(創建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 關閉數據庫
