在Oracle實(shí)例關(guān)閉時(shí)如何修改spfile的參數(shù)詳解
問(wèn)題描述:
最近在工作遇到一個(gè)問(wèn)題,在Oracle 11G單機(jī)ASM中修改sga大小,修改完后,關(guān)閉instance并startup時(shí),提示sga沒(méi)有達(dá)到最小值,因些無(wú)法啟動(dòng),而此時(shí)數(shù)據(jù)庫(kù)實(shí)例已經(jīng)關(guān)閉,已不能在之前的那種模式修改參數(shù),下面來(lái)一起看看詳細(xì)的介紹。
具體的操作如下:
一、查詢sga大小
SQL> show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 1G sga_target big integer 1G
二、修改sga大小為500M
SQL> alter system set sga_target=500M scope=spfile; System altered.
三、因?yàn)槭侵付▍?shù)為spfile,因此要重啟instance才能使參數(shù)生效
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.
四、重啟instance 時(shí),提示sga最小值應(yīng)該為668M
SQL> startup ORA-01078: failure in processing system parameters ORA-00821: Specified value of sga_target 500M is too small, needs to be at least 668M
解決細(xì)路:
首先我們要理解一下oracle數(shù)據(jù)庫(kù)在啟動(dòng)過(guò)程中調(diào)用 的參數(shù),其順序?yàn)椋?br />
spfilesid.ora -> spfile.ora ->initsid.ora-> init.ora 從這條啟動(dòng)線來(lái)說(shuō),如果第一個(gè)spfilesid.ora文件找不到的話,它會(huì)找到二個(gè)spfile.ora文件,如果能找到就能正常啟動(dòng),若找不到,再繼續(xù)找下一個(gè)initsid.ora文件,一直找到最后一個(gè)init.ora文件,說(shuō)明:如果找到其中一個(gè)則會(huì)正常啟動(dòng)instance
解決方法:
通過(guò)創(chuàng)建pfile文件方式來(lái)啟動(dòng)數(shù)據(jù)庫(kù),然后再以pfile文件為模板創(chuàng)建spfile,具體步驟是:
1、以spfile模板創(chuàng)建pfile文件,并指定路徑為本地硬盤位置
create pfile='/oracle/initudevasm.ora' from spfile='+DGDATA02/udevasm/spfileudevasm.ora';
2、修改initudevasm.ora文件,找到sga_target字段,修改大于 668M
vi /oracle/initudevasm.ora udevasm.__db_cache_size=826277888 udevasm.__java_pool_size=4194304 udevasm.__large_pool_size=8388608 udevasm.__oracle_base='/oracle/app/oracle'#ORACLE_BASE set from environment udevasm.__pga_aggregate_target=629145600 udevasm.__sga_target=1073741824 udevasm.__shared_io_pool_size=0 udevasm.__shared_pool_size=222298112 udevasm.__streams_pool_size=0 *.audit_file_dest='/oracle/app/oracle/admin/udevasm/adump' *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='+DGDATA02/udevasm/controlfile/current.256.945212019' *.db_block_size=8192 *.db_create_file_dest='+DGDATA02' *.db_domain='' *.db_name='udevasm' *.db_recovery_file_dest_size=3221225472 *.diagnostic_dest='/oracle/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=udevasmXDB)' udevasm.log_archive_dest_1='LOCATION=+DGRECOVERY/' *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.pga_aggregate_target=629145600 *.processes=1000 *.remote_login_passwordfile='EXCLUSIVE' *.sessions=170 *.sga_target= 754288000 --大于668M *.undo_tablespace='UNDOTBS1'
3、以pfile文件啟動(dòng)instance
SQL> startup pfile= '/oracle/initudevasm.ora' ORACLE instance started. Total System Global Area 751595520 bytes Fixed Size 2257032 bytes Variable Size 603983736 bytes Database Buffers 142606336 bytes Redo Buffers 2748416 bytes Database mounted. Database opened.
4、以pfile文件為模板創(chuàng)建spfile文件
SQL> create spfile= '+DGDATA02/udevasm/spfileudevasm.ora' from pfile= '/oracle/initudevasm.ora' ; File created.
5、關(guān)閉實(shí)例,并重新啟動(dòng)spfile,因?yàn)樵谠趧?chuàng)建spfile時(shí)已經(jīng)默認(rèn)指定原來(lái)的路徑,并把原來(lái)的spfile文件覆蓋了,所以只要直接啟動(dòng)即可
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 751595520 bytes Fixed Size 2257032 bytes Variable Size 603983736 bytes Database Buffers 142606336 bytes Redo Buffers 2748416 bytes Database mounted. Database opened.
6、查詢修改后的sga大小
SQL> show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 720M sga_target big integer 720M
通過(guò)上面查詢則判斷已經(jīng)修改恢復(fù)成功
總結(jié):
1、當(dāng)數(shù)據(jù)庫(kù)發(fā)生因?yàn)橛嘘P(guān)參數(shù)文件異常無(wú)法啟動(dòng)正常時(shí),可以先把原理理解,然后通過(guò)創(chuàng)建pfile與spfile文件方式解決啟動(dòng)問(wèn)題。
2、要備份有關(guān)數(shù)據(jù)庫(kù)參數(shù)文件以防止誤操作導(dǎo)致數(shù)據(jù)庫(kù)無(wú)法正常啟動(dòng)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
oracle中not exists對(duì)外層查詢的影響詳解
這篇文章主要給大家介紹了關(guān)于oracle中not exists對(duì)外層查詢的影響,文中介紹的非常詳細(xì),需要的朋友可以參考下。2017-02-02VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(一)
剛剛接觸ORACLE的人來(lái)說(shuō),從那里學(xué),如何學(xué),有那些工具可以使用,應(yīng)該執(zhí)行什么操作,一定回感到無(wú)助。所以在學(xué)習(xí)使用ORACLE之前,首先來(lái)安裝一下ORACLE 10g,在來(lái)掌握其基本工具。俗話說(shuō)的好:工欲善其事,必先利其器。作為一個(gè)新手,我們還是先在VMware虛擬機(jī)里安裝吧。2014-08-08PL/SQL登錄Oracle數(shù)據(jù)庫(kù)報(bào)錯(cuò)ORA-12154:TNS:無(wú)法解析指定的連接標(biāo)識(shí)符已解決(本地未安裝Oracle
這篇文章主要介紹了PL/SQL登錄Oracle數(shù)據(jù)庫(kù)報(bào)錯(cuò)ORA-12154:TNS:無(wú)法解析指定的連接標(biāo)識(shí)符已解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Oracle9iPL/SQL編程的經(jīng)驗(yàn)小結(jié)
Oracle9iPL/SQL編程的經(jīng)驗(yàn)小結(jié)...2007-03-03詳解Oracle中的隱含參數(shù)_disable_logging
之前看到過(guò)一篇文章是介紹Oracle的一個(gè)內(nèi)部隱含參數(shù)_disable_logging,最近又看到有朋友論述這個(gè)參數(shù),所以下面這篇文章就來(lái)給大家介紹下關(guān)于Oracle中隱含參數(shù)_disable_logging的相關(guān)資料,需要的朋友可以參考下。2017-02-02oracle中函數(shù) trunc(),round(),ceil(),floor的使用詳解
這篇文章主要介紹了oracle中函數(shù) trunc(),round(),ceil(),floor的使用詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03