Oracle引數檔案解析——引數解析

realkid4發表於2011-06-07

 

引數檔案中記錄了Oracle資料庫例項啟動所需的重要引數資訊。下面分別根據不同型別進行描述解釋。

 

 

 [oracle@oracle11g test]$ cat pfile.ora

wilson.__db_cache_size=92274688

wilson.__java_pool_size=4194304

wilson.__large_pool_size=4194304

wilson.__oracle_base='/u01'#ORACLE_BASE set from environment

wilson.__pga_aggregate_target=142606336

wilson.__sga_target=272629760

wilson.__shared_io_pool_size=0

wilson.__shared_pool_size=155189248

wilson.__streams_pool_size=8388608

*.audit_file_dest='/u01/admin/wilson/adump'

*.audit_trail='DB'

*.compatible='11.2.0.0.0'

*.control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl','/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl'

*.db_block_size=8192

*.db_create_file_dest='/u01/oradata'

*.db_domain=''

*.db_name='wilson'

*.db_recovery_file_dest='/u01/flash_recovery_area'

*.db_recovery_file_dest_size=3145728000

*.diagnostic_dest='/u01'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'

*.memory_target=415236096

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.shared_servers=2

*.undo_tablespace='UNDOTBS1'

 

 

1、單獨例項與全域性例項引數設定差異

 

在我們匯出的引數ASCII檔案中,可以明顯看到引數的現實格式為“Key-value”配對方式顯示。具體看,引數名稱key格式為“.”。

 

其中,sid表示引數效用範圍例項。從上面的例子中看,wilson.就表示該引數起效果的例項是在wilson例項之上。此外,一些引數的sid位置是用“*”表示,這樣的含義就是該引數其效果是在全域性RAC下作用。

 

通常我們的資料庫環境都是單例項(後臺程式+共享記憶體)外加單資料庫。而RACReal Application Cluster)是Oracle推出的資料庫叢集解決方案。簡單的說,就是多臺PC上部署多個Oracle例項,而對應的資料庫(資料檔案)卻只有一份。使用RAC技術,一般可以提高資料庫系統整體的可用性和負載均衡特性。

 

 

如果引數sid中使用“*”號,就表示這個引數要在整個RAC多個例項上同時作用。

 

 

2、遺留例項容量引數

 

在引數檔案中,包括一些以“_”開頭的引數檔案引數,如“_db_cache_size”等。這些引數可以成為遺留例項容量引數。這些引數大都是一些描述共享記憶體SGAPGA區容量的引數,如large_pooljava_pool的大小。見下表:

 

引數名稱

容量含義

備註

__db_cache_size

Buffer Cache容量

容納Data Block快取

__java_pool_size

Java Pool容量

Oracle自身的JVM提供記憶體;

__large_pool_size

大池容量

提供備份、恢復等大資料塊需求;

__pga_aggregate_target

PGA總容量設定

分配各程式的PGA總和;

__sga_target

SGA總容量設定

 

__shared_io_pool_size

Shared IO

共享IO池的大小

__shared_pool_size

共享池大小

快取SQL語句和資料字典;

__streams_pool_size

流池大小

支援流stream元件工作;

 

那麼,這些引數加入“__”的含義是什麼呢?在Oracle中,資料庫記憶體空間分配,特別是SGA各個子分割槽的分配一直是一個難題。從Oracle 10g開始,Oracle開始推出了自動管理記憶體空間各個分割槽的技術。資料庫配置人員只需要配置出SGA或者總共Oracle使用資料庫的空間targetOracle會自動根據負載和工作量進行各個分割槽調節。這樣,通常是可以實現記憶體分佈的最最佳化目標。

 

Oracle進行各分割槽調節的時候,會將當前的空間已“__”的引數計入到系統引數檔案中。當重新啟動Oracle的時候,會首先按照這部分的引數設定來配置例項的記憶體空間。這樣的有點是能夠保留下系統經歷“千辛萬苦”才調節出的引數組合。

 

 

3、關鍵路徑、容量引數配置

 

除了用於進行Oracle例項記憶體構建的引數之外,還包括如下一些關鍵路徑資訊和容量引數資訊:

 

ü        資料庫塊datablock大小

 

引數檔案中確定說明了data block的大小,示例中資料庫塊大小為8k

 

ü        control_files控制檔案配置目錄

 

控制檔案包括了資料庫諸多引數和當前狀態資訊。引數檔案載入之後,Oracle啟動mountopen很大程度上需要讀取控制檔案內容。引數檔案中會定義當前系統的控制檔案位置和名稱。如當前例項中,就有:

 

*.control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl','/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl'

 

 

控制檔案極其重要,如果意外損壞或者誤刪除影響重大。所以,通常會採用多份備份的方法進行儲存。同時在使用RMAN等備份手段時,也存在專門針對控制檔案的備份方法。

 

ü        audit_審計資訊儲存引數

 

資料庫審計是Oracle提供的一個可選元件功能。引數檔案Parameter File中包括如下內容:

 

*.audit_file_dest='/u01/admin/wilson/adump'

*.audit_trail='DB'

 

 

其中表示資料庫審計資訊策略(Database)和審計檔案存放的檔案系統位置。

 

ü        恢復檔案位置和大小

 

設定存放恢復檔案,如Archivelog Files和一些備份資訊的物理位置。這個位置存放大小可以透過dest_size引數進行控制。

 

 

*.db_recovery_file_dest='/u01/flash_recovery_area'

*.db_recovery_file_dest_size=3145728000

 

 

 

ü        OMF建立引數設定

 

Oracle推出了OMF技術(Oracle Managed File),實現各型別檔案的自動化管理。使用者不需要負責檔名稱設定,在建立檔案的時候,會自動在設定的目錄上建立檔案。

 

*.db_create_file_dest='/u01/oradata'

 

 

引數db_create_file_dest為資料檔案建立的目錄。這樣,在建立表空間的時候,只需要指定表空間名稱,不需要指定資料檔名稱。Oracle會自動的在db_create_file_dest目錄下建立相關名稱資料檔案。

 

 

4、例項相關引數

 

除了例項使用容量資訊外,Oracle引數檔案中還指定了一些程式和連線模式資訊。

 

ü        共享連線模式設定

 

Oracle兩種連線方式:共享模式和獨佔模式。在通常情況下,兩種模式是可以並存的。一般預設的連線是獨佔dedicate模式,此時允許一些服務是使用共享連線模式。通常Oracle在安裝的時候是有XML資料庫服務的,這些在設定中是使用共享連線模式。

 

*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'

*.shared_servers=2

 

 

引數dispatchershared_servers分別是共享連線模式的設定引數。Dispatcher設定共享連線支援的服務名稱和連線協議。Shared_server表示共享連線池中預設存放的資料庫連線數量。

 

ü        例項程式數量和開啟遊標數量

 

Parameter File中還包括一些例項後臺程式個數配置資訊。

 

 

*.open_cursors=300

*.processes=150

 

 

Processes參數列示Oracle例項能夠同時支援的服務程式Server Process個數。如果實際連線超過Process引數數量,Oracle會拒絕新連線或者強制斷開不活躍連線。

 

open_cursors是表示一個session會話中可以開啟的最大遊標數量。

 

 

ü        資料庫名稱資訊

 

引數檔案中,也包括了資料庫例項的名稱資訊。

 

*.db_domain=''

*.db_name='wilson'

 

 

 

5、結論

 

引數檔案中包括了資料庫系統中一些最基本的引數內容,是啟動過程中一個不可缺少的環節。本篇中展示了筆者示例資料庫中的引數檔案引數。但是,並不是說每個引數都是必需的。

 

其中,如db_block_sizecontrol_filesprocessesundo_management都是稱為basic引數。如果這些引數不設定,就會影響到Oracle的正常啟動,啟動過程會報錯。其他一些Advanced引數Oracle都有預設值可以供使用。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-697335/,如需轉載,請註明出處,否則將追究法律責任。

相關文章