关于修改spfile中参数的疑问,请大家帮我看看
今天在做试验(ORACLE 9.2.0.1.0)的时候发现一个奇怪的问题,当我用alter system set large_pool_size=409600 scope=both 修改后,发现v$spparameter中的large_pool_size=409600,而v$parameter中large_pool_size=4194304,我认为这两个地方的值应该是一样的吧,不知道这个4194304是怎么得出来得。请大家帮我看看到底是什么原因啊!
ps:db_block_size=8192
------解决方案--------------------idle> select * from v$version;
BANNER
----------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
idle> select sid, name, value from v$spparameter where name like '%pool_size% ';
SID NAME VALUE
---------- ---------- ----------
* shared_poo 50331648
l_size
* large_pool 8388608
_size
* java_pool_ 33554432
size
* global_con
text_pool_
size
* olap_page_
pool_size
idle> select name, value from v$parameter where name like '%large_pool_size% ';
NAME VALUE
---------- ----------
large_pool 8388608
_size
idle> alter system set large_pool_size=409600 scope=both
2 ;
系统已更改。
idle> select name, value from v$parameter where name like '%large_pool_size% ';
NAME VALUE
---------- ----------
large_pool 4194304
_size
idle> select sid, name, value from v$spparameter where name like '%pool_size% ';
SID NAME VALUE
---------- ---------- ----------
* shared_poo 50331648
l_size
* large_pool 4194304
_size
* java_pool_ 33554432
size
* global_con
text_pool_
size
* olap_page_
pool_size
都是4194304(4MB)啊,没有出现楼主的409600(400K),large_pool_size存在最小值(600K)的,楼主修改的那个值太小了,数据库会根据granule的大小动态进行调整的,而SGA <=128的系统中,默认granule的大小就是4MB,那么动态往上调整到一个granule的大小,就是4194304(4MB)