關於靜態引數和動態引數

達芬奇的夢發表於2017-03-18
Oracle 引數型別介紹
首先 配置檔案:
pfile(引數檔案),spfile(伺服器配置檔案) 在以前8i 以前的版本 是不可以動態的修改 系統引數的 但是 從9i 過後 就開始有了 spfile 提供給 管理員 更方便的 修改系統引數 兩個檔案 區別: pfile 是 文字檔案 可以透過 文字編輯器 編輯引數 而spfile是二進位制檔案 最好不要用文字編輯軟體編輯 內容,系統startup 預設 是讀取spfile 。
檢視是用什麼檔案啟動:
方法一:
SQL> select distinct ISSPECIFIED from v$spparameter;
ISSPEC
------
FALSE
TRUE
如果只有FALSE,使用的是PFILE,
如果有TRUE,說明用的是SPFILE
方法二:
SQL>show parameters spfile
如果有值說明使用spfile啟動,反之pfile
如果要透過spfile建立pfile,可以使用命令:
create spfile(pfile) from pfile(spfile)(=' ')
啟動時可以指定pfile或者spfile:
SQL> startup pfile='/home/jarodwang/my_pfile.ora';
檢視介紹:
引數的相關資訊儲存在檢視v$system_parameter中。
V$SYSTEM_PARAMETER
Displays information about the initialization parameters that are currently in effect for the instance. A new session inherits parameter values from the instance-wide values.
Column
Datatypes
Description
NUM NUMBER Parameter number
NAME VARCHAR2(64) Name of the parameter
TYPE NUMBER Parameter type
VALUE VARCHAR2(512) Instance-wide parameter value
ISDEFAULT VARCHAR2(9) Indicates whether the parameter is set to the default value (TRUE) or the parameter value was specified in the parameter file (FALSE)
ISSES_MODIFIABLE VARCHAR2(5) Indicates whether the parameter can be changed with ALTER SESSION (TRUE) or not (FALSE)
ISSYS_MODIFIABLE VARCHAR2(9) Indicates whether the parameter can be changed with ALTER SYSTEM and when the change takes effect
ISMODIFIED VARCHAR2(8) Indicates how parameter was modified. If an ALTER SYSTEM was performed, the value will be MODIFIED
ISADJUSTED VARCHAR2(5) Indicates whether Oracle adjusted the input value to a more suitable value (for example, the parameter value should be prime, but the user input a non-prime number, so Oracle adjusted the value to the next prime number)
DESCRIPTION VARCHAR2(64) Description of the parameter
UPDATE_COMMENT VARCHAR2(255) Comments associated with the most recent update
根據v$system_parameter裡面的issys_modifiable可以查出哪些是動態引數,哪些是靜態引數,命令如下:
SQL> select count(*) from v$system_parameter where issys_modifiable='FALSE';
SQL> select count(*) from v$system_parameter where issys_modifiable='IMMEDIATE';
SQL> select count(*) from v$system_parameter where issys_modifiable='DEFERRED';
上面的 結果 查詢出了 靜態引數是 107個 動態引數是144+7=151個
三者的修改使用範圍:
引數型別---SCOPE屬性 spfile memory both deferred
靜態引數 可以,重啟伺服器生效 不可以 不可以 不可以
動態引數(issys_modifiable為immediate) 可以,重啟伺服器生效 可以,立即生效,重啟服務失效 , 可以,立即生效,重啟伺服器仍然有效果 不可以
動態引數(issys_modifiable為deferred) 可以,重啟伺服器生效 不可以 不可以 可以
靜態引數 必須指定為scope
動態引數issys_modifiable為IMMEDIATE不加scope預設的是 both,而動態引數issys_modifiable為DEFERRED的必須加上scope=spfile 或者 加上derferred。
演示:
1. 靜態引數:
SQL> alter system set processes=151;
alter system set processes=151
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes=151 scope=spfile;
System altered.
2. 動態引數(immediate)
SQL> alter system set log_archive_dest_1=’ LOCATION=/u02/oradata/arch’;
System altered.
3. 動態引數(deferred)
deferred指定系統修改是否只對以後的會話生效(對當前建立的會話無效,包括執行此修改的會話)。預設情況下,ALTER SYSTEM命令會立即生效,但是有些引數不能“立即”修改,只能為新建立的會話修改這些引數。
SQL> select name from v$system_parameter where issys_modifiable='DEFERRED';
backup_tape_io_slaves
audit_file_dest
object_cache_optimal_size
object_cache_max_size_percent
sort_area_size
sort_area_retained_size
olap_page_pool_size
SQL> alter system set sort_area_size = 65536;
alter system set sort_area_size = 65536
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this
option
SQL> alter system set sort_area_size = 65536 deferred;
System altered.
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2135604/,如需轉載,請註明出處,否則將追究法律責任。

相關文章