首页 > 数据库 > Oracle > oracle 大页配置详细介绍
大页的作用:
防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。
只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)
调整数据库sga/pga大小:
alter system set sga_max_size=<n>G scope=spfile sid='*';
alter system set sga_target=<n>G scope=spfile sid='*';
Alter system set pga_aggregate_target=xxxx scope=spfile sid='*';
关闭AMM管理:
先设0
alter system set memory_target=0 scope=spfile sid='*';
alter system set memory_max_target=0 scope=spfile sid='*';
再置空参数
alter system reset memory_target scope=spfile sid='*';
alter system reset memory_max_target scope=spfile sid='*';
重启数据库生效:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
必须assm管理才可以配置大页
1. 查看大页使用情况
# grep Huge /proc/meminfo
HugePages_Total: 306 (总共306页)
HugePages_Free: 306 (空闲306页,已使用306-306=0页)
HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)
HugePages_Surp: 0
Hugepagesize: 2048 kB (每页2M,固定值)
大页总大小=HugePages_Total*Hugepagesize
2. 脚本计算大页数量
LINUX6语句
运行MOS 401749.1提供的hugepages_settings.sh
---------------
/etc/sysctl.conf 下
vm.nr_hugepages 值
调整过sga后需要重新计算,如果新加了一个实例也要重新计算
例子:
vi /etc/sysctl.conf
vm.nr_hugepages=1496
执行sysctl -p 命令使以上设置生效
LINUX7语句
metalink( 文档 ID 401749.1)
3. 设置内存锁
memlock 值应该为:大页数适当增加一些* Hugepagesize。
查询Hugepagesize值:grep Huge /proc/meminfo |grep Hugepagesize
(1496+5)* 2048= 3074048
# vi /etc/security/limits.conf
oracle soft memlock 3074048
oracle hard memlock 3074048
数量大于脚本算出的值一些,比如算出 700写800
vi /etc/security/limits.conf
oracle soft memlock xxx
oracle hard memlock xxx
4. 重启库,再次查看
SQL> shutdown immediate
SQL> startup
最好是重启服务器!
5. 再次查看
grep Huge /proc/meminfo
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980685/viewspace-3004640/ ,如需转载,请注明出处,否则将追究法律责任。