日期:2014-05-17  浏览次数:20824 次

关于修改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)