程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle參數及參數文件7大類解析

Oracle參數及參數文件7大類解析

編輯:Oracle數據庫基礎

學過Oracle的人都知道,Oracle參數對數據庫初始化來說非常重要。 因為Oracle初始化參數能夠對數據庫約束和資源限制,下面就有關Oracle參數及參數文件設置進行講述。

初始化參數分為3類:
推導參數
操作系統依賴參數
可變參數

1.推導Oracle參數(derived parameters)

  1. select name,value from v$parameter where name in (‘processes’,’sessions’);   

processes參數代表Oracle並發連接數,合理設置processes參數是十分重要的,超過最大進程數,dba也無法登錄數據庫。

通常在創建數據庫時,建議將該參數值修改為500,我機器默認是150

  1. alter system set processes=500 scope=spfile;   

重啟後看修改過的值

  1. select name,value from v$parameter where name=’processes’;   
  2. select * from v$sgastat where name=’processes’;   

2.操作系統依賴參數

某些參數的有效值或者取值范圍受限於操作系統,比如db_cache_size參數,設置Oracle使用的buffer cache內存大小,該參數
的最大值就要受限於物理內存,這一類參數通常被稱為操作系統依賴參數。

3.可變Oracle參數

可變參數包含絕大多數潛在影響系統性能的可調整參數,某些可變參數設置的是限制條件,如open_cursors,有的是設置容量,如
db_cache_size等

初始化參數的獲取
show parameter sga

使用sql_trace跟蹤當前會話

  1. alter session set sql_trace=true;   
  2. show parameter sga;   
  3. alter session set sql_trace=false;  

4.Oracle參數文件
初始化參數文件(initialization parameter files) PFILE,文本文件,可手工修改
服務器參數文件(server parameter files)         SPFILE,二進制文件,不能手工修改

  1. cd /var/Oracle11g/app/dbs   
  2. file init.ora   
  3. file spfilehugwww.ora   

SPFILE文件,對於參數的修改都可以在命令行完成,在sqlplus中通過alter system 修改參數

  1. select sid,name,value from v$spparameter where value is not null;   
  2. show spparameter;   
  3. show spparameter memory_target;   

在通過pfile中調用spfile,使用後設置的參數復蓋spfile中的參數設置,是解決spfile中參數設置錯誤的一種方法

5.修改參數

可以通過alter system或者導入導出來更改spfile的內容
scope新選項,有3個可選值:
memory    只改變當前實例,重啟數據庫後失效
spfile    只改變spfile的設置,不改變當前實例,重啟數據庫後生效
both    同時改變實例及spfile,當前更改立即生效,重啟後仍然有效
在rac環境,可以指定sid=<實例名>

用法:

  1. 1).scope=memory   
  2. show parameter db_cache_ad   
  3. alter system set db_cache_advice=off scope=memory;   
  4. show parameter db_cache_ad   

重啟數據庫後更改失效

2)

  1. .scope=spfile   
  2. alter system set db_cache_advice=off scope=spfile;   
  3. show parameter db_cache_ad   

當前實例不受影響,重啟後生效

3).

  1. scope=both   
  2. alter system set db_cache_advice=off scope=both;   
  3. alter system set db_cache_advice=off;   
  4. show parameter db_cache_ad   

不帶scope參數和scope=both是一樣的,如果修改的是靜態參數,那麼需要指定spfile參數,不能指定both參數,否則會報錯
如:

  1. alter system set sql_trace=false scope=both;   
  2. alter system set sql_trace=false scope=spfile;   

6.在關閉數據庫狀態修改spfile

如果錯誤修改了參數導致數據庫無法啟動,則可以通過創建pfile文件,修改其中的參數,再由pfile創建spfile的方式解決,最後由
spfile正常啟動數據庫,通過這種方式,可以快速修正spfile中的錯誤參數定義

故障演示,修改db_block_buffers=1000導致數據庫不能啟動

  1. startup;   
  2. alter system set db_block_buffers=1000 scope=spfile;   
  3. shutdown immediate;   
  4. startup;   

解決方法:

  1. create pfile from spfile;   
  2. !vi /var/Oracle11g/app/dbs/inithugwww.ora   
  3. 將包含db_block_buffers=1000的那行刪除   
  4. create spfile from pfile;   
  5. startup;   

7.其他

重置spfile中設置的參數
alter system reset parameter

判斷是否使用了spfile
如果查詢返回空值,那麼說明在使用pfile
方法1:
select name,value from v$parameter where name=’spfile’;
方法2:
show parameter spfile

指定pfile文件啟動實例
startup pfile=$Oracle_HOME/dbs/inityang.ora

8.spfile的備份與恢復

oracle把spfile也放到rman的備份恢復策略當中,如果配置了控制文件自動備份,Oracle會在數據庫發生重大變化時自動進行
控制文件及spfile文件的備份。
1)設置控制文件自動備份

  1. rman target /   
  2. configure controlfile autobackup on;   

查詢:
sql>select * from v$rman_configuration;

2)更改自動備份的位置
rman>configure controlfile autobackup format for device type disk to ‘/var/Oracle11g/obak/control%F’

3)檢查自動備份
sql>select * from v$backup_spfile;
rman target /
list backup of spfile;

4)記錄數據庫變化
create tablespace yang datafile ‘/var/Oracle11g/app/base/oradata/hugwww/yang01.dbf’ size 5M;

5)測試
rman target /
restore spfile to ‘/tmp/spfileyang.ora’ from autobackup;
restore controlfile to ‘/tmp/control01.ctl’ from autobackup;

ls -ltr /tmp/*

如果數據庫無法mount,是不能使用以上方法恢復自動備份的控制文件或者參數文件,可手工臨時編輯一個pfile文件啟動
實例,即可進行spfile恢復

注意:自動備份功能缺省是關閉的,強烈推薦大家用上面的方法打開這個功能。

9.Oracle11g參數文件恢復

從Oracle11g開始,恢復實例參數引入了一個新的命令
create from memory;
create spfile=’/tmp/spfile.ora’ from memory;

10.如何設置events事件
events事件是oracle重要的診斷工具及問題解決辦法,很多時候需要通過events設置來屏蔽或更改Oracle的行為

  1. alter system set event=’10841 trace name context forver’ scope=spfile;   
  2. startup force;   
  3. show parameter event   

取消event參數設置

  1. show parameter event   
  2. alter system reset event scope=spfile sid=’*';   
  3. startup force;   
  4. show parameter event   

從Oracle10g開始,修改數據庫的歸檔模式不需要設置log_archive_start參數,通過以下方法設置:

  1. sqlplus "/as sysdba"   
  2. archive log list;   
  3. alter database archivelog;   
  4. alter database open;   
  5. archive log list;   

注意:鑒於告警日志文件的重要作用,當數據庫出現故障時,通過我們最先的處理步驟是檢查日志文件,以便發現相關錯誤信息,快
速找到問題所在,這是dba必須明確的一個知識點
位置:
show parameter background_dump_dest;

顯示錯誤號的意思,用如下命令
$oerr ora 30012

完成!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved