oracle基礎知識(六)----spfile與pfile

一, 認識參數文件

       Oracle中的參數文件是一個包含一系列參數以及參數對應值的操做系統文件。它們是在數據庫實例啓動時候加載的,決定了數據庫的物理 結構、內存、數據庫的限制及系統大量的默認值、數據庫的各類物理屬性、指定數據庫控制文件名和路徑等信息,是進行數據庫設計和性能調優的重要文件。java

  1,spfile

     這個是oracle9i以後映入的概念:sql

      SPfileServer Parameter File,服務器參數文件)是基於二進制格式的參數文件,含有數據庫及例程的參數和數值,但不能用文本編輯工具打開。能夠再sql命令裏面更改,或者二進制編寫.spfile 默認的名稱爲「spfile+例程名.ora」文件路徑:$ORACLE_HOME/dbs 以二進制文本形式存在.數據庫

    動態修改參數的模式 緩存

alter system set parameter=Value scope={spfile|both|memory} 

    SPfile 三種模式:安全

      scope=both       當即並永久生效,(默認模式)服務器

    對參數的修改同時記錄在內存中和服務器端的初始化參數文件中。爲默認使用值。網絡

      scope=spfile     下次啓動才能生效。多線程

    對參數的修改僅記錄在服務器初始化參數文件中。該選項同時適用於動態與靜態的初始化參數。修改後的參數只有下一次啓動數據庫時更改纔會生效。oracle

      scope=memory     當即生效但下次啓動時失效app

    對參數的修改記錄在內存中,對於動態初始化參數,更改當即生效。修改並不會被記錄在服務器端的初始化參數中。下一次啓動數據庫時更改失效,不能用於靜態初始化參數。

  2,pfile

    初始化參數文件(Initialization Parameters Files),Oracle 9i以前,ORACLE一直採用pfile方式存儲初始化參數,pfile 默認的名稱爲「init+例程名.ora」文件路徑:$ORACLE_HOME/dbs,這是一個文本文件,可用查看內容

二,區別體現

  01,Spfile 對比pfile來講

      能夠用RMAN來備份spfile,可是不能備份pfile

      減小了人爲的錯誤。spfile由服務器來管理,任何參數改變被接受前都會通過嚴格處理

      消除了配置問題,若是遠程啓動oracle服務器,再也不須要一個本地的pfile

       不能修改參數文件,二進制形式

         裏面有動態參數,能夠在線修改,而不用重啓oracle;

  02,pfile優勢

      能夠使用文本編輯器進行編輯

      遠程拷貝,拖過來改配置就能繼續用

  03,你們的對比

    pfile文件能夠用文本編輯器打開手工配置、而spfile不行,只能經過SQL命令在線修改。

    修改文件spfile支持在線修改,pfile只能從新啓動讀取

三, 啓動讀取順序 

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

      若是沒有再查找2

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

      若是沒有再查找3

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

      若是尚未 那就會報錯了

   順序: spfileSID.ora----->spfile.ora------>initSID.ora

    固然也有指定pfile啓動

startup pfile=$ORACLE_HOME/dbs/initSID.ora

 

四,相互轉換與查看

    查看spfile或者pfile的位置信息

 1 SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';
 2 
 3 NAME
 4 --------------------------------------------------------------------------------
 5 VALUE
 6 --------------------------------------------------------------------------------
 7 DISPLAY_VALUE
 8 --------------------------------------------------------------------------------
 9 spfile
10 /u01/app/oracle/product/11.2.0/db_1/dbs/spfileoracle01.ora
11 /u01/app/oracle/product/11.2.0/db_1/dbs/spfileoracle01.ora
View Code
1 SQL> show parameter pfile
2 
3 NAME                     TYPE     VALUE
4 ------------------------------------ ----------- ------------------------------
5 spfile                     string     /u01/app/oracle/product/11.2.0
6                          /db_1/dbs/spfileoracle01.ora
View Code

    查看啓動數據庫的類型

1 select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';
View Code
主庫:
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';

DECODE
------
spfile

從庫:
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';

DECODE
------
pfile

    相互建立:

SQL> create pfile from spfile ;

File created.

SQL>
或者

SQL> create spfile from pfile ;

File created.

SQL>

格式:
CREATE SPFILE=’spfilename’ FROM PFILE=’pfilename’

五,spfile 動態修改

  scope=both: 當即生效

 1 SQL> show parameter pga;
 2 
 3 NAME                     TYPE     VALUE
 4 ------------------------------------ ----------- ------------------------------
 5 pga_aggregate_target             big integer 798M
 6 
 7 SQL> alter system set pga_aggregate_target = 900m scope=both;
 8 System altered.
 9 SQL> show parameter pga;
10 
11 SQL> show parameter pga;
12 
13 NAME                     TYPE     VALUE
14 ------------------------------------ ----------- ------------------------------
15 pga_aggregate_target             big integer 900M

    靜態文件的話就不行了:

  報錯:

    * ERROR at line 1:

    ORA-02095: specified initialization parameter cannot be modified

六,pfile 文件參數詳解

  

 1 # Cache and I/O     高速緩存和 I/O
 2 
 3 db_block_size=8192   指定數據塊大小爲8KB
 4 db_cache_size=33554432    指定數據緩衝區爲32MB,該值越大,能夠減小對數據庫文件的I/O次數,提升效率
 5 db_file_multiblock_read_count=16
 6 
 7 
 8 # Cursors and Library Cache   遊標和庫高速緩存
 9 
10 open_cursors=300   指定一個會話一次能夠打開的遊標的最大數量爲300,應將該值設置得足夠高,這樣才能防止應用程序耗盡打開的遊標
11 
12 
13 # Database Identification   數據庫標識
14 
15 db_domain=""   數據庫域名爲mynet,加上數據庫名稱db_name構成全局數據庫名稱
16 db_name=oracle01   數據庫名稱爲myoracle
17 
18 
19 # Diagnostics and Statistics    診斷和統計
20 
21 background_dump_dest=/opt/oracle/admin/cicro/bdump   後臺進程跟蹤文件目錄
22 core_dump_dest=/opt/oracle/admin/cicro/cdump         核心轉儲跟蹤文件目錄
23 timed_statistics=TRUE                                收集操做系統的計時信息,這些信息可被用來優化數據庫和 SQL 語句
24 user_dump_dest=/opt/oracle/admin/cicro/udump         用戶進程跟蹤文件目錄
25 
26 
27 # File Configuration
28 control_files=("/opt/oracle/oradata/cicro/control01.ctl", "/opt/oracle/oradata/cicro/control02.ctl", 
29 
30 "/opt/oracle/oradata/cicro/control03.ctl")    指定控制文件的路徑及文件名
31 
32 
33 # Instance Identification   網絡註冊
34 
35 instance_name=test   例程名稱爲test
36 
37 
38 # Job Queues
39 job_queue_processes=10
40 
41 
42 # MTS 多線程服務器配置標識,在Oracle 9i裏稱爲共享服務器配置
43 
44 dispatchers="(PROTOCOL=TCP) (SERVICE=testXDB)"   多線程服務器配置
45 
46 # Miscellaneous   其餘
47 
48 aq_tm_processes=1
49 compatible=9.2.0.0.0   兼容版本9.2.0
50 
51 
52 # Optimizer
53 
54 hash_join_enabled=TRUE
55 query_rewrite_enabled=FALSE
56 star_transformation_enabled=FALSE
57 db_name=cicro
58 
59 
60 
61 # Pools 池
62 
63 java_pool_size=83886080    指定Java存儲池的大小爲32MB,用於存儲 Java 的方法、類定義和Java對象。
64 large_pool_size=16777216   指定大型池的大小爲1MB, 用於共享服務器的會話內存、並行執行的消息緩衝區以及RMAN備份和恢復的磁盤 I/O 緩衝區。
65 shared_pool_size=83886080  指定共享池的大小爲32MB,用於存儲共享遊標、存儲的過程、控制結構和並行執行消息緩衝區等對象。較大的值能改善多用戶系統的性能.
66 
67 # Processes and Sessions 進程和會話
68 
69 processes=150 指定可同時鏈接到一個Oracle Server上的操做系統用戶進程的最大數量爲150
70 
71 # Redo Log and Recovery   重作日誌和恢復
72 
73 fast_start_mttr_target=300   指定從單個數據庫例程崩潰中恢復所需的時間爲300秒
74 
75 # Security and Auditing 安全與驗證
76 
77 remote_login_passwordfile=EXCLUSIVE   指定操做系統或口令文件是否具備檢查用戶口令的權限。設置爲EXCLUSIVE, 將使用數據庫的口令文件對每一個具備權限的用戶進.
78 
79 
80 # Sort, Hash Joins, Bitmap Indexes   排序, 散列聯接, 位圖索引
81 
82 pga_aggregate_target=25165824
83 sort_area_size=524288   指定排序區使用的最大內存量爲512KB。排序完成後, 各行將返回, 而且內存將釋放。增大該值能夠提升大型排序的效率。
84 
85 
86 # System Managed Undo and Rollback Segments   系統管理的撤消和回退段
87 
88 undo_management=AUTO   指定系統使用的撤消空間管理方式爲SMU 方式,在SMU方式下, 撤消空間會像撤消表空間同樣在外部分配.
89 undo_retention=10800   
90 undo_tablespace=UNDOTBS1   指定回滾表空間爲UNDOTBS
相關文章
相關標籤/搜索