重庆思庄Oracle、Redhat认证学习论坛

标题: DB_nK_CACHE_SIZE参数设置与数据库默认块大小之间的限制 [打印本页]

作者: 刘泽宇    时间: 2023-1-8 17:54
标题: DB_nK_CACHE_SIZE参数设置与数据库默认块大小之间的限制
"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相关的参数​

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.尝试调整非数据库默认块大小对应的参数​

alter system set db_16k_cache_size=1m ;

System altered.

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参数。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2