1. 程式人生 > >初始化引數(Initialization Parameter)知識合集 based on 11g

初始化引數(Initialization Parameter)知識合集 based on 11g

初始化引數檔案分為:

1)pfile 靜態引數檔案

2)spfile 動態伺服器引數檔案

作用:儲存建立例項、啟動後臺程序所需引數值。

呼叫:例項啟動時,按如下順序調取初始化引數檔案

linux:

$ORACLE_HOME/dbs/spfile<SID>.ora

$ORACLE_HOME/dbs/spfile.ora

$ORACLE_HOME/dbs/init<SID>.ora

windows:

%ORACLE_HOME%\database\SPFILE<SID>.ORA

%ORACLE_HOME%\database\SPFILE.ORA

%ORACLE_HOME%\database\INIT<SID>.ORA

或者啟動時指定pfile

startup open pfile='/home/oracle/init.ora';  

例項從關閉狀態啟動到nomount(started狀態)時需要用到初始化引數檔案。

spfile是伺服器端檔案,例項啟動時被SMON讀取,不能重新命名和移動位置,它是二進位制檔案,不能手工編輯;pfile是客戶端檔案,例項啟動時由使用者程序讀取,可以隨意重新命名或 移動後通過制定其名稱和位置來啟動資料庫,它是ASCII文字檔案,可以編輯。

spfile是二進位制檔案,可以用strings命令來檢視內部的引數資訊:

可以在資料庫的任何狀態下(即使是關閉狀態下)用以下語句做初始化引數檔案的轉換:

CREATE SPFILE [=[fiilepath/]filename] FROM PFILE [=[fiilepath/]filename] ;
CREATE PFILE [=[fiilepath/]filename] FROM SPFILE [=[fiilepath/]filename] ;

此時的SQLPLUS僅僅是一個轉化工具而已,要求FROM後面的初始化引數檔案必須存在。

還可以

CREATE PFILE [=[fiilepath/]filename] FROM MEMORY;
CREATE SPFILE [=[fiilepath/]filename] FROM MEMORY;--當資料庫不是用spfile啟動的時候才能這樣操作

動態引數:可在例項執行時更改的引數,可以寫入記憶體立即生效,可以寫入spfile儲存設定,部分動態引數支援session級別的更改。

靜態引數:在例項啟動時就固定下來,即使更改也只先寫入spfile,需重啟例項才能啟用新值的引數。

v$parameter顯示當前例項生效的引數資訊(已匯入記憶體中的引數資訊);v$spparameter顯示磁碟中spfile中的值。

共342個引數,41個基本引數,301個非基本引數。

檢視初始化引數配置:

 1)OEM:

2)v$parameter

3)show parameter command

更改初始化引數

1)更改動態引數,立即生效,不寫入spfile,重啟後恢復原來的值

alter system set db_file_multiblock_read_count=16 scope=memory;

2)更改動態引數,立即生效,寫入spfile,重啟後繼續使用當前值

alter system set db_file_multiblock_read_count=16 scope=both;

3)更改靜態引數,寫入spfile,需例項重啟後方才生效

alter system set db_file_multiblock_read_count=16 scope=spfile;

4)按會話級別動態更改,僅當前會話有效

alter session set optimizer_mode=first_rows;

 用pfile啟動資料庫時,若改動spfile內的引數(scope=spfile),會報錯

資料庫至少啟動到nomount下可修改引數。關閉狀態下不允許修改。