發(fā)揮Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)管理功能的3個(gè)方案
就現(xiàn)在而言Oracle作為***型Oracle數(shù)據(jù)庫(kù)的管理系統(tǒng),其發(fā)展快速可以說(shuō)是飛快,如何你想更好的發(fā)揮Oracle數(shù)據(jù)庫(kù)強(qiáng)大的數(shù)據(jù)管理功能的話,這以成為Oracle系統(tǒng)優(yōu)化方面一個(gè)不可忽視的問(wèn)題。
有專門(mén)文章從系統(tǒng)參數(shù)等軟件內(nèi)部挖掘其"潛力",本文嘗試從Oracle與外部環(huán)境的特定關(guān)系,即Oracle的平臺(tái)依賴性著手,主要以NT平臺(tái)為例,就Oracle的平臺(tái)依賴性的各個(gè)方面進(jìn)行描述。
1.Oracle在NT平臺(tái)下僅僅是一個(gè)多線程(Multiple Threads)操作系統(tǒng)進(jìn)程(Process)。
在NT平臺(tái)下,Oracle的每一個(gè)后臺(tái)"進(jìn)程"(如LGWR、DBWR等)和專用服務(wù)"進(jìn)程"都是Oracle進(jìn)程的一個(gè)子線程。這種多線程結(jié)構(gòu)(Muli_threaded Architecture)在NT上是非常高效的,因?yàn)樗凶泳€程都共享同一主進(jìn)程的資源。
如果你添加一個(gè)Oracle實(shí)例(Instance),才會(huì)有一個(gè)新的Oracle進(jìn)程,這個(gè)新的進(jìn)程同樣擁有。在NT平臺(tái)下,操作系統(tǒng)并不給每個(gè)Oracle線程標(biāo)志諸如LGWR、DBWR之類的名字。如果想查看有關(guān)線程信息,可以通過(guò)SQL語(yǔ)句來(lái)查詢數(shù)據(jù)字典(Data Dictionary)中的相關(guān)表(Table)和視圖(View)。
例如,查看關(guān)于DBWR線程的內(nèi)部編號(hào)信息:
- select b.name , p.spid
- from v$bgpross b , v$process p
- where b.paddr=p.addr
- and name='DBWR'
另外,Oracle的系統(tǒng)性能監(jiān)測(cè)工具也提供了一種查看線程信息的簡(jiǎn)單方法。
2.空間限制:
在NT平臺(tái)上,Oracle實(shí)例和所有連接用戶的地址空間都限制在2GB內(nèi),而在Win9x平臺(tái)上,這個(gè)限制則在3GB內(nèi)。因?yàn)閷?duì)于NT或Win9x , 一個(gè)進(jìn)程的地址空間都限制在4GB內(nèi),而對(duì)于NT平臺(tái)來(lái)說(shuō),還要預(yù)留2GB給系統(tǒng)資源,如緩沖區(qū),堆棧等,對(duì)Win9x來(lái)說(shuō),預(yù)留的空間為1GB 。NT支持兩種主要的文件系統(tǒng): FAT 和 NTFS。Oracle可以在這兩種文件系統(tǒng)下安裝,但有兩個(gè)問(wèn)題需要考慮到。
首先就是安全性。FAT文件系統(tǒng)不支持文件級(jí)安全保護(hù),每個(gè)登錄到NT服務(wù)器上的用戶都可以刪除FAT文件,而NTFS文件系統(tǒng)支持類似于Unix的文件級(jí)安全保護(hù),用戶只能存取他擁有存取權(quán)利的文件。
第二個(gè)就是文件的***限制。一個(gè)FAT文件***是4GB,而一個(gè)NTFS文件從技術(shù)上講***可達(dá)到32GB。Oracle在NT平臺(tái)下每個(gè)數(shù)據(jù)文件最多能有4百萬(wàn)個(gè)數(shù)據(jù)塊(Data Block),如果按每個(gè)塊8KB大小計(jì)算,那么一個(gè)數(shù)據(jù)文件就有32GB,而一個(gè)Oracle數(shù)據(jù)庫(kù)(Database)最多可有1022個(gè)數(shù)據(jù)文件,那么這個(gè)數(shù)據(jù)庫(kù)***可達(dá)到32TB 。
NT支持“裸”磁盤(pán)分區(qū)(raw disk partition)。每個(gè)裸分區(qū)可以不經(jīng)過(guò)系統(tǒng)格式化而分配一個(gè)驅(qū)動(dòng)器符,直接用于Oracle存放數(shù)據(jù)文件、日志文件或控制文件。與Unix平臺(tái)相似,每個(gè)裸分區(qū)都直接對(duì)應(yīng)唯一的一個(gè)Oracle 數(shù)據(jù)文件、日志文件或控制文件,兩種平臺(tái)的區(qū)別僅在于文件命名習(xí)慣不同。
例如,在SQL語(yǔ)句中可以這樣引用裸分區(qū): DATAFILE '\\.\f:' SIZE 49M REUSE。
這里的f: 就是對(duì)應(yīng)一個(gè)裸分區(qū)的盤(pán)符。而且習(xí)慣上,定義的Oracle文件大小通常都比裸分區(qū)的大小要小1MB,來(lái)避免寫(xiě)到磁盤(pán)的0柱面上。
3.參數(shù):
在NT平臺(tái)上有一些針對(duì)Oracle的注冊(cè)表參數(shù),這些參數(shù)類似于Unix平臺(tái)上的Shell變量。
例如,注冊(cè)表中的參數(shù)Oracle_home和Oracle_SID都是Oracle安裝程序在安裝時(shí)自動(dòng)在注冊(cè)表中定義的。Oracle實(shí)例也是作為一個(gè)服務(wù)(service)定義在注冊(cè)表中的,可以在NT的"控制面板"的"服務(wù)"項(xiàng)中看到。
Oracle在NT平臺(tái)上只支持單一的Oracle_home目錄,(***版Oracle中有所改進(jìn)),當(dāng)在NT上安裝不同版本的Oracle時(shí),所有版本都共享同一目錄結(jié)構(gòu),Oracle_home/bin,不同版本的執(zhí)行文件分別以版本號(hào)來(lái)互相區(qū)別,如Oracle72.exe , Oracle73.exe 。
在注冊(cè)表中Oracle_home參數(shù)定義在HKEY_LOCAL_MACHINE/software/Oracle/這些參數(shù)也可以通過(guò)注冊(cè)表程序regedit手工編輯重新設(shè)定值。
4.事件查看和系統(tǒng)性能監(jiān)測(cè):
在NT平臺(tái)上,有事件查看器(Event Viewer)和系統(tǒng)性能監(jiān)測(cè)器(Performance Monitor utilities)來(lái)監(jiān)測(cè)Oracle相關(guān)信息。
當(dāng)Oracle啟動(dòng)或關(guān)閉時(shí)都會(huì)在時(shí)間查看器中添加一條記錄,NT系統(tǒng)管理員可以通過(guò)查看事件查看器里的記錄信息來(lái)檢查是否有關(guān)于Oracle的警告信息,如果設(shè)置了Oracle審計(jì)(audit)選項(xiàng),還可以在事件查看器中查看到相關(guān)審計(jì)記錄。
系統(tǒng)性能監(jiān)測(cè)器提供了關(guān)于所有進(jìn)程的詳細(xì)數(shù)據(jù),包括與Oracle有關(guān)的一些資源統(tǒng)計(jì)數(shù)據(jù),如文件讀出字節(jié)/秒,數(shù)據(jù)緩沖命中率等等 。
盡管你在NT平臺(tái)上運(yùn)行多個(gè)Oracle實(shí)例,事件查看器和系統(tǒng)性能監(jiān)測(cè)器只收集在注冊(cè)表參數(shù)Oracle_SID中所標(biāo)明的那個(gè)實(shí)例有關(guān)數(shù)據(jù)。
5.安全性:
在第2點(diǎn)中也提到過(guò),要訪問(wèn)一個(gè)Oracle數(shù)據(jù)庫(kù),必須首先能夠以直接或間接方式訪問(wèn)正在運(yùn)行該數(shù)據(jù)庫(kù)的服務(wù)器,要使數(shù)據(jù)庫(kù)安全,首先要其依賴的平臺(tái)和網(wǎng)絡(luò)安全,一旦開(kāi)始執(zhí)行,操作系統(tǒng)的安全性必須被考慮。
Oracle使用大量用戶不能直接訪問(wèn)到的文件。例如,數(shù)據(jù)文件和日志文件只有通過(guò)Oracle的后臺(tái)處理進(jìn)行讀寫(xiě)。因此,只有要建立和刪除這些文件的DBA才可以在操作系統(tǒng)級(jí)直接訪問(wèn)它們。輸出文件和其他的備份文件也必須受到保護(hù)。
一般情況下,除了數(shù)據(jù)庫(kù)本身的用戶名和口令帳號(hào)外,可以利用平臺(tái)特性提供一個(gè)用戶認(rèn)證的附加級(jí),及操作系統(tǒng)帳號(hào)。但在同一服務(wù)器中,一個(gè)數(shù)據(jù)庫(kù)帳號(hào)可以和一個(gè)操作系統(tǒng)帳號(hào)配成對(duì),僅僅是前綴不同。缺省前綴為"OPS$",但可以通過(guò)Oracle數(shù)據(jù)庫(kù)的OS_AUTHENT_PREFIX參數(shù)修改其值。這個(gè)前綴也可以設(shè)置成空字符串,不用前綴。
在NT平臺(tái)上與Oracle核心相連(CONNECT INTERNAL)需要專門(mén)口令,這個(gè)密碼是在安裝時(shí)定義的,缺省情況下是存放在一個(gè)隱含文件pwd.ora中。該文件位于$Oracle_home/database 目錄。
如果在init.ora文件中設(shè)置: DBA_AUTHORIZATION=BYPASS。
或注冊(cè)表中修改: HKEY_LOCAL_MACHINE/software/Oracle/DBA_AUTHORIZATION。
設(shè)置其值為BYPASS,那么DBA與核心相連就不需要密碼了。這點(diǎn)也是需要特別注意的。
系統(tǒng)優(yōu)化是一個(gè)復(fù)雜,牽涉面很廣的問(wèn)題,上面幾點(diǎn)主要是從Oracle對(duì)平臺(tái)的依賴性方面來(lái)考慮如何進(jìn)行系統(tǒng)優(yōu)化,希望能給大家提供一個(gè)進(jìn)行系統(tǒng)優(yōu)化的思路。
文章出自: http://database.csdn.net/page/2e9174fd-e8a9-4ee3-b884-22e9c6479f1b
【編輯推薦】