Oracle引數檔案解析——引數檔案分析獲取
Oracle引數檔案(Parameter File)是Oracle資料庫中一個重要的檔案組成部分,負責在啟動階段提供重要的引數支援。正確配置的引數檔案可以保證啟動過程順利進行。
1、從啟動過程看引數檔案
首先說說啟動過程中,引數檔案Parameter File的作用。Oracle啟動過程共分為三個階段:nomount、mount和open。其中,涉及到nomount階段的重要檔案就是引數檔案。在nomount階段,詳細配置資訊流如下:
ü 透過環境變數定位啟動例項物理位置和引數檔案位置
在資料庫例項停止的狀態下,使用者透過sqlplus登入空閒例項,主要認證方式是OS驗證或者密碼檔案Password File。此時,Oracle需要確定啟動的例項名稱和對應的Oracle程式檔案是什麼?解決的方法就是利用作業系統的環境變數。
在Linux系統上,我們從安裝時就要進行一系列的環境變數配置。如下:
//獲取以ORA開頭的環境變數
[oracle@oracle11g ~]$ env | grep ORA
ORACLE_SID=wilson
ORACLE_BASE=/u01
ORACLE_HOME=/u01/oracle
$ORACLE_SID、$ORACLE_BASE和$ORACLE_HOME是環境變數中最重要的三個。分別定義了啟動資料庫例項的名稱sid、對應Oracle產品軟體的基礎目錄base和Oracle資料庫安裝的Home路徑。在啟動sqlplus的時候,三個引數都會傳入到sqlplus的上下文環境。
在進行startup的時候,開始是nomount階段。Oracle首選去讀取三個環境變數值,找到$ORACLE_HOME對應的目錄結構。目前Oracle目錄結構大都遵循OFA(Optimal Flexible Architecture最佳靈活體系結構)。簡單來說,就是將各種配置檔案都遵守相同部署規範和儲存結構。在這個體系中,Linux/Unix描述引數檔案通常都在$ORACLE_HOME/dbs(NT體系下目錄為$ORACLE_HOME/database)目錄下。所以,如果可以確定$ORACLE_HOME目錄,就可以找到引數檔案儲存的目錄。
ü 確定引數檔名稱
由於歷史的原因,Oracle系統分別經歷過二進位制引數檔案和ASCII格式引數兩個時代。目前的Oracle版本,兩型別檔案都可以被支援。區別就是尋找的順序差異。
尋找的順序:首先是spfile
注意,此時就需要使用到$ORACLE_SID的環境變數。如果四個檔案都沒有找到,Oracle就會在nomount階段報錯。
ü 根據引數檔案Parameter File啟動例項
在nomount階段,Oracle是不會主動進行資料庫檔案的開啟和載入的。這個階段主要完成的就是資料庫例項instance建立,包括backgroud process建立和共享記憶體分配。
對nomount階段例項程式和共享記憶體建立的詳細解析,請參閱筆者《Oracle啟動三階段》(http://space.itpub.net/17203031/viewspace-684503)系列。
經過了nomount階段,Oracle實現了資料庫例項的啟動,共享記憶體分配。另一個重要方面就是引數檔案資訊的讀取。下面我們一起檢查下引數檔案中有什麼資訊呢?
2、獲取引數檔案資訊
目前的Oracle版本中,引數檔案主要是使用二進位制spfile檔案儲存的。直接進行修改引數檔案的手段主要是透過啟動Oracle之後,透過alter system/database之類的命令。本篇中,我們可以間接透過將二進位制格式檔案轉化為ASCII格式檔案,來檢視引數內容。
判斷資料庫啟動是否是透過SPFILE二進位制格式啟動,只需要檢視引數spfile。如果有value值,就表示啟動的資料庫是使用二進位制格式引數檔案。如果沒有,就是使用ASCII格式檔案。
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/oracle/dbs/spfilewilson.ora
之後我們到檔案系統中檢視該檔案。
//使用file命令檢視格式內容
[oracle@oracle11g test]$ file /u01/oracle/dbs/spfilewilson.ora
/u01/oracle/dbs/spfilewilson.ora: data //二進位制格式
使用create pfile命令將二進位制的spfile匯出為pfile檔案。
SQL> conn / as sysdba
Connected.
SQL> create pfile='/test/pfile.ora' from spfile;
File created.
//切換到檔案系統
[oracle@oracle11g ~]$ cd /test
[oracle@oracle11g test]$ ls -l
total 4
-rw-r--r-- 1 oracle oinstall 963 Jun 1 04:49 pfile.ora
[oracle@oracle11g test]$ file pfile.ora
pfile.ora: ASCII text
展開檔案pfile.ora,可以直接獲取到引數檔案中包括的所有引數。
[oracle@oracle11g test]$ cat pfile.ora
wilson.__db_cache_size=92274688
wilson.__java_pool_size=4194304
wilson.__large_pool_size=4194304
wilson.__oracle_base='/u01'#ORACLE_BASE set from environment
wilson.__pga_aggregate_target=142606336
wilson.__sga_target=272629760
wilson.__shared_io_pool_size=0
wilson.__shared_pool_size=155189248
wilson.__streams_pool_size=8388608
*.audit_file_dest='/u01/admin/wilson/adump'
*.audit_trail='DB'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl','/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/oradata'
*.db_domain=''
*.db_name='wilson'
*.db_recovery_file_dest='/u01/flash_recovery_area'
*.db_recovery_file_dest_size=3145728000
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'
*.memory_target=415236096
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_servers=2
*.undo_tablespace='UNDOTBS1'
相對於Oracle內部控制檔案包括的巨大引數數量,引數檔案Parameter File中包括了一些很核心的重要引數。
接下來,我們打算針對不同型別對這些引數進行分析和解釋。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-697141/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle引數檔案解析——引數解析Oracle
- Oracle 引數檔案Oracle
- Oracle引數檔案 各引數解釋Oracle
- oracle的引數檔案Oracle
- Oracle 引數檔案(轉)Oracle
- 《深入解析Oracle》第三章,引數及引數檔案Oracle
- 引數檔案
- 引數檔案/口令檔案
- Oracle RAC引數檔案管理Oracle
- Oracle引數檔案基礎Oracle
- oracle 關於--引數檔案Oracle
- oracle引數檔案pfile,spfileOracle
- oracle控制檔案及引數檔案問題Oracle
- Laravel 檔案上傳和獲取請求引數Laravel
- SAP引數檔案
- Oracle RAC修改引數檔案位置Oracle
- Oracle 引數檔案(spfile和pfile)Oracle
- 讀書筆記:深入解析oracle-第3章 引數及引數檔案筆記Oracle
- 引數檔案恢復
- 通過反射獲取上傳檔案方法引數中的檔名反射
- oracle11g引數檔案配置Oracle
- 部分Oracle 配置檔案引數含義Oracle
- Oracle體系結構-引數檔案Oracle
- 檔案的時間引數
- 靜態引數檔案配置
- 水煮Oracle——《Oracle pfile/spfile引數檔案詳解Oracle
- oracle 資料庫兩種引數檔案Oracle資料庫
- ORACLE初始化引數檔案介紹Oracle
- Oracle基礎 07 引數檔案 pfile/spfileOracle
- bash shell 讀取引數檔案常見方法
- oracle 控制檔案及引數檔案何時自動備份Oracle
- 冷備份之一查詢引數檔案及備份引數檔案
- Oracle 9i初始化引數檔案Oracle
- Nginx 配置檔案引數詳解Nginx
- MySQL引數檔案沒有生效MySql
- Redis配置檔案引數說明Redis
- redis配置檔案引數詳解Redis
- [轉]整理的SAP引數檔案