Oracle 資料庫例項的啟動階段及關閉模式
阿新 • • 發佈:2019-01-05
一、資料庫例項啟動的三個階段
啟動資料庫分為三個階段:
Startup nomount; --startup預設為startup open
Alter database mount;
Alter database open;
可以通過select status from v$instance;來檢視例項啟動到哪個狀態。
select * from v$database;
另外特別的:startup force
等同於 shutdown abort+startup open
二、資料庫例項關閉的四種模式
shutdown immediate
三、開啟資料庫後,如果有以下項丟失,資料庫會失敗:
• 任何控制檔案
• 屬於系統表空間或還原表空間的資料檔案
• 整個重做日誌組(只要組中至少有一個成員可用,例項就會保持開啟狀態。)
abort等同於停電,且在下次正常啟動恢復之前,不允許在mount狀態下修改引數,例如歸檔、閃回,檢查點是為了保證資料一致性,寫入資料檔案。
四、linux下dbstart,dbshut啟動關閉資料庫
參考文獻:
第一階段:Nomount |
條件: |
引數檔案存在 |
引數檔案中描述的目錄存在(adump,bdump,cdump,udump) |
作用: |
修改引數檔案 |
檢視部分v$資料字典 |
建立資料庫(後自動open) |
建立控制檔案(後自動mount) |
資料庫:(載入了例項) |
載入了引數檔案 |
申請了記憶體(SGA) |
啟動了後臺程序 |
命令: |
startup nomount |
alter database mount; |
第二階段:Mount |
條件: |
控制檔案存在且已同步 |
並且必須是好的(名字一致,個數一致,路徑一致,scn號一致) |
作用: |
修改引數 |
檢視所有v$資料字典 |
把資料檔案離線 |
備份、恢復 |
修改資料庫的歸檔模式 |
把.dbf .log檔案搬家 |
資料庫: |
載入了控制檔案 |
載入了所有的v$資料字典 |
命令: |
Startup mount |
alter database open; |
alter database open read only; |
第三階段:Open |
條件: |
資料檔案存在且已同步 |
日誌檔案存在 |
作用: |
修改引數 |
可以查所有字典 |
把資料檔案離線 |
把表空間離線 |
操作資料(表,檢視) |
資料庫: |
申請了記憶體 |
啟動了後臺程序 |
載入了引數檔案 |
載入了控制檔案 |
根據控制檔案的描述,載入相應的資料檔案,和日誌檔案 |
載入了所有的字典 |
命令: |
startup open |
normal | transactional | immediate | abort | |
允許新連線 | 0 | 0 | 0 | 0 |
等待會話結束 | 1 | 0 | 0 | 0 |
等待事務結束 | 1 | 1 | 0 | 0 |
檢查點並關閉檔案 | 1 | 1 | 1 | 0 |
做一個檢查點, 關閉資料檔案, 啟動時不需要例項恢復 |
做一個檢查點, 關閉資料檔案, 啟動時不需要例項恢復 |
做一個檢查點, 關閉資料檔案, 啟動時不需要例項恢復 |
不做檢查點, 不關閉資料檔案, 啟動時自動進行例項恢復(mount->open) |