- 论坛徽章:
- 0
|
本帖最后由 huowz 于 2018-05-07 22:40 编辑
数据库是11i,内存8G。
现在这几个参数是这样的:
memory_max_target 804M
memory_target 804M
sga_max_size 804M
sga_target 0
db_block_buffers 0
db_cache_advice ON
db_cache_size 0
执行如下sql:
SELECT
1 - (
phy.
VALUE
/ (cur. VALUE + con. VALUE)
) "HIT RATIO"
FROM
v$sysstat cur,
v$sysstat con,
v$sysstat phy
WHERE
cur. NAME = 'db block gets'
AND con. NAME = 'consistent gets'
AND phy. NAME = 'physical reads';
结果只有0.07。
查看内存占用率:
[oracle@oracledb etc]$ free
total used free shared buffers cached
Mem: 8167928 7889668 278260 0 86332 7116336
-/+ buffers/cache: 687000 7480928
Swap: 4124664 0 4124664
看起来有大量内存闲置,
准备执行以下操作:
alter system set MEMORY_MAX_TARGET=4000m scope=spfile ;
alter system set MEMORY_TARGET=4000m scope=spfile ;
alter system set sga_max_size=3500m scope=spfile;
这样行不行?还有没有什么别的需要注意的?
这些参数是用命令改了,然后重启数据库就行了么?
果然还有要注意的,没有改/dev/shm分区大小,结果报错:ORA-00845: MEMORY_TARGET not supported on this system参考https://www.linuxidc.com/Linux/2012-12/76976.htm这里,改成8G,再启动好了。
查看缓冲区命中率,达到95%,完成既定目标!
|
|