Oracle 原理: 11g的啓動和關閉

1.Oracle 11g啓動中,讀取參數文件的順序。

9i之前,只有靜態參數文件pfile,9i開始有了動態參數文件spfile,優先使用動態參數文件。查找參數文件路徑可以在sql_plus查看: show param pfile;

11g啓動數據庫,Oracle先查找spfileSID.ora再找spfile.ora之後找initSID.ora、最後找init.ora。其中的SID是服務名,也叫Oracle系統標識符。如果這四個文件都不存在則數據庫無法正常啓動。

 

2.Oracle 11g中的四種狀態。

   Oracle由數據庫和實例組成。Oracle有四種狀態:ShutDown 狀態,數據庫關閉狀態;NoMount狀態,實例啓動狀態,先讀參數文件,分配了物理內存,啓動了後臺進程後狀態;Mount狀態,數據庫裝載完成,此狀態在nomount狀態之後還打開了控制文件,但用戶表無法讀取;Open 狀態,數據庫被打開,可以讀用戶表了。

  shutdown immediate可以把數據庫關閉,變成shutdown狀態,關閉狀態時可以執行 startup nomount 來啓動實例;可以從上圖看出,關閉數據庫的順序開啓數據庫的順序剛好相反,先關閉數據庫 再卸載數據庫 再關閉實例。

 啓動實例時,會分配好物理內存和後臺進程,由上圖可以看出,SGA在此時已經分配完畢了,SGA包含了共享池,數據緩衝區、日誌緩衝區等。而上面的例程指的就是實例,實例包含了SGA和後臺進程。此時實例已經啓動,可以查詢v$bgprocess,和v$instance 表。可以執行 alter database mount;來裝載數據庫。

裝載數據庫完後,變成mount狀態。這個過程主要裝載的是控制文件,控制文件的內容主要就是數據庫的物理結構。可以查看v$controlfile來查看控制文件信息了還可以查看v$database、v$tablespace、v$datafile;但是,此狀態並沒有裝載數據文件,也就是查詢用戶表還無法做到。alter database open 打開數據庫。打開數據庫後就可以訪問用戶表了。

數據庫啓動命令:

startup [nomount|mount|open|force] [restrict] [pfile=filename];  只寫一個startup就是直接開啓數據庫。

force 是強制的意思,startup force 不管數據庫在什麼狀態,都會強制重啓數據庫到OPEN狀態。 startup restrict 把數據庫變成open狀態,但是隻有RESTRICTED SESSION 的權限用戶纔有資格登錄。

 pfile 是靜態參數文件: create pfile=‘[地址]’ from spfile;

可以到指定的路徑打開自己的pfile。前綴orcl的參數只對orcl實例起作用,前綴爲*的參數對所有實例起作用。在這裏面,可以看見JAVA池大小,SGA大小,數據塊大小爲8192,數據庫恢復文件的位置,控制文件位置等參數信息。

數據庫關閉的方式有四種: shutdown Normal | TRANSACTIONAL | IMMEDIATE | ABORT ;

其中,normal 方式: 不允許新用戶進行連接,等待已連接的所有用戶自行斷開連接後,再關閉數據庫。

transactional 方式: 不允許新用戶進行連接,等待已連接的用戶做完自己的所有事務後,再關閉數據庫

Immediate 方式:不允許新用戶進行連接,Oracle回滾正在連接的用戶的事務,全回滾完後關閉數據庫

obort 方式: 直接收回內存和後臺進程。和直接關機一樣,此做法壞處多,不得已時不要用這個,可能會造成內存損壞。下次重啓時會Oracle會進行比較漫長的數據庫恢復。這個方式屬於數據不正常關閉。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章