修改二進位制引數檔案(SPFILE)的方法之一

bfc99發表於2016-06-21
修改二進位制引數檔案(SPFILE)的方法之一

    在某些情況下,我們會因為使用alter system set ... 來修改初始化引數時出錯,而當下次重啟資料庫時,發現因為引數出錯而不能啟動資料庫的問題。這時,就需要修改二進位制引數檔案。以下記錄下修改二進位制引數檔案方法中的一種。


1、由於二進位制引數檔案(SPFILE)不能直接編輯,所以,需要將資料庫啟動到nomount狀態下,將二進位制的引數檔案輸出為可編輯的文字引數檔案(PFILE)。

[oracle@host11 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.3.0 Production on Tue Jun 21 09:39:05 2016


Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to an idle instance.


SQL> startup nomount

ORACLE instance started.


Total System Global Area  835104768 bytes

Fixed Size     2232960 bytes

Variable Size   721423744 bytes

Database Buffers   109051904 bytes

Redo Buffers     2396160 bytes

SQL> create pfile='/oradata2/test.ora' from spfile;       --意為將預設的二進位制引數檔案輸出為可編輯的文字引數檔案,儲存到/oradata2/test.ora中。


File created.


2、用VI或其它文字編輯工具,編輯/oradata2/test.ora中的內容並儲存。


3、將第1步已經載入到nomount狀態的資料庫關閉,並指定用剛剛編輯後的文字引數檔案啟動。將用該文字引數檔案重建二進位制的引數檔案。

SQL> shutdown

ORA-01507: database not mounted



ORACLE instance shut down.

SQL> startup nomount pfile='/oradata2/test.ora';       --指定用/oradata2/test.ora文字引數檔案啟動資料庫至NOMOUNT狀態。

ORACLE instance started.


Total System Global Area  835104768 bytes

Fixed Size     2232960 bytes

Variable Size   721423744 bytes

Database Buffers   109051904 bytes

Redo Buffers     2396160 bytes


SQL> create spfile from pfile='/oradata2/test.ora';    --指定用/oradata2/test.ora文字引數檔案重建二進位制的引數檔案


File created.


4、關閉資料庫,重新啟動資料庫(預設使用二進位制引數檔案啟動)

SQL> shutdown immediate

ORA-01507: database not mounted



ORACLE instance shut down.

SQL> startup

ORACLE instance started.


Total System Global Area  835104768 bytes

Fixed Size     2232960 bytes

Variable Size   721423744 bytes

Database Buffers   109051904 bytes

Redo Buffers     2396160 bytes

Database mounted.

Database opened.

SQL> show parameter pfile           --檢查確認是否是以我們期望的二進位制引數檔案啟動的資料庫


NAME      TYPE     VALUE

------------------------------------ ---------------------- ------------------------------

spfile      string     /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora



注意事項:

1、修改完文字引數檔案後,不能馬上去建立二進位制的引數檔案。必須要重啟資料庫,並指定用編輯後的文字引數檔案啟動。否則,會由於原二進位制引數檔案還在使用中,而不能建立二進位制引數檔案。

操作演示及報錯提示如下:

SQL> create spfile from pfile='/oradata2/test.ora';     

create spfile from pfile='/oradata2/test.ora'

*

ERROR at line 1:

ORA-32002: cannot create SPFILE already being used by the instance



2、在用文字引數檔案建立二進位制引數檔案時,必須指定文字引數檔案的路徑和名稱,否則,會使用預設的文字引數檔案來建立二進位制引數檔案。

操作演示及報錯提示如下

SQL> startup nomount pfile='/oradata2/test.ora';

ORACLE instance started.


Total System Global Area  835104768 bytes

Fixed Size     2232960 bytes

Variable Size   721423744 bytes

Database Buffers   109051904 bytes

Redo Buffers     2396160 bytes

SQL> create spfile from pfile;

create spfile from pfile

*

ERROR at line 1:

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file

'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'

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

相關文章