记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3864字,纯文字阅读大概需要6分钟。
内容图文
![记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存](/upload/InfoBanner/zyjiaocheng/525/b3a7218bd3fe4cc19cdd64a41bad23cf.jpg)
11g特性的内存管理需要用到/dev/shm共享文件系统,且要求/dev/shm大于 TARGET_MEMORY,否则会报错。
SQL> show parameter mem
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
inmemory_adg_enabled boolean TRUE
inmemory_clause_default string
inmemory_expressions_usage string ENABLE
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 0
inmemory_query string ENABLE
inmemory_size big integer 0
inmemory_trickle_repopulate_servers_ integer 1
percent
inmemory_virtual_columns string MANUAL
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 4G ------>系统分配给oracle最大的内存,要>= sga内存的大小
memory_target big integer 4G
optimizer_inmemory_aware boolean TRUE
shared_memory_address integer 0
2.现在就是要扩容这块的大小,一般分配为物理内存的50%~80%
我们分配为6G.
3.查看/dev/shm虚拟内存的大小,在扩容memory_max_target之前要先扩容此虚拟内存
[oracle@scp ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 41G 27G 15G 64% /
devtmpfs 4.8G 0 4.8G 0% /dev
tmpfs 4.0G 1.1G 1.7G 42% /dev/shm
[oracle@scp ~]$ vim /etc/fstab 在此文件的最后一行增加
tmpfs /dev/shm tmpfs defaults,size=6144M 0 0
mount -o remount,rw /dev/shm/ 以可读写的方式重新加载/dev/shm磁盘
再次查看,发现 /dev/shm已经扩容
[root@scp ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 41G 27G 15G 64% /
devtmpfs 4.8G 0 4.8G 0% /dev
tmpfs 6.0G 2.4G 3.7G 39% /dev/shm
4.扩容memory_max_target
su - oracle
alter system set memory_max_target =6G scope=spfile;
alter system set memory_target =6G scope=spfile;
5.重启数据库
shut immediate
startup
lsnrctl start 启动监听
6.此时再次查看,已经扩容
SQL> show parameter mem;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
inmemory_adg_enabled boolean TRUE
inmemory_clause_default string
inmemory_expressions_usage string ENABLE
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 0
inmemory_query string ENABLE
inmemory_size big integer 0
inmemory_trickle_repopulate_servers_ integer 1
percent
inmemory_virtual_columns string MANUAL
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 6G
memory_target big integer 6G
但是,但是,我并没有在生产库上进行扩容,毕竟对oracle不熟,我还是请教了我们有经验的Oracle DBA,因为我们的这个数据库毕竟特殊,只有内部四五个人使用,按道理不会有太大并发,于是请那么dba帮忙排查
大概思路就是,他先拉了一份,awr报告,发现cpu的等待时间比较久,每条语句的执行时间并不长,次数还是比较多,实际查看了tomcat的服务器的cpu竟然只有2核,所以怀疑是tomcat的服务器的CPU比较少需要高强度的运算所以,数据库的等待比较多,导致内存不足,所以建议扩容了cpu的核数,
果然问题解决了,哎。不得不说经验很重要。。。。我还是太菜了。。。。。。
记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存
标签:http app nbsp 11g 内存管理 percent 个数 时间比较 virtual
本文系统来源:https://www.cnblogs.com/liuxiuxiu/p/13129932.html
内容总结
以上是互联网集市为您收集整理的记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存全部内容,希望文章能够帮你解决记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。