1.spfile是oracle9i之後引入的,目的是提高系統安全性。在oracle8i下初始化引數檔案為文字檔案,可以使用文字編輯器進行編輯,當需要修改初始化引數時,需要在init.ora檔案中修改,再重新啟動資料庫例項。在oracle10g,引入了伺服器引數檔案(spfile),可以簡化初始化引數的管理。spfile檔案時乙個二進位制檔案,不能使用文字編輯器(雖然文字編輯器開啟後,能夠看到引數內容),否則可能造成oracle無法識別spfile檔案。
以下以我自己系統安裝的oracle與大叫討論這二者的用法:
d盤是oracle10g的主安裝目錄,分別在1d:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.3142010101424、2d:\oracle\product\10.2.0\db_1\database\initorcl.ora、3d:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora3個位置可以找到pfile、spfile的位置和spfile,其中1就是那個文字檔案pfile,2指的是3的位置(路徑),3就是哪個二進位制檔案spfile,如果spfile被損壞了,那麼重新啟動資料庫就會報找不到spfile的錯誤,這事需要通過pfile建立spfile:
create spfile from pfile='d:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.3142010101424';
並且重新啟動資料庫時用startup pfile='d:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.3142010101424'。
如果2被修改了路徑,那麼3的位置要做相應的調整,不然資料庫重啟啟動會暴同樣的錯誤。
如果1被損壞或刪除,資料庫可以照常啟動,但為了保險,我們還是重新建立乙個新的pfile:
create pfile='d:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.3142010101424' from spfile;
2.檢視系統是以pfile還是spfile 啟動:
select isspecified,count(*) from v$spparameter group by isspecified;
如果 isspecified裡有true,表明用spfile進行了指定配置
如果全為false,則表明用pfile啟動
3.使用spfile的好處:
spfile 改正了pfile管理混亂的問題,在多結點的環境裡,pfile會有多個image
啟動時候需要跟蹤最新的image。這是個煩瑣的過程。
用spfile以後,所有引數改變都寫到spfile裡面(只要定義 scope=spfile或both),引數配置有個權威的**。
4.從spfile獲取pfile
create pfile='d:pfilesid.ora' from spfile;
create pfile='d:pfilesid.ora' from spfile='spfile_location';
5.從pfile獲取spfile
create spfile from pfile='your_pfile_location'
create spfile='spfile_location' from pfile='your_pfile_location'
6.動態修改引數
alter system set parameter=value scope=spfile|both|memory
7.startup nomount的時候需要讀去spfile或pfile,兩者共存,spfile優先
8.試驗心得:
環境:window2003 oracle10g
問題描述:乙個資料庫例項,包含二個資料庫(test,orcl),因為設定錯誤的引數造成orcl資料庫spfile檔案損壞。通過create spfile生成檔案後,一次一只能啟動乙個資料庫。
解決過程:
場景:當你因為修改系統引數的原因,造成資料庫沒有辦法正常啟動,可以利用一下方式,通過重建spfile,快速解決該故障。
1.sql>conn /as sysdba
連線到空閒例程
2.sql> create spfile from pfile='d:\oracle\product\10.2.0\admin\orcl\pfile\init.or
a.052011184726';
重建spfile
3.sql>shutdown abort
關閉資料庫
4.sql>startup
重啟資料庫
至此問題解決。
錯誤修改spfile檔案處理
sql connect as sysdba 已連線。sql show sga total system global area 171966464 bytes fixed size 787988 bytes variable size 145488364 bytes database buffers...
SPFILE引數檔案損壞及解決
rac oracle 11g spfile引數檔案損壞,導致資料庫節點10.8.25.240起不來,且無法關閉與連線 原因是 恢復db recovery file dest size預設值0 操作導致,引數檔案內容如下 spfile data zdzrac spfilezdzrac.ora 解決辦法...
如何生成 a庫檔案
靜態庫及動態庫的建立 unix系統及各種軟體包為開發人員提供了大量的庫檔案。但一般情況下這些庫檔案還 不能足以滿足使用者的所有需求。開發人員大多會根據他們自己的開發 研究要求編寫 出許多函式。對於這些函式,如果都用在命令列中指定原始檔的方法同呼叫它們的程 序鏈結起來,雖然也是可以的,但也有一些缺點 ...