淺談oracle10G spfile與pfile(轉)

轉自:http://blog.csdn.net/onebigday/article/details/6108348http://www.linuxidc.com/Linux/2012-11/73715.htmjava

你們都知道,spfile是oracle 9i以後引入的,目的是提升系統安全性。在Oracle8i下初始化參數文件爲文本文件,能夠使用文本編輯器進行編輯,當須要修改初始化參數時,須要在init.ora文件中修改,再從新啓動數據庫實例。linux

在Oracle10g,引入了服務器參數文件(SPFILE),能夠簡化初始參數的管理。spfile文件是一個二進制文件,不能使用文件編輯器編輯(雖然經過文本編輯器打開後,可以看到參數內容),不然可能形成Oracle沒法識別SPFILE文件。數據庫

我下面以我本身系統安裝的ORACLE與你們討論這二者的用法,E盤是oracle10G的主安裝目錄,那麼分別在緩存

1) E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642   // pfile文件安全

2) E:/oracle/product/10.2.0/db_1/database/initorcl.ora         // 儲存spfile文件路徑服務器

3) E:/oracle/product/10.2.0/db_1/dbs/SPFILEORCL.ORA     // spfile文件多線程

 

 

1.若是spfile被損壞了,那麼重啓數據庫就會報找不到spfile的錯誤,這時須要經過pfile建立spfile:oracle

create spfile from pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642';dom

而且重啓數據庫時用:編輯器

startup pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642'。

2. 若是2被修改了路徑,那麼3的位置要作相應的調整,否則數據庫重啓會報一樣的錯誤。3. 若是1被損壞或刪除了,沒有關係,數據庫能夠照常啓動,但爲了保險,咱們仍是從新

建立一個pfile:

create pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642' from spfile;

問題:

1)建立spfile後,該文件方到哪了?

答:使用create spfile from pfile=’..’ , 生成的spfile文件(文件名仍是SPFILEORCL.ORA),但存放目錄發生變化,存放在2的那個目錄下,但是initorcl.ora內容卻沒有發生變化???

爲了使spfile恢復的原來的目錄下,指定目錄,使用以下命令:

Create spfile=’ E:/oracle/product/10.2.0/db_1/dbs/SPFILEORCL.ORA’

From pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642'

   show parameter spfile; // 查看spfile位置

2)如何查看oracle是以spfile仍是pfile啓動?

答:Select isspecified,count(*) from v$spparameter group by isspecified;

若是isspecified裏有true,代表用spfile進行了指定配置
若是全爲false,則代表用pfile啓動

3spfilepfile啓動oracle 有何區別?

 

附:

從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

SCOPE參數有三個可選值:

MEMORY:只改變當前實例運行;

SPFILE:只改變SPFILE的設置(若是修改的是靜態參數,則必須指定SCOPE=SPFILE,不然將會報ORA-02095錯。);

BOTH:改變實例及SPFILE(使用BOTH選項實際上等同於不帶參數的ALTER SYSTEM語句)。

 

 


Startup nomount的時候須要讀去spfile或pfile,二者共存,spfile優先

用startup(默認)啓動的順序

一、直接在默認路徑下查找spfileSID.ora --(spfile)

若是沒有再查找2

二、直接在默認路徑下查找spfile.ora      

若是沒有再查找3

三、直接在默認路徑下查找initSID.ora --(pfile) 

若是尚未 就會報錯……

 


強制用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文件

 

 

 

 

 

數據庫的初始化參數文件分析

內容                                                         說明

MTS                                               多線程服務器配置標識,Oracle 9i 裏稱爲共享服務器配置

dispatchers="(PROTOCOL=TCP) (SERVICE=testXDB)"      多線程服務器配置

Optimizer                                           最優化

hash_join_enabled=TRUE                                    優化程序選擇散列鏈接

query_rewrite_enabled=FALSE                           啓動或禁用對實體化視圖的查詢重寫

star_transformation_enabled=FALSE                  肯定基於成本的查詢轉換是否應用到星型查詢中

# Job Queues                                          做業列隊
job_queue_processes=10                                 做業列隊進程數

# Instance Identification                                  實例標識

instance_name=test                                                                   實例名

# Miscellaneous                                         其餘
aq_tm_processes=1

compatible=9.2.0.0.0                                     兼容性

# Security and Auditing                                   安全審覈

remote_login_passwordfile=EXCLUSIVE                指定操做系統或口令文件是否有檢查用戶口令的權限。
# Sort, Hash Joins, Bitmap Indexes                          排序, 散列聯接, 位圖索引

pga_aggregate_target=25165824                  指定PGA的最大內存量              

sort_area_size=524288                                    指定排序區使用的最大內存量

# Database Identification                                   數據庫標識SID

db_domain=domin

db_name=test

# File Configuration                                       文件配置

control_files=("C:oracleoradatatestCONTROL01.CTL", "C:oracleoradatatestCONTROL02.CTL",

"C:oracleoradatatestCONTROL03.CTL")  # Pools                                                 池

java_pool_size=33554432                                  java池用於存儲 Java 的方法、類定義和 Java 對象。

large_pool_size=8388608                                  大型池用於共享服務器的會話內存、並行執行的消息緩衝區以及RMAN 備份和恢復的磁盤 I/O 緩衝區。

shared_pool_size=50331648                                共享池用於存儲共享遊標、存儲的過程、控制結構和並行執行消息緩衝區等對象。
# Cursors and Library Cache                                遊標和庫高速緩存

open_cursors=300                                         指定一次會話可打開的遊標量

# System Managed Undo and Rollback Segments                系統管理的撤消和回退段

undo_management=AUTO                                  指定系統使用的撤消空間管理方式爲SUM(外部分配)
undo_retention=10800

undo_tablespace=UNDOTBS1                               指定回滾表空間

# Diagnostics and Statistics                                  診斷和統計

background_dump_dest=C:oracleadmintestbdump             後臺進程跟蹤文件

core_dump_dest=C:oracleadmintestcdump                   核心轉儲跟蹤文件
timed_statistics=TRUE                                     收集操做系統的計時信息(優化)

user_dump_dest=C:oracleadmintestudump                   用戶進程跟蹤文件

# Processes and Sessions                                   進程和會話

processes=150                                           同時鏈接到數據庫的用戶進程數量

# Redo Log and Recovery                                  重作日誌和恢復

fast_start_mttr_target=300                                 指定從單個            fast_start_mttr_target=300            指定從單個數據庫例程數據庫例程崩潰中恢復所需的時間
# Cache and I/O                                          高速緩存和I/O
db_block_size=8192                                       指定數據塊大小(數值不能改變)

db_cache_size=25165824                                   指定數據緩衝區的大小

db_file_multiblock_read_count=16   涉及一個徹底連續掃描的一次I/O操做中讀取塊的最大數量

相關文章
相關標籤/搜索