oracle 關於--引數檔案
引數檔案就是來定義資料庫啟動的時候一些相關配置,要根據引數檔案中的引數設定來分配記憶體,允許開啟程式,會話等等一些資訊。要想讓資料庫啟動,必須先讀取引數檔案。引數檔案中的引數,通常稱為初始化引數,簡稱為引數。
引數檔案區別
Linux 環境
引數檔案一共有兩大類: Pfile Spfile 檔案預設位置: Pfile: $ORACLE_HOME/dbs/init$ORACLE_SID.ora (9i 與之前版本,10g後就不用pfile)
Pfile:$ORACLE_BASE/admin/$ORACLE_SID/pfile/init.ora. Spfile:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora 區別: 其中pfile 是文字檔案 ,可以通過vi編輯
Spfile 是二進位制檔案,是伺服器引數,所以只能存放在伺服器端. 可以被RMAN備份 可以登入資料庫alter system|session set parameter_name=values scope=memory|spfile|both; 修改
Oracle啟動讀取引數檔案優先順序別
首先讀取spfile 讀取 spfile.ora 如果未找到
讀取init
|
引數檔案的轉化
Pfile與spfile是可以相互轉化的
建立內容為spfile的pfile Create pfile from spfile;(預設路徑$ORACLE_HOME/dbs/init$ORACLE_SID.ora) 可以指定pfile路徑 Create pfile =’/u01/app….’ from spfile; 建立spfile Create spfile from pfile; 指定路徑 Create spfile=’/u01/app/..’ from pfile=’/u01/app/..’;
在11g中可以直接轉化記憶體 Create spfile’/u01/app..’ from memory;
|
如何判斷當前資料庫使用的是那麼引數檔案啟動
SQL> show parameter service_name
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string fengzi SQL> select distinct isspecified from v$spparameter;
ISSPEC ------ TRUE FALSE
SQL>
如果第一個值為FALSE 就是使用pfile 如果第一個值為TRUE 就是使用的spfile
還有一種方法:修改一個正確的引數 SQL> alter system set sga_target=200m scope=spfile; alter system set sga_target=200m scope=spfile * ERROR at line 1: ORA-32001: write to SPFILE requested but no SPFILE specified at startup
SQL> 如果修改成功就為spfile啟動,報錯32001就為pfile啟動。 |
修改pfile引數使其生效(需要關閉資料庫)
[oracle@dongyang ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 24 13:15:18 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options 建立pfile SQL> create pfile from spfile;
File created.
SQL> [oracle@dongyang dbs]$ pwd /u01/app/oracle/product/10.2.0/db_1/dbs [oracle@dongyang dbs]$ ls ab_+ASM.dat init+ASM.ora initfengzi.ora orapw+ASM spfile+ASM.ora hc_+ASM.dat init.ora lk+ASM orapwfengzi hc_fengzi.dat initdw.ora lkFENGZI snapcf_fengzi.f [oracle@dongyang dbs]$ 編輯 pfile 修改引數 修改其中的某些值 [oracle@dongyang dbs]$ vi initfengzi.ora
fengzi.__db_cache_size=402653184 fengzi.__java_pool_size=16777216 fengzi.__large_pool_size=16777216 fengzi.__shared_pool_size=150994944 fengzi.__streams_pool_size=0 *.audit_file_dest='/u01/app/oracle/admin/fengzi/adump' *.background_dump_dest='/u01/app/oracle/admin/fengzi/bdump' *.compatible='10.2.0.1.0' *.control_file_record_keep_time=20 *.control_files='+DATA/fengzi/controlfile/current.269.842186993','+DATA/fengzi/controlfile/current.270.842186999' *.core_dump_dest='/u01/app/oracle/admin/fengzi/cdump' *.db_block_size=8192 *.db_create_file_dest='+DATA' *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='fengzi' *.db_recovery_file_dest='+DATA' *.db_recovery_file_dest_size=2147483648 *.dispatchers='(PROTOCOL=TCP) (SERVICE=fengziXDB)' *.job_queue_processes=10 *.log_archive_dest_1='LOCATION=+DATA/fengzi/' *.log_archive_format='%t_%s_%r.dbf' *.open_cursors=1000 *.pga_aggregate_target=199229440 *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_max_size=1074790400 關閉資料庫使用pfile啟動庫並更新spfile SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initfengzi.ora'; ORACLE instance started.
Total System Global Area 1090519040 bytes Fixed Size 2020160 bytes Variable Size 671091904 bytes Database Buffers 402653184 bytes Redo Buffers 14753792 bytes Database mounted. Database opened. SQL> create spfile from pfile; (因為引數檔案的優先順序別,所以修改pfile一定要更新spfile)
File created.
SQL>
|
修改spfile引數
alter system|session set parameter_name=values scope=memory|spfile|both sid=’sid’|’*’;
system---系統的
session—會話的
判斷該使用哪個修改需檢視檢視v$parameter
其中ISSES_MODIFIABLE為被alter session修改 ISSYS_MODIFIABLE為被 alter system 修改 值為TURE 可以被修改 值為FALSE 表示為靜態引數,不能直接修改到記憶體 需要scope=spfile修改 值為IMMEDIATE 表示為動態引數,可以直接修改到記憶體 可以scope=both 值為DEFERRED 表示為會話引數 只對當前例項生效 下次啟動無效 SQL> select name,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter; NAME ISSES ISSYS ------------------------------------------------------------------------------------------------- tracefile_identifier TRUE FALSE lock_name_space FALSE FALSE processes FALSE FALSE sessions FALSE FALSE timed_statistics TRUE IMMEDIATE timed_os_statistics TRUE IMMEDIATE resource_limit FALSE IMMEDIATE license_max_sessions FALSE IMMEDIATE license_sessions_warning FALSE IMMEDIATE cpu_count FALSE IMMEDIATE instance_groups FALSE FALSE event FALSE FALSE sga_max_size FALSE FALSE …………
|
memory--- 表示只修改當前例項記憶體 下次啟動不生效
spfile---表示 只對spfile修改 下次啟動才會生效 當前例項記憶體是沒有修改
both-----表示 當前例項記憶體與spfile都修改
其中both為預設值。
Sid=’sid’ 為指定例項名
Sid=’*’ 為所有例項
單例項狀態下無需使用,只有在RAC情況下可以選擇使用
例子:
首先要確認要修改引數的數值 SQL> show parameter sga_
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 1040M sga_target big integer 576M SQL> 嘗試預設scope=both方式修改 SQL> alter system set sga_max_size=1060m; alter system set sga_max_size=1060m * ERROR at line 1: ORA-02095: specified initialization parameter cannot be modified 當前的引數是初始化引數不能被修改。 只能改到引數檔案中使下次啟動生效 使用scope=spfile修改 SQL> alter system set sga_max_size=1060m scope=spfile;
System altered.
SQL> 使用scope=memory修改引數 SQL> show parameter pga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ pga_aggregate_target big integer 190M SQL> alter system set pga_aggregate_target=200m scope=memory;
System altered. 可以使用cope=both方式修改 SQL> alter system set pga_aggregate_target=200m scope=both;
System altered.
SQL> |
關於隱藏引數
檢視隱藏引數 SQL> desc x$ksppi Name Null? Type ----------------------------------------- -------- ---------------------------- ADDR RAW(8) INDX NUMBER INST_ID NUMBER KSPPINM VARCHAR2(80) KSPPITY NUMBER KSPPDESC VARCHAR2(255) KSPPIFLG NUMBER KSPPILRMFLG NUMBER KSPPIHASH NUMBER
SQL> desc x$ksppcv Name Null? Type ----------------------------------------- -------- ---------------------------- ADDR RAW(8) INDX NUMBER INST_ID NUMBER KSPPSTVL VARCHAR2(512) KSPPSTDVL VARCHAR2(512) KSPPSTDF VARCHAR2(9) KSPPSTVF NUMBER KSPPSTCMNT VARCHAR2(255)
SQL> select a.ksppinm,b.ksppstvl from x$ksppi a,x$ksppcv b where a.indx=b.indx;
KSPPINM -------------------------------------------------------------------------------- KSPPSTVL -------------------------------------------------------------------------------- _ash_sample_all FALSE
_ash_dummy_test_param 0
_threshold_alerts_enable 1
KSPPINM -------------------------------------------------------------------------------- KSPPSTVL -------------------------------------------------------------------------------- _addm_auto_enable TRUE
_addm_version_check TRUE
_addm_skiprules …… ……
|
刪除引數
刪除一個引數也就是將引數改回初始化設定的預設值。
如果使用的是pfile 直接編輯刪除就好了。
使用spfile SQL> show parameter pga
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ pga_aggregate_target big integer 200M SQL> alter system reset pga_aggregate_target scope=spfile sid='*';
System altered.
SQL> 刪除一個引數必須要指定sid=’*’。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29532781/viewspace-1130083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 引數檔案Oracle
- Oracle引數檔案解析——引數檔案分析獲取Oracle
- Oracle引數檔案解析——引數解析Oracle
- oracle的引數檔案Oracle
- Oracle 引數檔案(轉)Oracle
- Oracle引數檔案 各引數解釋Oracle
- 工具類,關於手工讀取 properties檔案引數
- Oracle RAC引數檔案管理Oracle
- Oracle引數檔案基礎Oracle
- oracle引數檔案pfile,spfileOracle
- oracle控制檔案及引數檔案問題Oracle
- oracle 關於--控制檔案Oracle
- Oracle RAC修改引數檔案位置Oracle
- Oracle 引數檔案(spfile和pfile)Oracle
- oracle 11G引數檔案之伺服器引數檔案(spfile)與例項啟動的關係Oracle伺服器
- oracle 關於--密碼檔案Oracle密碼
- oracle 關於-日誌檔案Oracle
- oracle 關於-資料檔案Oracle
- 關於oracle的控制檔案Oracle
- 關於oracle 密碼檔案Oracle密碼
- oracle11g引數檔案配置Oracle
- 部分Oracle 配置檔案引數含義Oracle
- Oracle體系結構-引數檔案Oracle
- 水煮Oracle——《Oracle pfile/spfile引數檔案詳解Oracle
- 引數檔案
- 引數檔案/口令檔案
- 《深入解析Oracle》第三章,引數及引數檔案Oracle
- oracle 資料庫兩種引數檔案Oracle資料庫
- ORACLE初始化引數檔案介紹Oracle
- Oracle基礎 07 引數檔案 pfile/spfileOracle
- SAP引數檔案
- 3.1.2.1 關於資料庫初始化引數檔案和啟動的關係資料庫
- 關於 Oracle 10g EXPDP 的 EXCLUDE 引數Oracle 10g
- oracle 控制檔案及引數檔案何時自動備份Oracle
- 關於資料庫檔案最大數資料庫
- [Oracle]由於初始化引數檔案修改錯誤導致oracle無法startupOracle
- 歸檔相關引數
- Oracle 9i初始化引數檔案Oracle