對Spfile之參數錯誤修改之后的解決辦法(FAQ)
2024-07-21 02:08:40
供稿:網友
眾所周知,在oracle9i中對初始化參數的管理引入了一個新的文件:spfile.這個參數是個二進制文件,手工對其進行編輯會出錯.可以采用alter system set ......的命令方式來對其進行修改.
不妙的是,有的時候,錯誤的修改了參數之后發現系統不能啟動,而粗心的用戶或者初級dba可能還沒有對該文件(或者參數文件的內容)進行備份.
這個時候如何解決呢?
下面是模擬出錯的場景:
sql> connect / as sysdba
已連接。
sql> show parameter spfile
name type value
-------------------------------- ---------- --------------------
spfile string %oracle_home%/database pfile%oracle_sid%.ora
#使用了spfile
sql> show parameter db_cache_size;
name type value
------------------------------------ ---------- ---------------
db_cache_size big integer 67108864
sql> alter system set db_cache_size=671088640000000 scope=spfile;
系統已更改。
#我們在上一步把一個參數進行“錯誤的調整”
sql> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
oracle 例程已經關閉。
sql> startup
ora-27102: out of memory
osd-00029: message 29 not found; product=rdbms; facility=sosd
o/s-error: (os 8) ?洢????????????????
sql>
#錯誤出現,不能啟動數據庫。
有的朋友可能看到過《9i新特點:spfile的使用》(參見下面的參考資料)這篇文章,其中有這樣一句話:
你可以在pfile鏈接到spfile文件,同時在pfile中定義其他參數,如果參數重復設置,后讀取的參數將取代先前的設置。
稍加注意這句話,發現正是解決我們目前問題的辦法:
手工創建一個pfile 類型的文件,內容如下:
spfile='d:/oracle/ora92/database pfiledemo.ora'
*.db_cache_size=67108864
在spfiledemo.ora文件中已經有一個db_cache_size 參數,后讀取的參數將取代先前的設置。
ok。
現在用這個參數啟動數據庫:
sql> startup pfile='d:/oracle/ora92/database/initdemotest.ora'
oracle 例程已經啟動。
total system global area 160505408 bytes
fixed size 454208 bytes
variable size 92274688 bytes
database buffers 67108864 bytes
redo buffers 667648 bytes
數據庫裝載完畢。
數據庫已經打開。
馬上要做的事情就是備份spfile 的內容:
sql> create pfile='d:/oracle/ora92/database/initdemo.ora' from spfile;
亡羊補牢,記得再修改初始化參數之前做好備份。
參考資料:
《9i新特點:spfile的使用》 (eygle大作,itpub 電子雜志第四期)
下載地址:http://www.itpub.net/magazine/itpub200304.rar
《oracle9i database administrator's guide release 2 (9.2)》
下載地址: http://tahiti.oracle.com
http://www.google.com
本文出處:
<a >http://www.csdn.net/develop/read_article.asp?id=22598</a>
網站運營seo文章大全提供全面的站長運營經驗及seo技術!