前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器增加内存后无法重启数据库的问题及解决 (36天)

服务器增加内存后无法重启数据库的问题及解决 (36天)

作者头像
jeanron100
发布2018-03-13 17:53:40
3.5K0
发布2018-03-13 17:53:40
举报

前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存。 环境是11gR2的RAC环境,这时候rac有一个明显的优点就显现出来了,就是没有downtime。一个实例一个实例的改动,调整kernel,db参数都很方便管理。 所在的每个服务器只有一个oracle_home,各有两套rac环境在同一个unix账户下。所以我启停数据库的时候也是一套环境一套环境的来。反正节点也不多。 我先是按照要求把sga调整了一下,从20G调整到40G,这样一个服务器两套环境就占用80G,还有68G的空余。 然后保证另一个节点能够正常failover之后,开始改动,很多改动完一套环境,倒也没出什么问题, 开始第二套环境的时候,按照步骤先启停,做检查。 然后准备重启数据库的时候,报了下面的错误。显示内存问题,还有空间的问题,我检查了一把空间情况,没有发现什么问题。 用free -m检查内存使用情况,空余内存还多着呢。 Connected to an idle instance. SQL> startup nomount ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device SQL> !oerr ora 27102 查看metalink(ID 301830.1),说是内核参数的配置不够。 内核参数的值如下: Last login: Sun Mar 30 22:42:16 2014 from xxxx -bash-4.1$ cat /proc/sys/kernel/shmall 16383998 -bash-4.1$ cat /proc/sys/kernel/shmmax 67108855808

CAUSE

shmall is the total amount of shared memory, in pages, that the system can use at one time.

SOLUTION

Set shmall equal to the sum of all the SGAs on the system, divided by the page size.

来做个演算, shmall应该是shmmax/page_size=67108855808/4096=16383998,这个和当前的设置相等 但是同一个unix账户下有两套环境,需要分配两套sga。所以shmall就远远不够了,需要同时修改shmmax,一般建议为内存的90%左右。 调整后参数值如下: -bash-4.1$ cat /proc/sys/kernel/shmall 33030178 -bash-4.1$ cat /proc/sys/kernel/shmmax 135291609088 然后需要sysctl给激活一下。 再重启数据库就没有问题了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CAUSE
  • SOLUTION
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档