|
SGA_MAX_SIZE是調(diào)優(yōu)oracle9i非常重要的參數(shù),但也是并不是調(diào)的越大越好。相反,oracle9i對SGA_MAX_SIZE的最大值有一個限制:1.7G,超過該值就會造成實例無法啟動,系統(tǒng)報以下信息:
1.當你控制臺中設(shè)置完實例SGA最大值,點擊“應(yīng)用”后,oracle在“正在啟動數(shù)據(jù)庫”的過程中,提示:ORA-27102:out of memory,啟動失敗
2.當你第二次手動啟動實例時,系統(tǒng)會提示:ORA-27100:shared
memory realm already exists,最終還是啟動失敗。
解決該問題的思路:想辦法把SGA_MAX_SIZE的值修改到1.7G以下,然后再啟動
解決該問題需要用到從oracle9i開始才擁有的特性:spfile。
spfile是一個二進制文件,可以通過pfile來創(chuàng)建,而且可以通過rman備份。它管理的是初始化參數(shù);
spfile和pfile不同之處在于:
1.在oracle9i之前使用pfile存儲初始化參數(shù)設(shè)置,當oracle實例啟動時去讀取這些參數(shù),任何參數(shù)的修改都必須重啟實例才能生效。
2.使用spfile來管理初始化參數(shù),可以使用ALTER SYSTEM或者ALTER
SESSION來動態(tài)修改那些可動態(tài)修改的參數(shù),不必重啟實例立即生效。
3.除了第一次啟動數(shù)據(jù)庫時,oracle讀取的是pfile,然后根據(jù)pfile來創(chuàng)建spfile,從此啟動我們不在需要pfile。
4.pfile是文本文件,可以通過文本編輯器來修改,而spfile是二進制文件,用文本編輯器無法正常編輯。可以修改文本格式的pfile之后,用“create
spfile from pfile”命令將文本生成二進制的spfile
好,大概了解了spfile和pfile之后,我們的思路應(yīng)該很清晰了,下面是解決方法:
1.手動把實例的服務(wù)關(guān)閉(在服務(wù)里找到“OracleServiceSID”服務(wù),右擊選擇“停止”)
2.打開【程序】-【Oracle - OraHome92】-【Configuration and Migration
Tools】-【Administration Assistant for Windows NT
】
3.在該頁面中打開樹形結(jié)構(gòu),找到實例結(jié)點,右擊實例結(jié)點選擇“啟動/關(guān)閉選項”,取消“服務(wù)啟動時啟動歷程”選項。
4.右擊實例結(jié)點,點擊“啟動服務(wù)”。
5.運行中敲入“cmd”,進入sqlplus,然后通過命令創(chuàng)建可以修改的pfile文本文件:
C:\Documents
and Settings\Administrator>sqlplus /nolog
SQL*Plus:
Release 9.2.0.1.0 - Production on 星期四 9月 24 22:43:20 2009
Copyright (c)
1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn
/as sysdba
已連接到空閑例程。 SQL> create pfile='d:\zgznew.ora' from spfile; 文件已創(chuàng)建。
6.然后用文本編輯器打開zgznew.ora,找到SGA_MAX_SIZE參數(shù),并將它修改到1.7G以下,注意,參數(shù)值的單位是字節(jié)。修改好之后保存,然后再通過命令創(chuàng)建spfile二進制文件:
SQL> create
spfile from pfile='d:\zgznew.ora' ;
文件已創(chuàng)建。
7.此時再用startup命令啟動實例就可以成功了:
SQL>
startup
ORACLE 例程已經(jīng)啟動。 Total System Global
Area 529079780 bytes
Fixed Size 454116 bytes Variable Size 503316480 bytes Database Buffers 25165824 bytes Redo Buffers 143360 bytes 數(shù)據(jù)庫裝載完畢。 數(shù)據(jù)庫已經(jīng)打開。 |
|
|
來自: aaie_ > 《性能優(yōu)化》