【引數】DB_nK_CACHE_SIZE引數設定與資料庫預設塊大小之間的限制

secooler發表於2011-08-17
  “DB_nK_CACHE_SIZE”引數的取值有很多種,有2k、4k、8k、16k、32k。在設定此引數時,我們需要注意的是,與資料庫預設的塊尺寸相同的那個引數是不能被設定的。例如,如果資料庫的預設塊尺寸是8k,那麼當我們嘗試設定“DB_8K_CACHE_SIZE”引數時便會遭遇報錯(報錯內容:ORA-00380: cannot specify db_8k_cache_size since 8K is the standard block size)。這是由於這個資訊已經體現在“db_cache_size”引數上。
  這裡給出具體直觀的體驗過程。

1.檢視資料庫預設的塊大小
sys@ora10g> show parameter db_block_size

NAME                      TYPE                 VALUE
------------------------- -------------------- -------------
db_block_size             integer              8192

此處顯示,資料庫的預設塊大小是8K。

2.檢視所有與cache size相關的引數
sys@ora10g> show parameter cache_size

NAME                      TYPE                 VALUE
------------------------- -------------------- -------------
db_16k_cache_size         big integer          0
db_2k_cache_size          big integer          0
db_32k_cache_size         big integer          0
db_4k_cache_size          big integer          0
db_8k_cache_size          big integer          0
db_cache_size             big integer          0
db_keep_cache_size        big integer          0
db_recycle_cache_size     big integer          0

這裡列出了2k、4k、8k、16k、32k多種可設定的引數資訊。

3.嘗試調整非資料庫預設塊大小對應的引數
sys@ora10g> alter system set db_16k_cache_size=1m ;

System altered.

sys@ora10g> show parameter cache_size

NAME                      TYPE                 VALUE
------------------------- -------------------- -------------
db_16k_cache_size         big integer          16M
db_2k_cache_size          big integer          0
db_32k_cache_size         big integer          0
db_4k_cache_size          big integer          0
db_8k_cache_size          big integer          0
db_cache_size             big integer          0
db_keep_cache_size        big integer          0
db_recycle_cache_size     big integer          0

調整成功,注意這裡的一個現象,設定的是1M大小,系統會自動將這個數值進行調整,調整的依據是:values greater than zero are automatically modified to be either the user-specified-size rounded up to granule size or 4MB * number of CPUs * granule size, whichever is greater

4.嘗試調整資料庫預設塊大小對應的引數
這裡我們資料庫的預設塊大小是8k,因此,這裡我們嘗試調整“db_8k_cache_size”這個引數。
sys@ora10g> alter system set db_8k_cache_size=1m;
alter system set db_8k_cache_size=1m
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-00380: cannot specify db_8k_cache_size since 8K is the standard block size

此處便遇到了“ORA-00380”錯誤提示。

5.小結
  當資料庫使用非標準塊表空間時,“DB_nK_CACHE_SIZE”引數將會派上用場,正所謂特殊場合特殊設定,因此在預設塊尺寸下我們毋須設定與之對應的cache引數。

Good luck.

secooler
11.08.17

-- The End --

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

相關文章