orcle pfile和spfile的區別和聯絡
pfile用於oracle8i,在oracle9i以上版本中也可以用,以文字形式存在,可以用vi編輯器對其中引數進行修改。檔案格式為initSID.ora;
spfile專用於oracle9i以上版本,以二進位制文字形式存在,不能用vi編輯器對其中引數進行修改。檔案格式為spfileSID.ora。如果要對spfile檔案進行修改,可以採用SQL語言:
SQL> ALTER SYSTEM SET PARAMETER = 'VALUES';進行修改。
如果不方便使用SQL語句進行操作,可以通過SQL語句:
SQL> create pfile='/home/oracle/initracdb.ora' from spfile; 這種方法將二進位制文字形式的spfile轉換成文字形式的pfile格式,然後再用vi編輯器對其中的引數進行直觀修改,以達到方便的目的。
檢視系統是以pfile還是spfile啟動
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified裡有true,表明用spfile進行了指定配置
如果全為false,則表明用pfile啟動
show parameter spfile有值,表從spfile啟動
使用SPfile的好處
Spfile改正了pfile管理混亂的問題,在多結點的環境裡,pfile會有多個image
啟動時候需要跟蹤最新的image。這是個煩瑣的過程。
用spfile以後,所有引數改變都寫到spfile裡面(只要定義scope=spfile或both),引數配置有個權威的來源。
檢視spfile location
show parameter spfile
從spfile獲取pfile
Create pfile='d:pfileSID.ora' from spfile;
Create pfile='d:pfileSID.ora' from spfile='spfile_location';
從pfile獲取spfile
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'
動態修改引數
alter system set parameter=Value scope=spfile|both|memory
Startup nomount的時候需要讀去spfile或pfile,兩者共存,spfile優先
強制用pfile啟動
SQL>startup pfile='Your_Pfile.ora'
startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force
通過pfile連線到spfile啟動
修改pfile檔案
oracle的初始化檔案分為spfilesid.ora、spfile.ora、initsid.ora,都在ora90/database下。
當oracle啟動時,初始化引數檔案的載入順序為:spfilesid.ora、spfile.ora、initsid.ora。
重新啟動資料庫,使用startup命令,Oralce將會按照以下順序在預設目錄中搜尋引數檔案:
a. spfile${ORACLE_SID}.ora
預設目錄
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
b. spfile.ora
預設目錄
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
c. init${ORACLESID}.ora
預設目錄
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database or
${ORACLE_HOME}\admin\db_name\pfile\
建立了spfile,重新啟動資料庫,Oracle會按順序搜尋以上目錄,spfile就會自動生效。
案例:
前幾天搭建ORACLE RAC for active dg ,因此需要修改spfile檔案裡面的內容,環境搭建完成以後,我想把spfile檔案還原成沒有搭建dg之前,我沒有通過alter system的方式來修改,下面就是我具體的操作步驟
第一步:通過現有的spfile檔案建立pfile,(因為spfile是二進位制檔案,不能直接修改,上面有提到)
SQL> create pfile='/home/oracle/initracdb.ora' from spfile;
第二步:修改建立出來的pfile檔案,具體修改內容略
第三步:通過修改後的pfile檔案將資料庫啟動的mount狀態
SQL> startup mount pfile=/home/oracle/initracdb.ora;
第四步:通過修改後的pfile重新建立spfile
注意:本人採用的是asm的儲存管理,所以spfile檔案在儲存上,要想通過修改後的pfile建立spfile,那麼就應該先刪除asm上的舊的spfile
ASMCMD> cd data/racdb
ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfileracdb.ora
ASMCMD>
通過pfile建立新的spfile
SQL> create spfile='+DATA/RACDB/spfileracdb.ora' from pfile='/home/oracle/initracdb.ora';
第五步:重啟資料庫例項
shutdown immediate;
startup;
第六步:檢視spfile檔案內容
可以將asm上的spfile檔案拷貝的本地,通過vi來檢視,也可以通過spfile建立pfile檔案來檢視。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28698327/viewspace-1063794/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的spfile和pfileOracle
- Oracle中的spfile和 pfileOracle
- Oracle中的pfile和spfileOracle
- tcp/ip和http的區別和聯絡TCPHTTP
- NET|Ref 和out 的區別和聯絡
- Instruction和Question的區別和聯絡Struct
- oracle spfile和pfile小結Oracle
- Oracle中User和Schema的區別和聯絡Oracle
- 詳解CALayer 和 UIView的區別和聯絡UIView
- http、socket、tcp的區別和聯絡?HTTPTCP
- SCADA和PLC的區別聯絡
- Session和Cookie的聯絡與區別SessionCookie
- CGI與Servlet的區別和聯絡Servlet
- Session和Cookie的區別與聯絡SessionCookie
- 探索Oracle pfile和spfile的祕密Oracle
- 轉:IDOCBAPIRFC區別和聯絡API
- java-介面和抽象類的聯絡和區別。Java抽象
- 中斷和異常,陷阱的區別和聯絡
- Jdk、Jre Jvm的區別和聯絡JDKJVM
- Linux和Ubuntu的區別與聯絡LinuxUbuntu
- has、ohasd、crs、cluster區別和聯絡
- javaSE中的==和equals的聯絡與區別Java
- Oracle 引數檔案(spfile和pfile)Oracle
- 【原創】oracle spfile和pfile小結Oracle
- 【知識點】 gcc和g++的聯絡和區別GC
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- 程式和執行緒的區別與聯絡執行緒
- HDFS 塊和 Input Splits 的區別與聯絡
- NUMA,MPP和HADOOP的區別與聯絡Hadoop
- 並行和併發的區別與聯絡並行
- volatile和synchronized的區別與聯絡[轉]synchronized
- malloc free與new delete的區別和聯絡delete
- C/C++引用和指標的聯絡和區別C++指標
- hive中order by、distribute by、sort by和cluster by的區別和聯絡Hive
- SAP UI5 和 OpenUI5 的區別和聯絡UI
- 程式、執行緒和協程之間的區別和聯絡執行緒
- 模電和數電在應用上的區別和聯絡
- 程序、執行緒和協程之間的區別和聯絡執行緒