當前位置:
首頁 > 最新 > Oracle資料庫的三種啟動模式和資料庫文件

Oracle資料庫的三種啟動模式和資料庫文件

閱讀文本大概需要 好幾分鐘,建議先收藏,以備不時之需。

Oracle Server 是由實例(instance)和資料庫(database)組成。

實例(instance)是由共享內存(SGA)和後台進程組成。

如圖:

資料庫(dababase)是存儲在磁碟的一系列文件。SGA主要由Share Pool(共享池,又分Library Cache和Data Dictionary Cache,前者臨時存儲最近執行過的語句代碼等,後者臨時存儲數據位置、表定義及用戶許可權等)

Database Buffer Cache(數據緩衝區,臨時存儲讀過的數據塊)、Redo Log Buffer(重做日誌緩衝區,臨時存儲資料庫修改操作)、Large Pool(大池,分擔Share Pool部

分工作供共享伺服器進程使用,如備份恢復、大型I/O操作、並行查詢等)和Java Pool(Java池,分析Java語句)。

後台進程是資料庫和操作系統進行交互的通道,後台進程的命名由ORACLE_SID決定,ORACLE根據ORACLE_SID來尋找參數文件啟動實

例。是Oracle資料庫為保持最佳性能和協調多用戶請求而設置的,主要有DBWR(將Database Buffer Cache數據寫入Data Files)、LGWR(將Redo Log Buffer數據寫入Redo Log Files)、

CKPT(協調數據文件、控制文件和重做日誌,將System Change Number即SCN寫入到控制文件和數據文件頭部,促使DBWR、LGWR執行)、SMON(System Monitor,3方面作用:instance recovery實例故障數據恢復、合併空閑碎片空間、回收臨時段)、PMON(用戶常式意外終止時處理事務,如回退事務、釋放鎖及其他資源等)、ARCH(將Redo Log Files寫入Archive Log Files)、CJQ0(job queue coordinator)、RVWR(recover writer,為flashback database提供日誌記錄)等進程。

資料庫(database)是指存儲在磁碟上的一組物理文件,如數據文件(Data files,用於存儲數據)、控制文件(Control files,存儲數據文件、重做日誌文件、歸檔日誌文件位置及維護資料庫完整性所需信息)和重做日誌文件(Redo Log files,存儲修改數據的所有操作記錄以備故障後恢復),這三個是啟動資料庫必須的文件;

另外還有參數文件(Parameter file,設置內存後台進程的啟動等)、歸檔日誌文件(Archived Log files,歸檔記錄寫滿的重做日誌文件的內容)和口令文件(Password file,驗證用戶名密碼),這三個是非必須的文件。

資料庫啟動三種方式解析

資料庫啟動的三種方式(三個階段):

nomount : 需要參數文件

mount : 需要控制文件

open:需要全部的數據文件和日誌文件,並且保證所有的數據文件和日誌文件與控制文件裡面記錄的位置保持一致。

一般的啟動順序是:nomount-->mount-->open

1

nomount狀態

①啟動實例。

Reading the initialization file from $ORACLE_HOME/dbs in the following order:

②從環境變數下dbs目錄按如下順序讀取初始化文件:

-first spfileSID.ora

③首先,讀取spfile+實例名.ora

-if not found then, spfile.ora

④若未發現文件則讀取spfile.ora

-if not found then, initSID.ora

⑤若未發現文件則讀取init+實例名.ora

Specifying the PFILE parameter with STARTUP overrides the default behavior.

⑥指定pfile參數文件啟動以替代默認啟動方式

* Allocating the SGA

⑦分配SGA

* Starting the background processes

⑧啟動後台進程

* Opening the alertSID.log file and the trace files

啟動預警日誌文件(記錄實例生命周期內事件,如系統內部錯誤、數據塊損壞、系統參數修改等)和追蹤文件(記錄SQL操作及時間消耗等)

The database must be named with the DB_NAME parameter either in the initialization Parameter file or in the STARTUP command.

資料庫必須用初始參數文件或啟動命令中的DB_NAME參數命名。

2

mount狀態

① 關聯實例與資料庫,讀取控制文件並獲取數據文件和重做日誌文件名稱狀態。

Mounting a database includes the following tasks:

② 裝載資料庫包括以下任務:

* Associating a database with a previously started instance

將先前啟動的實例與資料庫相關聯

* Locating and opening the control files specified in the parameter file

③ 從參數文件中找到控制文件位置並打開

* Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time.

從控制文件中讀取數據文件及重做日誌文件名稱與狀態,但是,此時並不檢查數據文件與重做日誌文件的存在性。

3

open狀態

opening the database includes the following tasks:

打開資料庫包含以下任務:

① opening the online data log files

打開數據文件

② opening the onling redo log files

打開重做日誌文件

③If any of the datafiles or noline redo log files are not present when you attempt to open the database ,the oracle server returns an error.

若在打開資料庫時數據文件或重做日誌文件任何一個不存在,則Oracle伺服器返回一個錯誤。

④ During this final stage,the oracle server verfies that all the data files and online redo log files can be opened and checks the consistency of the database. If necessary,the SMON background process initiates instance recovery.

在最後階段,Oracle資料庫驗證數據文件和重做日誌文件可否打開並檢驗資料庫的一致性,若不一致,SMON後台進程將啟動實例恢復。

啟動和關閉資料庫的參數介紹

shutdown有四個參數:normal、transactional、immediate、abort,不帶參數默認為normal。

shutdown normal:不斷開現在連接用戶,阻止任何用戶建立新的連接,包括管理員在內。已經連接的用戶能夠繼續他們當前的工作,如遞交新的更新事務,直到此用戶自行斷開連接。這樣需要等待的時間長,可以查出現連用戶,再通知其自行斷開。所有的用戶都斷開連接,資料庫才進行關閉操作,即關閉資料庫、卸載資料庫、終止常式。在這種情況下關閉的資料庫在重新啟動後,不會出現問題。啟動時不需要實例恢復。

shutdown transactional:阻止任何用戶建立新連接,等待所有當前連接用戶的未遞交的活動事務提交完畢,然後立即斷開用戶的連接。所有的用戶都斷開連接則立即關閉資料庫,進行關閉資料庫、卸載資料庫、終止進程等操作。這種方式,用戶有可能正在算賬,做複雜報表!一次資料庫操作做不完的,在剛做了一次資料庫操作後,將被斷開,這樣對用戶有一定影響,啟動時不需要實例恢復。

shutdown immediate:阻止任何用戶新的連接,同時限制當前連接用戶開始新的事務。如果已連接用戶有未完成的事務,則資料庫系統不會等待他們完成,而是直接把當前未遞交的事務回退。資料庫系統不再等待用戶主動斷開連接,當未遞交的事務回退成功後,系統會直接關閉、卸載資料庫,並終止資料庫進程,啟動時不需要實例恢復。

shutdown abort:當資料庫出現故障時,可能以上三種方式都無法正常關閉資料庫,則使用這種方法。強制結束當前正在執行的SQL語句,任何未遞交的事務都不被回退!這種方法基本上不會對控制文件或者參數文件造成破壞,這比強制關機要好一點(在無法正常關閉資料庫的時候),啟動時自動進行實例恢復。

startup有7個參數:nomount、mount、open、pfile、force、restrict和

startup nomount:通過參數文件,分配sga,啟動資料庫後台進程,不打開控制文件和數據文件,不能訪問資料庫。

startup mount:僅給dba進行管理操作,不允許資料庫用戶訪問。僅當前實例的控制文件被打開,數據文件未打開,在這個模式下可以進行如下操作:重命名數據文件、添加取消或重命名重做日誌文件、設置歸檔模式、設置閃回、執行完整的資料庫恢復操作等。

startup open:startup的默認參數就是open,打開資料庫,允許資料庫的訪問,當前實例控制文件中所描述的所有文件都已經打開。

startup pfile=FILENAME:以FILENAME為初始化文件啟動資料庫,不是採用默認初始化文件。

startup force:中止當前資料庫的運行,並開始重新正常的啟動資料庫。

startup restrict:只允許具有restricted session許可權的用戶訪問資料庫,該模式下登陸者可做如下操作:執行資料庫數據的導出或導入、執行數據裝載操作用SQL*Loader、暫時阻止一般的用戶使用數據、在某個移植過程和升級操作過程中restricted session登陸後可使用ALTER SYSTEM 語句來禁止RESTRICTED SESSION特性ALTER SYSTEM DISABLE RESTRICTED SESSION;如果是在非受限模式下打開的資料庫,後來發現需要限制訪問,此時可以使用帶ENABLE RESTRICTED SESSION 子句的ALTER SYSTEM 語句來完成。

查看資料庫文件,配置,狀態

下面介紹一下如何查看資料庫相關的配置,狀態等

看當前資料庫的狀態:select status from V$instance;

查看參數文件的位置:show parameter spfile;

查看控制文件的位置:show parameter control;

查看數據文件的位置:select file_name from dba_data_files;

IT充電空間

關注這個號的你,可以說很優秀了

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT充電空間 的精彩文章:

TAG:IT充電空間 |