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