簡介:
本文是關於oracle9i spfile的一篇文字,這是oracle9i的乙個新特性,雖然是很小的乙個改進,但是卻體現了oracle在安全性和可靠性上的乙個提高,
通過rman備份或者控制檔案的自動備份,oracle把spfile納入到整個備份恢復體系當中。
本文對spfile的使用和修改等作了詳細描述,對於其備份恢復也給出了相應的例子,希望大家能夠從這篇文章中受益,從oracle的這個新特性中獲得收益。
在oracle9i中,乙個新的檔案被引入-spfile,spfile用於伺服器端,管理初始化引數。
在9i以前,oracle使用pfile儲存初始化引數設定,這些引數在例項啟動時被讀取,任何修改需要重起例項才能生效,使用spfile你可以使用alter system
或者alter session來動態修改那些可動態修改的引數,所有更改可以立即生效,你可以選擇使更改只應用於當前例項還是同時應用到spfile。這就使
得所有對spfile的修改都可以在命令列完成,我們可以徹底告別手工修改初始化引數檔案,這就大大減少了人為錯誤的發生。
spfile是乙個二進位制檔案,可以使用rman進行備份,這樣實際上oracle把引數檔案也納入了備份恢復管理。
除了第一次啟動資料庫需要pfile(然後可以根據pfile建立spfile),我們可以不再需要pfile,oracle強烈推薦使用spfile,應用其新特性來儲存和
維護初始化引數設定。
一. 建立spfile
預設的,oracle使用pfile啟動資料庫,spfile必須由pfile建立,新建立的spfile在下一次啟動資料庫時生效,create spfile需要sysdba或者
sysoper的許可權:
語法如下:
create spfile[='spfile-name'] from pfile[='pfile-name']
例:sql> create spfile from pfile;
預設的,spfile建立到系統預設目錄
(unix: $oracle_home/dbs; nt: $oracle_home\database)
如果spfile已經存在,那麼建立會返回以下錯誤:
sql> create spfile from pfile;
create spfile from pfile
*error 位於第 1 行:
ora-32002: 無法建立已由例程使用的 spfile
這也可以用來判斷當前是否使用了spfile檔案。
然而意外的時,oracle並沒有向其他檔案一樣,在執行期間保持鎖定,讓我們作以下試驗:
sql> host rename spfileeyglen.ora spfileeyglen.ora.bak
sql> alter system set db_cache_size=24m scope=both;
系統已更改。
sql> host dir *.ora
驅動器 e 中的卷是 doc
卷的序列號是 980c-8eff
e:\oracle\ora9ir2\database 的目錄
2003-02-10 14:35 2,048 pwdeyglen.ora
1 個檔案 2,048 位元組
0 個目錄 150,347,776 可用位元組
sql> alter system set db_cache_size=24m scope=spfile;
alter system set db_cache_size=24m scope=spfile
*error 位於第 1 行:
ora-27041: 無法開啟檔案
osd-04002: 無法開啟檔案
o/s-error: (os 2) 系統找不到指定的檔案。
sql> host rename spfileeyglen.ora.bak spfileeyglen.ora
sql> alter system set db_cache_size=24m scope=spfile;
系統已更改。
sql>
估計oracle以後會想辦法來鎖定這個檔案。
二. 使用spfile
重新啟動資料庫,使用startup命令,oralce將會按照以下順序在預設目錄中搜尋引數檔案:
a. spfile$.ora
預設目錄
unix: $/dbs/
nt: $\database
b. spfile.ora
預設目錄
unix: $/dbs/
nt: $\database
c. init$.ora
預設目錄
unix: $/dbs/
nt: $\database or
$\admin\db_name\pfile\
建立了spfile,重新啟動資料庫,oracle會按順序搜尋以上目錄,spfile就會自動生效。
解除安裝Oracle 9i
1 停止所有oracle服務 2 刪除登錄檔中的所有關於oracle項 1 在hkey local machine software下,刪除oracle目錄 2 在hkey local machine system controlset001 services下,刪除所有oracle項 3 在hke...
oracle9i解除安裝
今天裝了oracle 9i,後來重灌遇到問題因為解除安裝未乾淨。幾經周折終於成功,現將解除安裝步驟供以後參考 1 停止服務 開啟 服務 然後停止所有oracle服務 2 刪除程式 3 刪除登錄檔中的所有關於oracle項 1 在hkey local machine software下,刪除oracl...
oracle9i解除安裝
今天裝了oracle 9i,後來重灌遇到問題因為解除安裝未乾淨。幾經周折終於成功,現將解除安裝步驟供以後參考 1 停止服務 開啟 服務 然後停止所有oracle服務 2 刪除程式 3 刪除登錄檔中的所有關於oracle項 1 在hkey local machine software下,刪除oracl...