修改数据库参数oracle,Oracle 修改数据库基本参数
Oracle 通過(guò)ALTER SYSTEM語(yǔ)句修改數(shù)據(jù)庫(kù)參數(shù),其語(yǔ)法:
ALTER?SYSTEM?SET?=?scope=[?memory?|?spfile?|?both?]?[sid=]
SCOPE表示應(yīng)用的范圍,分成三種
memeory:只在當(dāng)前實(shí)例中修改生效,重啟后失效(內(nèi)存中)
spfile:只在服務(wù)參數(shù)文件中修改,不重啟不生效(物理文件中)
both:在內(nèi)存和物理文件中同時(shí)修改,立即生效且永久保存修改之。
在RAC環(huán)境中需要指定SID來(lái)指明需要修改的實(shí)例名稱(chēng)。
修改某個(gè)系統(tǒng)參數(shù)并查看該語(yǔ)句實(shí)際的執(zhí)行效果
范例:
SQL>?alter?system?set?sql_trace=true;
System?altered.
SQL>?alter?database?open;
Database?altered.
SQL>?alter?system?set?db_cache_advice=off?scope=memory;
System?altered.
SQL>?show?parameter?db_cache_advice
NAME?????????????????????????????????TYPE??????????????????????????????VALUE
------------------------------------?---------------------------------?------------------------------
db_cache_advice??????????????????????string????????????????????????????OFF
Warning: Switching off db_cache_advice with sga_target on is not recommendedALTER SYSTEM SET db_cache_advice='OFF' SCOPE=MEMORY;
SQL?ID:?aqnw1wvv45uud
Plan?Hash:?0
alter?system?set?db_cache_advice=off?scope=memory
call?????count???????cpu????elapsed???????disk??????query????current????????rows
-------?------??--------?----------?----------?----------?----------??----------
Parse????????1??????0.00???????0.00??????????0??????????0??????????0???????????0
Execute??????1??????0.00???????0.00??????????0??????????0??????????0???????????0
Fetch????????0??????0.00???????0.00??????????0??????????0??????????0???????????0
-------?------??--------?----------?----------?----------?----------??----------
total????????2??????0.00???????0.00??????????0??????????0??????????0???????????0
Misses?in?library?cache?during?parse:?0
Parsing?user?id:?SYS
重啟數(shù)據(jù)庫(kù)后觀察該參數(shù)被自動(dòng)還原
SQL>?show?parameter?db_cache_advice
NAME?????????????????????????????????TYPE??????????????????????????????VALUE
------------------------------------?---------------------------------?------------------------------
db_cache_advice??????????????????????string????????????????????????????ON
繼續(xù)修改該參數(shù),并且應(yīng)用范圍修改為spfile,觀察發(fā)現(xiàn)當(dāng)前實(shí)例下并未生效。
SQL>?alter?system?set?db_cache_advice=off?scope=spfile;
System?altered.
SQL>?show?parameter?db_cache_advice
NAME?????????????????????????????????TYPE??????????????????????????????VALUE
------------------------------------?---------------------------------?------------------------------
db_cache_advice??????????????????????string????????????????????????????ON
SQL>?startup?force
ORA-32004:?obsolete?or?deprecated?parameter(s)?specified?for?RDBMS?instance
ORACLE?instance?started.
Total?System?Global?Area?6680915968?bytes
Fixed?Size??????????????????2213936?bytes
Variable?Size????????????3758098384?bytes
Database?Buffers?????????2885681152?bytes
Redo?Buffers???????????????34922496?bytes
Database?mounted.
Database?opened.
SQL>?show?parameter?db_cache_advice
NAME?????????????????????????????????TYPE??????????????????????????????VALUE
------------------------------------?---------------------------------?------------------------------
db_cache_advice??????????????????????string????????????????????????????OFF
可以看到該參數(shù)值重啟后發(fā)生改變,另上面出現(xiàn)一個(gè)ORA報(bào)錯(cuò),說(shuō)死過(guò)期和被棄用的參數(shù),日志提示
No Resource Manager plan active
replication_dependency_tracking turned off (no async multimaster replication found)
SQL>?alter?system?set?replication_dependency_tracking=false?scope=spfile;
System?altered.
SQL>?col?name?for?a35
SQL>?col?value?for?a15
SQL>?set?line?300
SQL>?select?name,value?from?v$spparameter?where?name='replication_dependency_tracking';
NAME????????????????????????????????VALUE
-----------------------------------?---------------
replication_dependency_tracking?????FALSE
視乎不是這個(gè)參數(shù)導(dǎo)致的,查看網(wǎng)上說(shuō)是log_archive_start參數(shù),在10G以后數(shù)據(jù)庫(kù)通過(guò)alter database archivelog自動(dòng)開(kāi)啟歸檔進(jìn)程,而棄用該參數(shù)。
SQL>?col?name?for?a30
SQL>?col?value?for?a30
SQL>?select?name,value,isdeprecated?from?v$parameter?where?name?like?'%log_archive_start';
NAME???????????????????????????VALUE??????????????????????????ISDEPRECATED
------------------------------?------------------------------?---------------
log_archive_start??????????????FALSE??????????????????????????TRUE
SQL>?startup?force
ORA-32004:?obsolete?or?deprecated?parameter(s)?specified?for?RDBMS?instance
SQL>?alter?system?reset?log_archive_start?scope=spfile;
System?altered.
SQL>?startup?force
ORACLE?instance?started.
SQL>?alter?database?archivelog;
修改后發(fā)現(xiàn)不對(duì),思考了下該錯(cuò)誤是我在開(kāi)始SQL_TRACE后發(fā)生的。那么我們先看看當(dāng)前有哪些參數(shù)是被棄用的
SQL>?select?name,?value?from?v$parameter?where?isdeprecated='TRUE';
NAME????????????????????????????????VALUE
-----------------------------------?---------------
......
commit_write
sql_trace???????????????????????????TRUE
SQL>?alter?system?set?sql_trace=false?scope=both;
System?altered.
SQL>?startup?force
SQL>?alter?system?reset?sql_trace?scope=spfile;
SQL>?shutdown?immediate
SQL>?startup
好了報(bào)錯(cuò)問(wèn)題解決了。同時(shí)實(shí)驗(yàn)結(jié)束。
另外如果錯(cuò)誤的修改了spfile,可以在關(guān)閉服務(wù)的情況下,可以修改pfile中的參數(shù),在通過(guò)pfile生成spfile文件:
SQL>?startup?nomount?pfile='/DBBK/oracle/product/11.2.0.1.0/dbs/initorcl.ora'
ORACLE?instance?started.
Total?System?Global?Area?6680915968?bytes
Fixed?Size??????????????????2213936?bytes
Variable?Size????????????3758098384?bytes
Database?Buffers?????????2885681152?bytes
Redo?Buffers???????????????34922496?bytes
SQL>?show?parameter?pfile
NAME????????????????????????????TYPE???????????????????????????????VALUE
-------------------------------?--------------------------------?------------------------------
spfile???????????????????????????????string
SQL>?create?spfile?from?pfile;
File?created.
SQL>?create?pfile?from?spfile;
File?created.
spfile之前的博客中也提到過(guò)時(shí)一個(gè)二進(jìn)制文件,因此盡量不要用工具直接編輯該文件,以免照成破壞導(dǎo)致無(wú)法啟用數(shù)據(jù)庫(kù)的狀況。
上面范例中我還提到一個(gè)重置系統(tǒng)參數(shù)值得命令:
alter?system?reset??scope=[?memory?|?spfile?|?both?]?sid=
該命令通常用于修改RAC環(huán)境中,也可以在單實(shí)例中使用,其目的是從spfile中去除某個(gè)參數(shù)值
SQL>?startup?mount?pfile='/DBBK/oracle/product/11.2.0.1.0/dbs/initorcl.ora'
ORACLE?instance?started.
Total?System?Global?Area?6680915968?bytes
Fixed?Size??????????????????2213936?bytes
Variable?Size????????????3758098384?bytes
Database?Buffers?????????2885681152?bytes
Redo?Buffers???????????????34922496?bytes
Database?mounted.
啟動(dòng)后有兩種方式確認(rèn)是否讀取的pfile文件參數(shù),查詢(xún)v$spparameter視圖確認(rèn)服務(wù)參數(shù)值,或者用show parameter命令。實(shí)際上show parameter命令也是在查該視圖。之前的博客已展示過(guò)show parameter 實(shí)際調(diào)用的語(yǔ)句
SQL>?select?count(*)?from?v$spparameter?where?value?is?not?null;
COUNT(*)
----------
0
SQL>?show?parameter?spfile
NAME?????????????????????????????????TYPE??????????????????????????????VALUE
------------------------------------?---------------------------------?------------------------------
spfile???????????????????????????????string
其他方法,通過(guò)ISSPECIFIED(表示是否被SPFILE引用的參數(shù))字段判斷
SQL>?select?decode(count(*),1,'spfile','pfile')?USE?from?v$spparameter?where?isspecified='TRUE';
--下面的語(yǔ)句,如果查詢(xún)TRUE為空也表明使用的是pfile文件
select?isspecified,count(*)?from?v$spparameter?group?by?isspecified;
如果使用的是默認(rèn)spfile啟動(dòng)的結(jié)果
SQL>?select?count(*)?from?v$spparameter?where?value?is?not?null;
COUNT(*)
----------
27
SQL>?show?parameter?spfile;
NAME?????????????????????????????????TYPE????????VALUE
------------------------------------?-----------?------------------------------
spfile???????????????????????????????string??????/u01/oracle/product/11.2.0.3.0
/dbs/spfilesss.ora
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的修改数据库参数oracle,Oracle 修改数据库基本参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python mro c3_Python
- 下一篇: mysql numeric float_