發現問題
我使用的Oracle11g,當我敲下如下一段命令后,就讓我傻眼了。。
alter system set sga_max_size=960M scope=spfile;shutdown immediatestartup
此時的startup報錯了,錯誤為:
SQL> startupORA-00844: Parameter not taking MEMORY_TARGET into accountORA-00851: SGA_MAX_SIZE 985661440 cannot be set to more than MEMORY_TARGET 784334848.
原因分析
原來在Oracle11g中增加了memory_target
參數,sga_max_size
必須比memory_target
參數小。那么問題來了,此時我已經關閉Oracle了,spfile文件是二進制文件,又不能手動修改,那么我該怎么辦呢。。好捉急好捉急。。。
解決思路
通過pfile啟動Oracle–>在Oracle中通過create pfile='' from spfile=''
取出spfile的內容(pfile是可以手動修改的)–>修改新建的pfile–>以新的pfile啟動Oracle–>在Oracle中通過create spfile='' from pfile=''
獲得修改后的spfile
實戰
[oracle@wing ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon Feb 15 14:04:46 2016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle instance.SQL> create pfile='/home/oracle/pfile.new' from spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfilewingdb.ora';File created.SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options通過vi修改pfile.new文件中相應的參數(本文檔中是memory_target參數),修改后保存 [oracle@wing ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon Feb 15 14:04:46 2016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle instance.SQL> startup pfile='/home/oracle/pfile.new'ORACLE instance started.Total System Global Area 810090496 bytesFixed Size 2257520 bytesVariable Size 415239568 bytesDatabase Buffers 390070272 bytesRedo Buffers 2523136 bytesDatabase mounted.Database opened.SQL> create spfile='/u01/app/oracle/product/11.2.0/db_1/dbsspfilewingdb.ora' from pfile='/home/oracle/pfile.new';File created.SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options[oracle@wing ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Mon Feb 15 14:08:40 2016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle instance.SQL> SQL> startupORACLE instance started.Total System Global Area 810090496 bytesFixed Size 2257520 bytesVariable Size 415239568 bytesDatabase Buffers 390070272 bytesRedo Buffers 2523136 bytesDatabase mounted.Database opened.SQL> show parameter memory NAME TYPE------------------------------------ --------------------------------VALUE------------------------------hi_shared_memory_address integer0memory_max_target big integer800Mmemory_target big integer800Mshared_memory_address integer0SQL> show parameter sgaNAME TYPE------------------------------------ --------------------------------VALUE------------------------------lock_sga booleanFALSEpre_page_sga booleanFALSEsga_max_size big integer776Msga_target big integer740M# 至此Oracle使用新的spfile啟動成功,參數也得到相應的修改
總結
以上就是關于如何在Oracle關閉的情況下修改spfile里面參數的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答