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會進行比較漫長的數據庫恢復。這個方式屬于數據不正常關閉。
?
?
總結
以上是生活随笔為你收集整理的Oracle 原理: 11g的启动和关闭的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle原理:11g的体系结构
- 下一篇: Oracle 原理:高水位线、PCTFR