天天看點

oracle初始化參數

初始化參數檔案是Oracle資料庫非常重要的配置檔案,Oracle資料庫根據初始化參數來配置自身的啟動,每個執行個體在啟動之前,首先讀取參數檔案中設定的參數。這些參數決定了Oracle資料庫的記憶體配置及其内部很多的處理規則,它對系統的穩定運作及性能優劣會産生重要影響。

在Oracle 9i以前,Oracle隻有一個文本形式的參數配置檔案init(sid).ora也就是pfile,如果要修改資料庫參數,必須編輯修改該文本檔案中相應參數的值,然後再重新開機資料庫才能生效。從Oracle 9i開始,Oracle引入了二進制的參數配置檔案spfile(sid).ora也就是spfile,如果資料庫使用了spfile,Oracle的許多參數就可以通過指令動态實時修改,切注意spfile檔案不允許手工編輯,否則會損壞。

1、Oracle9i讀取初始化參數檔案的順序

Oracle9i資料庫啟動時讀取參數檔案的順序是:

會首先在$ORACLE_HOME/dbs(Windows為database目錄)目錄下查找spfile(sid).ora檔案(spfile),如果有,則利用該檔案啟動資料庫;

若找不到該spfile,則繼續在$ORACLE_HOME/dbs(Windows為database目錄)目錄下查找init(sid).ora檔案(pfile),若有則利用該檔案啟動資料庫;

若以上檔案都沒有,則oracle會報錯,無法啟動。

2、檢查Oracle版本和參數值

可以用SYS使用者在SQLPLUS中發出以下指令查詢oracle的版本資訊:

SQL>select * from v$version;

傳回如下結果:

BANNER

--------------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production

PL/SQL Release 9.2.0.5.0 - Production

CORE    9.2.0.6.0       Production

TNS for Solaris: Version 9.2.0.5.0 - Production

NLSRTL Version 9.2.0.5.0 – Production

以上結果說明該資料庫版本為64位的oracle 9.2.0.5。如果傳回結果中沒有64bit Production的資訊,則為32位版本的資料庫。

特别要注意,32位版本oracle資料庫的SGA區最大不超過1.7G,如果在初始化參數檔案裡配置的SGA超過了1.7G,oracle無法利用,且可能會導緻不可測的問題。Windows平台在設定了boot.ini後,最多可以達到2.6G

3、設定Oracle9i初始化參數

Oracle9i初始化參數我們隻需關注兩種

動态參數,可以用alter system指令修改,修改後立即生效;

靜态參數,可以用alter system..scope=spfile修改,修改後必須重新啟動執行個體才能夠生效;

檢視初始化參數的類型

SQL> select name, value, issys_modifiable from v$parameter;

如果issys_modifiable為immediate說明是動态參數;

如果issys_modifiable為false說明是靜态參數;

SPFILE的備份

彩鈴要求統一使用SPFILE,是以在修改初始化參數前應對SPFILE進行一次備份。

檢視Oracle是否使用SPFILE啟動:

SQL> show parameter spfile

--如結果為空,則說明使用的不是SPFILE,而是PFILE!

備份SPFILE(SYSDBA登陸):

SQL> create pfile='/home/oracle/spfile.bak' from spfile;

create pfile='/home/spfile.bak' from /dev/spfile;

--路徑和檔案名可更改,但不要放在$ORACLE_HOME/dbs(Windows為database目錄)下面。

修改初始化參數

修改初始化參數必須用AS SYSDBA身份登陸資料庫。

動态參數

SQL> alter system set job_queue_processes=20;

靜态參數

SQL> alter system set sga_max_size=2048M scope=spfile;

修改完畢,重新啟動執行個體使之生效。