Oracle參數(shù)及參數(shù)文件7大類解析
學(xué)過Oracle的人都知道,Oracle參數(shù)對(duì)數(shù)據(jù)庫(kù)初始化來說非常重要。 因?yàn)镺racle初始化參數(shù)能夠?qū)?shù)據(jù)庫(kù)約束和資源限制,下面就有關(guān)Oracle參數(shù)及參數(shù)文件設(shè)置進(jìn)行講述。
初始化參數(shù)分為3類:
推導(dǎo)參數(shù)
操作系統(tǒng)依賴參數(shù)
可變參數(shù)
1.推導(dǎo)Oracle參數(shù)(derived parameters)
- select name,value from v$parameter where name in (‘processes’,’sessions’);
processes參數(shù)代表oracle并發(fā)連接數(shù),合理設(shè)置processes參數(shù)是十分重要的,超過***進(jìn)程數(shù),dba也無法登錄數(shù)據(jù)庫(kù)。
通常在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),建議將該參數(shù)值修改為500,我機(jī)器默認(rèn)是150
- alter system set processes=500 scope=spfile;
重啟后看修改過的值
- select name,value from v$parameter where name=’processes’;
- select * from v$sgastat where name=’processes’;
2.操作系統(tǒng)依賴參數(shù)
某些參數(shù)的有效值或者取值范圍受限于操作系統(tǒng),比如db_cache_size參數(shù),設(shè)置oracle使用的buffer cache內(nèi)存大小,該參數(shù)
的***值就要受限于物理內(nèi)存,這一類參數(shù)通常被稱為操作系統(tǒng)依賴參數(shù)。
3.可變Oracle參數(shù)
可變參數(shù)包含絕大多數(shù)潛在影響系統(tǒng)性能的可調(diào)整參數(shù),某些可變參數(shù)設(shè)置的是限制條件,如open_cursors,有的是設(shè)置容量,如
db_cache_size等
初始化參數(shù)的獲取
show parameter sga
使用sql_trace跟蹤當(dāng)前會(huì)話
- alter session set sql_trace=true;
- show parameter sga;
- alter session set sql_trace=false;
4.Oracle參數(shù)文件
初始化參數(shù)文件(initialization parameter files) PFILE,文本文件,可手工修改
服務(wù)器參數(shù)文件(server parameter files) SPFILE,二進(jìn)制文件,不能手工修改
- cd /var/oracle11g/app/dbs
- file init.ora
- file spfilehugwww.ora
SPFILE文件,對(duì)于參數(shù)的修改都可以在命令行完成,在sqlplus中通過alter system 修改參數(shù)
- select sid,name,value from v$spparameter where value is not null;
- show spparameter;
- show spparameter memory_target;
在通過pfile中調(diào)用spfile,使用后設(shè)置的參數(shù)復(fù)蓋spfile中的參數(shù)設(shè)置,是解決spfile中參數(shù)設(shè)置錯(cuò)誤的一種方法
5.修改參數(shù)
可以通過alter system或者導(dǎo)入導(dǎo)出來更改spfile的內(nèi)容
scope新選項(xiàng),有3個(gè)可選值:
memory 只改變當(dāng)前實(shí)例,重啟數(shù)據(jù)庫(kù)后失效
spfile 只改變spfile的設(shè)置,不改變當(dāng)前實(shí)例,重啟數(shù)據(jù)庫(kù)后生效
both 同時(shí)改變實(shí)例及spfile,當(dāng)前更改立即生效,重啟后仍然有效
在rac環(huán)境,可以指定sid=<實(shí)例名>
#p#
用法:
- 1).scope=memory
- show parameter db_cache_ad
- alter system set db_cache_advice=off scope=memory;
- show parameter db_cache_ad
重啟數(shù)據(jù)庫(kù)后更改失效
2)
- .scope=spfile
- alter system set db_cache_advice=off scope=spfile;
- show parameter db_cache_ad
當(dāng)前實(shí)例不受影響,重啟后生效
3).
- scope=both
- alter system set db_cache_advice=off scope=both;
- alter system set db_cache_advice=off;
- show parameter db_cache_ad
不帶scope參數(shù)和scope=both是一樣的,如果修改的是靜態(tài)參數(shù),那么需要指定spfile參數(shù),不能指定both參數(shù),否則會(huì)報(bào)錯(cuò)
如:
- alter system set sql_trace=false scope=both;
- alter system set sql_trace=false scope=spfile;
6.在關(guān)閉數(shù)據(jù)庫(kù)狀態(tài)修改spfile
如果錯(cuò)誤修改了參數(shù)導(dǎo)致數(shù)據(jù)庫(kù)無法啟動(dòng),則可以通過創(chuàng)建pfile文件,修改其中的參數(shù),再由pfile創(chuàng)建spfile的方式解決,***由
spfile正常啟動(dòng)數(shù)據(jù)庫(kù),通過這種方式,可以快速修正spfile中的錯(cuò)誤參數(shù)定義
故障演示,修改db_block_buffers=1000導(dǎo)致數(shù)據(jù)庫(kù)不能啟動(dòng)
- startup;
- alter system set db_block_buffers=1000 scope=spfile;
- shutdown immediate;
- startup;
解決方法:
- create pfile from spfile;
- !vi /var/oracle11g/app/dbs/inithugwww.ora
- 將包含db_block_buffers=1000的那行刪除
- create spfile from pfile;
- startup;
#p#
7.其他
重置spfile中設(shè)置的參數(shù)
alter system reset parameter
判斷是否使用了spfile
如果查詢返回空值,那么說明在使用pfile
方法1:
select name,value from v$parameter where name=’spfile’;
方法2:
show parameter spfile
指定pfile文件啟動(dòng)實(shí)例
startup pfile=$ORACLE_HOME/dbs/inityang.ora
8.spfile的備份與恢復(fù)
oracle把spfile也放到rman的備份恢復(fù)策略當(dāng)中,如果配置了控制文件自動(dòng)備份,oracle會(huì)在數(shù)據(jù)庫(kù)發(fā)生重大變化時(shí)自動(dòng)進(jìn)行
控制文件及spfile文件的備份。
1)設(shè)置控制文件自動(dòng)備份
- rman target /
- configure controlfile autobackup on;
查詢:
sql>select * from v$rman_configuration;
2)更改自動(dòng)備份的位置
rman>configure controlfile autobackup format for device type disk to ‘/var/oracle11g/obak/control%F’
3)檢查自動(dòng)備份
sql>select * from v$backup_spfile;
rman target /
list backup of spfile;
4)記錄數(shù)據(jù)庫(kù)變化
create tablespace yang datafile ‘/var/oracle11g/app/base/oradata/hugwww/yang01.dbf’ size 5M;
5)測(cè)試
rman target /
restore spfile to ‘/tmp/spfileyang.ora’ from autobackup;
restore controlfile to ‘/tmp/control01.ctl’ from autobackup;
ls -ltr /tmp/*
如果數(shù)據(jù)庫(kù)無法mount,是不能使用以上方法恢復(fù)自動(dòng)備份的控制文件或者參數(shù)文件,可手工臨時(shí)編輯一個(gè)pfile文件啟動(dòng)
實(shí)例,即可進(jìn)行spfile恢復(fù)
注意:自動(dòng)備份功能缺省是關(guān)閉的,強(qiáng)烈推薦大家用上面的方法打開這個(gè)功能。
#p#
9.oracle11g參數(shù)文件恢復(fù)
從oracle11g開始,恢復(fù)實(shí)例參數(shù)引入了一個(gè)新的命令
create
create spfile=’/tmp/spfile.ora’ from memory;
10.如何設(shè)置events事件
events事件是oracle重要的診斷工具及問題解決辦法,很多時(shí)候需要通過events設(shè)置來屏蔽或更改oracle的行為
- alter system set event=’10841 trace name context forver’ scope=spfile;
- startup force;
- show parameter event
取消event參數(shù)設(shè)置
- show parameter event
- alter system reset event scope=spfile sid=’*';
- startup force;
- show parameter event
從oracle10g開始,修改數(shù)據(jù)庫(kù)的歸檔模式不需要設(shè)置log_archive_start參數(shù),通過以下方法設(shè)置:
- sqlplus "/as sysdba"
- archive log list;
- alter database archivelog;
- alter database open;
- archive log list;
注意:鑒于告警日志文件的重要作用,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí),通過我們***的處理步驟是檢查日志文件,以便發(fā)現(xiàn)相關(guān)錯(cuò)誤信息,快
速找到問題所在,這是dba必須明確的一個(gè)知識(shí)點(diǎn)
位置:
show parameter background_dump_dest;
顯示錯(cuò)誤號(hào)的意思,用如下命令
$oerr ora 30012
完成!
【編輯推薦】