程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle啟動模式及其出現的問題探討

Oracle啟動模式及其出現的問題探討

編輯:Oracle數據庫基礎

當我們發出startup命令時,Oracle將開始啟動,如果成功啟動的話,這個實例啟動的過程分為3個階段。

1.Oracle啟動模式的nomount階段

nomount,在這個啟動階段裡,Oracle主要做的事情,就是找到相關的啟動參數文件,並且打開啟動參數文件,根據啟動參數裡記錄的參數值。

啟動實例,並且啟動成功的話,打開告警文件alert_.ora文件,這個文件默認在ORACLE_BASE/admin/SID /bdump下,並且記錄相關的啟動信息。如果在startup裡指定了pfile=''的話,Oracle將從你指定的文件作為啟動參數文件,如果是沒有指定pfile的話,Oracle會先去默認目錄($Oracle_HOME/)下找spfileSID.ora,如果沒有找到,則找 spfile.ora,如果還是沒有,找initSID.ora,這個就是以前的靜態參數文件了,如果沒有則找init.ora;如果沒有找到的話,這時候,啟動就會有,找不到參數文件的錯誤,同時會動態注冊實例名到監聽服務裡。

當然,在使用startup pfile=''前,我們需要先用create pfile from spfile;把實例的動態參數文件先export成靜態的文本參數文件,然後根據合適的參數修改這個文件,修改好了一個在用這個pfile啟動。

2.Oracle啟動模式的mount階段

當達到了nomount階段以後,數據庫就只能一步一步的來進行啟動了,他的下一個啟動的階段,就是mount。我們通過alter database mount;來從nomount階段或者通過startup mount來到達這個階段,到達這個階段,Oracle從啟動參數文件裡找到控制文件的路徑參數值,找到所有的控制文件,然後打開讀取控制文件的信息,控制文件裡記錄了各種表空間文件,日志文件的信息,以及數據庫的字符集,其實就是控制文件裡的記錄(控制文件是可以指定多個的,只要有個一個不能成功讀取,這個階段將會失敗),這時,數據庫已經讀取了相關系統文件的信息,也讀取了字符集信息,但是僅僅只是讀取,這些系統文件,並沒有真正的加載到數據庫裡。

曾經有人啟動到mount的時候,出現問題,最後一看原來是control文件這裡已經被刪除掉了,解決的辦法,就是從備份的控制文件來一個過來,然後做恢復就可以了。如果沒有備份,在nomount下,新建一個controlfile,就可以了。

3.Oracle啟動模式的open階段

mount階段結束後,數據庫體系的所有信息已經讀取全了,我們知道了redo文件,數據文件的信息,但是還沒有加載,到open狀態,數據庫讀取所有的文件,如果有一個文件不能成功讀取,open階段就會失敗。這時候,我們能夠解決的就是通過錯誤的提示,進行數據恢復,或者錯誤排查。

這一個階段的錯誤的各種原因最多,處理起來的方式也相對於前面的要復雜的多,不過基本上都是和數據文件,日志文件缺失,數據scn不一致,等等有關,這時我們需要做的就是根據錯誤的提示來進行相應的數據恢復,和數據排查,這塊是數據庫恢復最有趣的地方。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved