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;