ORACLE:scope=both|memery|spfile

關於ISSYS_MODIFIABLE影響修改:

當修改參數時,可以指定範圍,是修改到spfile,還是內存中.還是全部修改.

alter system set parameter name=parameter value scope=both|memery|spfile


ISSYS_MODIFIABLE   IMMEDIATE 修改後立即生效

                  FALSE     修改後重啓後生效

                  DEFERRED  會話重連後生效

205715400.jpg

當修改的參數ISSYS_MODIFIABLE=FALSE時,必須要scope=spfile,否則報錯,如下:

210014623.jpg


關於粒度大小影響修改:

1.把啓動用的spfile:spfileorclsp.ora改爲名spfileorclsp.ora.bak
2.alter system set db_cache_size=23M scope=spfile

 ( alter system set service_names='*******'  #默認設置scope=both)
     報錯:文件不存在.(Oracle並不對spfile鎖定,在運行的過程中,可以任意改名)
     可以理解,因爲spfile不存在,報錯.
3.alter system set db_cache_size=24M scope=both
  沒有報錯,按理來說,both表示即修改到spfile,還有memery中,既然是有修改到spfile,則應該也報錯纔對?重新啓動,發現db_cache_size還是原來的23M,不是24M
4.把spfile的文件名原改回來.記錄了時間,發現alter system set db_cache_size=23M scope=both時,並沒有對spfile進行讀寫,因爲此文件的修改日期沒有改變.
5.再試一次:alter system set db_cache_size=15M  scope=both,終於變了spfile的修改日期
總結:當範圍是scope=both時,會修改到memery中,但是不一定會修改到spfile中,是否修改與粒度有關,假如我的機器中的一個粒度大小爲4M,則在4M範圍內改變時,真正的值是不變的.也就是也只有修改量的幅度大於4M時,纔會去修改到spfile.
提示:scope=both是默認選項,也就是alter system set db_cache_size=24M scope=both與alter system set db_cache_size=24M的結果是一樣的.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章