天天看點

初始化參數檔案介紹

1.初始化參數檔案 initializationparameter files;

初始化參數檔案是最重要的檔案之一,執行個體啟動時讀入此檔案的參數,并使用這些參數來配置ORACLE INSTANCE;資料庫運作期間不鎖定參數檔案。

初始化參數的分類:

按照得出方式不同,初始化參數可以分為3類:推導參數,作業系統依賴參數和可變參數。

推導參數 derived parameters,通常來自于其它參數的運算,依賴其它參數得出。通常不需要修改。

作業系統依賴參數,如db_cache_size參數,設定ORACLE  buffer cache記憶體大小,此參數大小受限于實體記憶體

可變參數:此類參數通常可以被調整,進而産生限制或性能變化。

按照修改方式劃分 ,可分為靜态參數和動态參數。靜态參數隻能在參數檔案中修改,重新開機後生效。動态參數可以動态調整,調整後即生效。

按擷取方式不同,初始化參數可以分為顯示參數和隐含參數。顯示參數可以通過v$parameter查詢出,隐含參數通常以_開關,通過查詢系統表才能獲得。在初始化參數檔案中沒有參數項,但使用ORACLE預設值.

ORACLE_SID從ORACLE 10G開始,參數檔案不再記錄INSTANCE_NAME,此時INSTANCE_NAME動态從系統ORACLE_SID獲得。将保持一緻。

2.有兩種不同類型的初始化參數檔案

靜态參數檔案 PFILE,此檔案為文本檔案。動态參數檔案 spfile,此檔案為二進制檔案,ORACLE9I後預設使用SPFILE啟動資料庫。 靜态參數檔案一般名為:initSID.ora  動态參數檔案名一般為spfileSID.ora   SID為執行個體名。

靜态參數檔案PFILE,在11G中位置為:$ORACLE_HOME\database\

可以直接使用作業系統的複制指令來進行備份。使用寫字闆來檢視檔案内容。

查詢使用的是動态還是靜态參數檔案五種方法:VALUE值是空則為靜态參數檔案

SQL> show parameter spfile;

NAME   TYPE        VALUE

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

spfile string C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA

BYS|HELLO>select name,value from  v$parameter where name= 'spfile';

BYS|HELLO>select count(*) from  v$spparameter where value is not null;

BYS|HELLO>select  isspecified,count(*) from  v$spparameter group by isspecified;

BYS|HELLO>select  decode(count(*),1,'spfile','pfile') used from v$spparameter where rownum=1 and  isspecified='TRUE';這是上一句的引申。

靜态參數檔案是一個包含一系列參數及參數對應值的作業系統檔案,有初始化參數檔案,PFILE,文本檔案可手工修改。

伺服器參數檔案SPFILE: server parameter files 二進制檔案,不能手動修改,使用  alter system set 來設定修改。

視圖v$spparameter用于記錄SPFILE檔案中設定的初始化參數。

SQL>select sid,name,value from v$parameter where value is not null;

視圖v$system_parameter用于顯示對目前執行個體級别生效的參數設定,是系統級别的參數設定。一個會話建立時,首先從此視圖繼承參數設定,v$parameter用于顯示會話級别生效的參數設定,如果在會話級别修改了參數,這裡的參數值可能與v$system_parameter顯示的不同。

還存在一個v$parameter2視圖,與v$parameter不同在于如果參數有多個值,它分多行顯示。如三行控制檔案

查詢參數檔案資訊:

v$parameter2與v$parameter顯示時的差別

[email protected] bys3>select name,value from V$PARAMETER2 where name like '%control_files%';

NAME                 VALUE

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

control_files        /u01/oradata/bys3/control01.ctl

control_files        /u01/oradata/bys3/control02.ctl

[email protected] bys3>select name,value from V$PARAMETER where name like '%control_files%';

NAME                 VALUE

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

control_files        /u01/oradata/bys3/control01.ctl, /u01/or

                     adata/bys3/control02.ctl

SQL>show parameter   這個指令實際上是在背景查詢v$parameter視圖。

SQL>show spparameter

SQL>show parameter sga

NAME                                 TYPE        VALUE

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

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 412M

sga_target                           big integer 0

3.參數檔案的搜尋順序:在預設目錄$ORACLE_HOME/database下搜尋SPFILESID.ORA——SPFILE.ORA——PFILESID.ORA

建立動态參數檔案 create spfile frompfile  ORACLE    用預設的PFILE産生一個預設位置和名字的SPFILE

也可以從指定的PFILE生成指定的SPFILE。ORACLE運作期間未鎖定SPFILE檔案。

create spfile='C:\DBHOME_1\DATABASE\SPFILEORAC.ORA'  from  pfile='C:\oracle\admin\orac\pfile\initorcl.ora';

4.部分參數介紹:

DB_NAME:

執行個體啟動的最少參數要求,有此參數,資料庫執行個體就可以啟動。可以建立INIT.ORA隻包括此參數測試。

它代表了執行個體即将連接配接的資料庫名稱,關系到具體的實體檔案。單執行個體資料庫DB_NAME與INSTANCE_NAME可設定相同,RAC環境下多執行個體對應一個資料庫,兩者不同。

DB_NAME用來定義資料庫名稱,必須是不超過8個字元的文本串,資料庫建立過程中,DB_NAME被記錄在資料檔案、日志檔案、控制檔案,執行個體啟動過程中參數檔案中DB_NAME與控制檔案中不一緻,則資料庫不能啟動。

一個執行個體可以MOUNT并打開任何資料庫,同一時間一個執行個體隻能打開一個資料庫。

一個資料庫可以被一個或多個執行個體MOUNT并打開,如RAC

主機,執行個體,資料庫關系:

比如執行個體是男人,資料庫是女人,主機就是一張大床。

正常情況下,同一時間一男隻能打開一女,而理論上一男能打開任意女滴。

一女理論上可以被任意一個男打開,也可以同時被多個男打開----RAC/3P-NP。

一張大床(主機)可以睡一個男人(執行個體)和一個女人(庫),隻要床足夠大,也可以睡多個男人和多個女人。

使用任意執行個體名來打開資料庫測試 --- http://blog.csdn.net/q947817003/article/details/16337309

ORACLE_SID:

ORACLE System IDentifier的縮寫, ORACLE_SID以環境變量形式出現。ORACLE執行個體由一塊共享記憶體區域SGA和一組背景程序background process組成,背景程序是資料庫與作業系統運作互動的通道。比如JORACLE根據ORACLE_SID決定查找參數檔案并啟動執行個體。

INSTANCE_NAME 在資料庫内部ORACLE_sid關聯概念就是INSTANCE_NAME,ORACLE存在的初始化參數INSTANCE_NAME用于标示資料庫執行個體名字預設值是ORACLE_SID,在資料庫内部視圖V$INSTANCE中記錄着INSTANCE_NAME,來自資料庫執行個體的SID,始終與ORACLE_SID保持一緻。

從動态參數檔案建立靜态參數檔案為:

create pfile from spfile;

create pfile='C:\DBHOME_1\DATABASE\initorcl.ora'  from spfile=' C:\DBHOME_1\DATABASE\SPFILEORAC.ORA';

5.如何修改初始化參數:

Alter system指令或者導入導出SPFILE内容修改。Alter system  的SCOPE參數有3個可選值,MEMORY,隻改變目前執行個體,重新開機資料庫後失效。SPFILE,隻改變SPFILE,不改變目前執行個體,重新開機後生效。對于靜态參數,隻能指定SCOPE=SPFILE進行修改。BOTH,同時改變執行個體及SPFILE,目前生效,重新開機後有效。預設不加SCOPE參數時就是BOTH此參數。

指令示例:

Alter system set db_cache_advice=off scope=memory;

Alter system set db_cache_advice=off scope=spfile;

Alter system setdb_cache_advice=off scope=both;這兩條指令等效。

Alter system setdb_cache_advice=off;

RAC環境需要指定SID名稱,指定為*對所有執行個體生效

Alter system set db_cache_advice=off  sid=’*’  scope=spfile;

Alter system set db_cache_advice=off  sid=’orcl’ scope=spfile;

6.重置SPFILE中設定的參數:

Alter system reset open_cursors scope=both;