oracle 學習總結篇二: 伺服器引數檔案spfile的使用

paulyibinyi發表於2008-03-07

在Oracle8i和以前的版本中,啟動後,該資料庫的init.ora檔案必須在客戶機上。如果希望遠端啟動一個資料庫例項,必須得有一個init.ora檔案的本地複製,這是因為執行在客戶機上的Oracle 資料庫後端程式會處理init.ora檔案的內容。這使得在網路中重新啟動一個資料庫多少有點困難。而且init.ora檔案是文字檔案,任何引數修改都要重新啟動資料庫,這或多或少對業務有點影響

在Oracle9i中,SPFILE檔案以二進位制格式儲存於伺服器自身。遠端啟動資料庫不再需要建立本地複製(儘管如果願意的話,你仍然可以那麼做)。這也意味著,使用ALTER SYSTEM命令做出的改變當伺服器重啟時可以仍然有效,所以不再對init.ora檔案進行更新。 而且使用alter system 命令時對某些引數不重啟也生效

oracle 啟動資料庫對引數檔案的搜尋順序為 spfile_sid.ora---&gtspfile.ora----&gtinit_sid.ora

存放路徑  windows 下 oracle_home/ora92/database/下面

                  unix/linux 下  oracle_home/ora92/dbs/下面

在建立資料庫指令碼中 可以看到以下一句

  create spfile='D:\oracle\ora92\database\spfiledbca.ora' FROM pfile='D:\oracle\admin\dbca\scripts\init.ora';

    作用就是由文字檔案引數轉變成伺服器引數檔案  以二進位制格式儲存

 建立語法為:

  create spfile='filename'  from pfile='filename';

  create spfile  from pfile;

也可以從spfile檔案內容建立pfile 檔案

  create pfile='filename' from spfile='filename';

 create pfile='filename' from spfile   --從預設位置;

 create pfile  from spfile     --生成的引數檔案放在預設目錄下

如果想改變系統引數,可以使用ALTER SYSTEM命令的擴充套件語法格式來設定引數:
ALTER SYSTEM set parameter = valueI
SCOPE = MEMORY | SPFILE | BOTH;

SCOPE子句使你可以設定一個系統引數:
MEMORY:只對當前的資料庫產生影響,重新啟動後將不再有效。

SPFILE:這一選項不會改變當前的引數設定,但它會修改SPFILE檔案,所以重新啟動後,引數將會生效。

BOTH:它會改變當前設定並更新SPFILE。

 

相關檢視名稱

select * from v$spparameter;
select * from v$parameter;
select * from v$parameter2 ;

可以查到哪些引數是立即生效,哪些是需要重新啟動資料庫才生效的

C:\Documents and Settings\Paul Yi>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Mar 7 14:22:12 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> alter system set processes=400;
alter system set processes=400
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=400 scope=spfile;

System altered.

--需要重啟才生效


SQL> alter system set workarea_size_policy=auto;

System altered.

SQL>

--不需要重啟 立即生效

 

取消某個引數的值 用以下語法

alter system reset  parameter sid=’sid|*’

例子

alter system reset buffer_pool_keep scope = spfile sid='*';

 

 

 

 


 




 

         

 



 

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

相關文章