- Oracle DBA基礎(chǔ)教程
- 林樹(shù)澤
- 1563字
- 2021-03-26 13:21:38
2.2 Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
為了滿足生產(chǎn)數(shù)據(jù)庫(kù)的需求,Oracle設(shè)計(jì)了如圖2-1所示的體系結(jié)構(gòu),該體系結(jié)構(gòu)包括實(shí)例(Instance)、數(shù)據(jù)庫(kù)文件、用戶進(jìn)程(User process)、服務(wù)器進(jìn)程(Server process)以及其他文件,如參數(shù)文件(Parameter file)、密碼文件(Password file)和歸檔日志文件(Archived log file)等。

圖2-1 Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)
其中,數(shù)據(jù)庫(kù)實(shí)例包括SGA(系統(tǒng)全局區(qū))和一系列后臺(tái)管理、監(jiān)視進(jìn)程,數(shù)據(jù)庫(kù)包括三種文件:數(shù)據(jù)文件(Data files)、控制文件(Control files)和重做日志文件(Redo log files)。數(shù)據(jù)庫(kù)實(shí)例和數(shù)據(jù)庫(kù)是Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)的核心部分,DBA很重要的工作就是維護(hù)實(shí)例和數(shù)據(jù)庫(kù)本身的正常運(yùn)行。
本節(jié)將依次介紹數(shù)據(jù)庫(kù)服務(wù)器(包括實(shí)例和數(shù)據(jù)庫(kù))和實(shí)例、數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)、密碼文件和參數(shù)文件以及歸檔日志文件。
2.2.1 Oracle服務(wù)器和實(shí)例
Oracle服務(wù)器和實(shí)例是非常重要的兩個(gè)概念,這里的服務(wù)器不僅僅是物理概念,還包括系統(tǒng)進(jìn)程,而實(shí)例則是DBA經(jīng)常維護(hù)的對(duì)象。下面依次介紹實(shí)例和服務(wù)器。
1.Oracle實(shí)例(instance)
Oracle實(shí)例就是由一些內(nèi)存區(qū)和后臺(tái)進(jìn)程組成。實(shí)例的組成如圖2-2所示,從實(shí)例的組成圖可以看出實(shí)例由SGA和一些后臺(tái)進(jìn)程組成,這些內(nèi)存區(qū)包括數(shù)據(jù)庫(kù)高速緩存、重做日志緩存、共享池、流池以及其他可選內(nèi)存區(qū)(如Java 池),這些池也稱為數(shù)據(jù)庫(kù)的內(nèi)存結(jié)構(gòu),我們?cè)?.4節(jié)會(huì)詳細(xì)介紹。后臺(tái)進(jìn)程包括系統(tǒng)監(jiān)控進(jìn)程(SMON)、進(jìn)程監(jiān)控(PMON)、數(shù)據(jù)庫(kù)寫(xiě)進(jìn)程(DBWR)、日志寫(xiě)進(jìn)程(LGWR)、檢驗(yàn)點(diǎn)進(jìn)程(CKPT)、其他進(jìn)程(SMON)(如歸檔進(jìn)程、RECo進(jìn)程等),這些數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)程忠于職守、相互協(xié)作完成數(shù)據(jù)管理任務(wù)。

圖2-2 Oracle實(shí)例(Instance)組成圖
要訪問(wèn)數(shù)據(jù)庫(kù)必須先啟動(dòng)實(shí)例,實(shí)例啟動(dòng)時(shí),先分配內(nèi)存區(qū),然后再啟動(dòng)后臺(tái)進(jìn)程,后臺(tái)進(jìn)程執(zhí)行庫(kù)數(shù)據(jù)的輸入、輸出以及監(jiān)控其他Oracle進(jìn)程。在數(shù)據(jù)庫(kù)啟動(dòng)過(guò)程中有5個(gè)進(jìn)程是必須啟動(dòng)的,分別是系統(tǒng)監(jiān)控進(jìn)程(SMON)、進(jìn)程監(jiān)控(PMON)、數(shù)據(jù)庫(kù)寫(xiě)進(jìn)程(DBWR)、日志寫(xiě)進(jìn)程(LGWR)和檢驗(yàn)點(diǎn)進(jìn)程(CKPT),否則實(shí)例無(wú)法創(chuàng)建。數(shù)據(jù)庫(kù)啟動(dòng)過(guò)程中,我們可以在告警日志(alertSID.ora)中看到詳細(xì)的過(guò)程,在后面章節(jié)會(huì)詳細(xì)介紹。
注意
在實(shí)踐中,為了方便通過(guò)數(shù)據(jù)庫(kù)工具實(shí)現(xiàn)數(shù)據(jù)庫(kù)在計(jì)算機(jī)重啟時(shí)自動(dòng)啟動(dòng),如果用戶安裝了其他占用大量?jī)?nèi)存的應(yīng)用軟件,可能會(huì)造成數(shù)據(jù)庫(kù)啟動(dòng)失敗,此時(shí)往往是因?yàn)閮?nèi)存不足,操作系統(tǒng)無(wú)法為Oracle分配SGA,必需的5個(gè)進(jìn)程也無(wú)法啟動(dòng)。
2.Oracle服務(wù)器(server)
Oracle服務(wù)器由數(shù)據(jù)庫(kù)實(shí)例和數(shù)據(jù)庫(kù)文件組成,它就是我們經(jīng)常說(shuō)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。數(shù)據(jù)庫(kù)服務(wù)器的組成如圖2-3所示。

圖2-3 Oracle服務(wù)器的組成
數(shù)據(jù)庫(kù)服務(wù)器除了維護(hù)實(shí)例和數(shù)據(jù)庫(kù)文件外,還在用戶建立與服務(wù)器的連接時(shí)啟動(dòng)服務(wù)器進(jìn)程并分配PGA(程序全局區(qū),在2.4.5節(jié)詳解)。
2.2.2 Oracle數(shù)據(jù)庫(kù)物理結(jié)構(gòu)(文件組成)
我們都知道,數(shù)據(jù)庫(kù)是運(yùn)行在操作系統(tǒng)之上的,數(shù)據(jù)庫(kù)的最終目的就是存儲(chǔ)和獲取相關(guān)的數(shù)據(jù),這些數(shù)據(jù)實(shí)際上存儲(chǔ)在操作系統(tǒng)文件中,這些操作系統(tǒng)文件組成Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。
Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)就是指數(shù)據(jù)庫(kù)中的一系列操作系統(tǒng)文件,Oracle數(shù)據(jù)庫(kù)由下列三類文件組成。
● 數(shù)據(jù)文件(datafiles):數(shù)據(jù)文件包含數(shù)據(jù)庫(kù)中的實(shí)際數(shù)據(jù),是數(shù)據(jù)庫(kù)操作中數(shù)據(jù)的最終存儲(chǔ)位置。
● 控制文件(controlfile):包含維護(hù)數(shù)據(jù)庫(kù)和驗(yàn)證數(shù)據(jù)庫(kù)完整性的信息,它是二進(jìn)制文件。
● 重做日志文件(redo file):重做日志文件包含數(shù)據(jù)庫(kù)發(fā)生變化的記錄,在發(fā)生故障時(shí)用于數(shù)據(jù)恢復(fù)。
2.2.3 Oracle數(shù)據(jù)庫(kù)參數(shù)文件和密碼文件
雖然參數(shù)文件和密碼文件不是Oracle的數(shù)據(jù)庫(kù)文件,但卻是Oracle數(shù)據(jù)庫(kù)不可少的兩個(gè)文件。
在參數(shù)文件(parameter file)中定義了數(shù)據(jù)庫(kù)實(shí)例的特性。在參數(shù)文件中包含為SGA中內(nèi)存結(jié)構(gòu)分配空間的參數(shù),如分配數(shù)據(jù)庫(kù)高速緩沖區(qū)的大小等,參數(shù)文件是正文文件,可以使用操作系統(tǒng)文本編輯器查看,如在Windows操作系統(tǒng)中使用記事本工具。
密碼文件(password file)授予用戶啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)實(shí)例,在剛安裝數(shù)據(jù)庫(kù)時(shí),Oracle的默認(rèn)用戶名和密碼就存儲(chǔ)在密碼文件中,Oracle可以借此判斷用戶的操作權(quán)限。
另外Oracle數(shù)據(jù)庫(kù)還有歸檔日志文件。歸檔日志文件是日志文件的脫機(jī)備份,在發(fā)生故障后,進(jìn)行數(shù)據(jù)恢復(fù)時(shí)可能使用該文件。
- Learning Python Web Penetration Testing
- Getting Started with Citrix XenApp? 7.6
- 企業(yè)級(jí)Java EE架構(gòu)設(shè)計(jì)精深實(shí)踐
- 劍指JVM:虛擬機(jī)實(shí)踐與性能調(diào)優(yōu)
- Apache Hive Essentials
- Visual C++串口通信技術(shù)詳解(第2版)
- OpenCV 4計(jì)算機(jī)視覺(jué)項(xiàng)目實(shí)戰(zhàn)(原書(shū)第2版)
- 51單片機(jī)C語(yǔ)言開(kāi)發(fā)教程
- 實(shí)戰(zhàn)Java高并發(fā)程序設(shè)計(jì)(第2版)
- Application Development with Parse using iOS SDK
- Deep Learning for Natural Language Processing
- Python計(jì)算機(jī)視覺(jué)與深度學(xué)習(xí)實(shí)戰(zhàn)
- Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程
- LabVIEW數(shù)據(jù)采集(第2版)
- Improving your Penetration Testing Skills