SPFILE引數修改錯誤的解決辦法

football2006發表於2008-07-15
假如我們修改了以下引數:
SQL> alter system set sga_max_size=5G scope=spfile;

System altered.

那麼下次啟動,如果記憶體不足,資料庫是無法啟動的:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-27102: out of memory
在Unix、Linux上可以連線到資料庫,建立pfile:
SQL> create pfile from spfile;

File created.
如果在Window上,你手上還沒有任何可供參考的引數檔案,那麼很簡單,用記事本(Notepad)編輯一個檔案,包含如下兩行:
[oracle@test126 dbs]$ cat initeygle.ora
SPFILE='/opt/oracle/product/10.2.0/dbs/spfileeygle.ora'
sga_max_size=1073741824

第一行指向SPFILE,第二行寫上出錯的引數,給一個正確的值。這個值在例項啟動時會覆蓋之前錯誤的設定。
然後就可以使用這個檔案啟動資料庫例項了:
SQL> startup pfile=$ORACLE_HOME/dbs/initeygle.ora
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size 1223540 bytes
Variable Size 918553740 bytes
Database Buffers 146800640 bytes
Redo Buffers 7163904 bytes
Database mounted.
Database opened.

如果在Windows上,你只能透過服務起停資料庫,那麼Oracle預設的還是會尋找SPFILE,一個辦法是將SPFILE改名。
比如將spfileeygle.ora更改為spfileeygle2.ora,然後再pfile裡引用這個引數檔案,下次startup就不用指定pfile。
資料庫可以自動找到這個引數檔案,啟動資料庫。
[oracle@test126 dbs]$ mv spfileeygle.ora spfileeygle2.ora
[oracle@test126 dbs]$ cat initeygle.ora
SPFILE='/opt/oracle/product/10.2.0/dbs/spfileeygle2.ora'
sga_max_size=1073741824
資料庫可以自動使用PFILE啟動:
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size 1223540 bytes
Variable Size 918553740 bytes
Database Buffers 146800640 bytes
Redo Buffers 7163904 bytes
Database mounted.
Database opened.
SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /opt/oracle/product/10.2.0/dbs
/spfileeygle2.ora


-The End-

修改spfile之前最好先 create pfile from spfile。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8119050/viewspace-1007319/,如需轉載,請註明出處,否則將追究法律責任。

相關文章