程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 發揮Oracle數據庫數據管理功能的方法

發揮Oracle數據庫數據管理功能的方法

編輯:Oracle數據庫基礎

以目前來看,Oracle是最大型的數據庫,其管理系統的發展也是最快的,在實際的應用中如何更好的發揮Oracle數據庫強大的數據的相關管理功能?這成為Oracle系統優化方面一個不可忽視的問題。

有專門文章從系統參數等軟件內部挖掘其"潛力",本文嘗試從Oracle與外部環境的特定關系,即Oracle的平台依賴性著手,主要以NT平台為例,就Oracle的平台依賴性的各個方面進行描述。

1.Oracle在NT平台下僅僅是一個多線程(Multiple Threads)操作系統進程(Process)

在NT平台下,Oracle的每一個後台"進程"(如LGWR、DBWR等)和專用服務"進程"都是Oracle進程的一個子線程。這種多線程結構(Muli_threaded Architecture)在NT上是非常高效的,因為所有子線程都共享同一主進程的資源。

如果你添加一個Oracle實例(Instance),才會有一個新的Oracle進程,這個新的進程同樣擁有。在NT平台下,操作系統並不給每個Oracle線程標志諸如LGWR、DBWR之類的名字。如果想查看有關線程信息,可以通過SQL語句來查詢數據字典(Data Dictionary)中的相關表(Table)和視圖(VIEw)。

例如,查看關於DBWR線程的內部編號信息:

  1. select b.name , p.spid   
  2. from v$bgpross b , v$process p   
  3. where b.paddr=p.addr   
  4. and name='DBWR'  

另外,Oracle的系統性能監測工具也提供了一種查看線程信息的簡單方法。

2.空間限制:

在NT平台上,Oracle實例和所有連接用戶的地址空間都限制在2GB內,而在Win9x平台上,這個限制則在3GB內。因為對於NT或Win9x , 一個進程的地址空間都限制在4GB內,而對於NT平台來說,還要預留2GB給系統資源,如緩沖區,堆棧等,對Win9x來說,預留的空間為1GB 。NT支持兩種主要的文件系統: FAT 和 NTFS。Oracle可以在這兩種文件系統下安裝,但有兩個問題需要考慮到。

首先就是安全性。FAT文件系統不支持文件級安全保護,每個登錄到NT服務器上的用戶都可以刪除FAT文件,而NTFS文件系統支持類似於Unix的文件級安全保護,用戶只能存取他擁有存取權利的文件。

第二個就是文件的最大限制。一個FAT文件最大是4GB,而一個NTFS文件從技術上講最大可達到32GB。Oracle在NT平台下每個數據文件最多能有4百萬個數據塊(Data Block),如果按每個塊8KB大小計算,那麼一個數據文件就有32GB,而一個Oracle數據庫(Database)最多可有1022個數據文件,那麼這個數據庫最大可達到32TB 。

NT支持“裸”磁盤分區(raw disk partition)。每個裸分區可以不經過系統格式化而分配一個驅動器符,直接用於Oracle存放數據文件、日志文件或控制文件。與Unix平台相似,每個裸分區都直接對應唯一的一個Oracle 數據文件、日志文件或控制文件,兩種平台的區別僅在於文件命名習慣不同。

例如,在SQL語句中可以這樣引用裸分區: DATAFILE '\\.\f:' SIZE 49M REUSE。

這裡的f: 就是對應一個裸分區的盤符。而且習慣上,定義的Oracle文件大小通常都比裸分區的大小要小1MB,來避免寫到磁盤的0柱面上。

3.參數:

在NT平台上有一些針對Oracle的注冊表參數,這些參數類似於Unix平台上的Shell變量。

例如,注冊表中的參數Oracle_home和Oracle_SID都是Oracle安裝程序在安裝時自動在注冊表中定義的。Oracle實例也是作為一個服務(service)定義在注冊表中的,可以在NT的"控制面板"的"服務"項中看到。

Oracle在NT平台上只支持單一的Oracle_home目錄,(最新版Oracle中有所改進),當在NT上安裝不同版本的Oracle時,所有版本都共享同一目錄結構,Oracle_home/bin,不同版本的執行文件分別以版本號來互相區別,如Oracle72.exe , Oracle73.exe 。 在注冊表中Oracle_home參數定義在HKEY_LOCAL_MacHINE/software/Oracle/這些參數也可以通過注冊表程序regedit手工編輯重新設定值。

4.事件查看和系統性能監測:

在NT平台上,有事件查看器(Event Viewer)和系統性能監測器(Performance Monitor utilitIEs)來監測Oracle相關信息。

當Oracle啟動或關閉時都會在時間查看器中添加一條記錄,NT系統管理員可以通過查看事件查看器裡的記錄信息來檢查是否有關於Oracle的警告信息,如果設置了Oracle審計(audit)選項,還可以在事件查看器中查看到相關審計記錄。

系統性能監測器提供了關於所有進程的詳細數據,包括與Oracle有關的一些資源統計數據,如文件讀出字節/秒,數據緩沖命中率等等 。

盡管你在NT平台上運行多個Oracle實例,事件查看器和系統性能監測器只收集在注冊表參數Oracle_SID中所標明的那個實例有關數據。

5.安全性:

在第2點中也提到過,要訪問一個數據庫,必須首先能夠以直接或間接方式訪問正在運行該Oracle數據庫的服務器,要使數據庫安全,首先要其依賴的平台和網絡安全,一旦開始執行,操作系統的安全性必須被考慮。

Oracle使用大量用戶不能直接訪問到的文件。例如,數據文件和日志文件只有通過Oracle的後台處理進行讀寫。因此,只有要建立和刪除這些文件的DBA才可以在操作系統級直接訪問它們。輸出文件和其他的備份文件也必須受到保護。

一般情況下,除了數據庫本身的用戶名和口令帳號外,可以利用平台特性提供一個用戶認證的附加級,及操作系統帳號。但在同一服務器中,一個數據庫帳號可以和一個操作系統帳號配成對,僅僅是前綴不同。缺省前綴為"OPS$",但可以通過Oracle數據庫的OS_AUTHENT_PREFIX參數修改其值。這個前綴也可以設置成空字符串,不用前綴。

在NT平台上與Oracle核心相連(CONNECT INTERNAL)需要專門口令,這個密碼是在安裝時定義的,缺省情況下是存放在一個隱含文件pwd.ora中。該文件位於$Oracle_home/database 目錄。

如果在init.ora文件中設置: DBA_AUTHORIZATION=BYPASS。

或注冊表中修改: HKEY_LOCAL_MacHINE/software/Oracle/DBA_AUTHORIZATION。

設置其值為BYPASS,那麼DBA與核心相連就不需要密碼了。這點也是需要特別注意的。

系統優化是一個復雜,牽涉面很廣的問題,上面幾點主要是從Oracle對平台的依賴性方面來考慮如何進行系統優化,希望能給大家提供一個進行系統優化的思路。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved