動態參數與靜態參數的判斷、修改


視圖 v$parameter 中 ISSYS_MODIFIABLE 列能夠查看參數屬性,ISSYS_MODIFIABLE ='IMMEDIATE'為動態參數、 ISSYS_MODIFIABLE ='FALSE' 為靜態參數 、 ISSYS_MODIFIABLE ='DERERRED' 為延遲參數(當前會話不生效,后續的會話有效) 。


1. 參數總數:
SQL> select count(*) from v$system_parameter where issys_modifiable='IMMEDIATE';


  COUNT(*)
----------
       353


SQL> select count(*) from v$system_parameter where issys_modifiable='FALSE';


  COUNT(*)
----------
       116


SQL> select count(*) from v$system_parameter where issys_modifiable='DEFERRED';


  COUNT(*)
----------
         8


2. 查看oracle參數是靜態或者是動態 (根據 ISSYS_MODIFIABLE 的值判斷)


select name,value,ISSYS_MODIFIABLE from v$parameter where name ='undo_retention' ;




3. ALTER SYSTEM 中 SCOPE=SPFILE/MEMORY/BOTH 的區別:


SCOPE = SPFILE
(此更改寫入初始化參數文件,更改將在下次啟動時生效。動態參數與靜態參數都一樣可以。也是靜態參數唯一可以使用的方式。)


SCOPE = MEMORY
(只在內存上修改,立即生效,但重啟后將不再生效,因為並沒有寫入到初始化參數文件。只適用於動態參數,靜態參數則不允許。)


SCOPE = BOTH.
(既寫入到初始化參數文件,也在內存上修改,立即生效。同樣也只適用於動態參數,靜態參數則不允許。)


4. 參數的修改


動態參數修改:


SQL> alter system set undo_retention=10800 scope=both;


System altered.


靜態參數修改,需要指定 scope=spfile 下次啟動:
SQL> alter system set processes=151 scope=both;
alter system set processes=151 scope=both
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=151 scope=spfile;


System altered.


注意:(scope=spfile 或者 scope=both 下)任何參數的修改都不能自動同步到pfile中去,只會寫進spfile,所以修改完參數后最好create pfile from spfile ,手動同步參數創建pfile,以保證下次通過pfile能夠正常啟動數據庫。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM