服务器增加内存后无法重启数据库的问题及解决-阿里云开发者社区

开发者社区> jeanron100> 正文

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

简介: 前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存。 环境是11gR2的RAC环境,这时候rac有一个明显的优点就显现出来了,就是没有downtime。
+关注继续查看
前几天生产环境需要做服务器的扩容,把原本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给激活一下。

再重启数据库就没有问题了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
聊一聊binder driver导致的系统重启问题
问题现象 这个问题最早是由接电话重启的现象暴露出来的,当时看到异常信息是Native crash,栈如下: Build fingerprint: 'Xiaomi/scorpio/scorpio:6.
2009 0
一则数据库无法重启的案例分析
  今天一个开发的同事找到我,说有个问题想咨询一下我,突然想起他昨天让我帮他处理一个工单,他这么一问我才想起来还没做,结果他说是另外一件事,说有个开发测试的环境,数据库报04031的错误,想让我帮忙看看是怎么回事,这种问题刚好就找对了。
833 0
【Mysql】Mysql数据表区分大小写问题解决方案
原因 由于有的环境下,对数据表的大小写是明确区分的,但是我在导出的时候的数据表全部都是小写的,这个时候需要对环境进行配置 解决 vim /etc/my.cnf 在[mysqld]下加入一行:lower_case_table_names=1 service mysq...
658 0
linux系统 重启盘符错乱问题
linux磁盘重启乱序问题处理     最近到客户那去巡检时,客户提到一个问题,他们的rac在重启的时候,原来的sda1、sdb1、sdc1会对应变成sdd1、sde1、sdf1,由于他们使用的是盘符来绑定裸设备,所以启动后,经常要手动执行以下命令 ...
2393 0
一起谈.NET技术,.NET并行(多核)编程系列之七 共享数据问题和解决概述
  之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行编程中实际遇到一些问题,接下来的几篇将会讲述数据共享问题。   本篇的议题如下:   1.数据竞争   2.解决方案提出   3.
636 0
"无法删除数据库,因为该数据库当前正在使用"问题解决
原文:"无法删除数据库,因为该数据库当前正在使用"问题解决 异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html  以前刚学数据库的时候比较苦恼这个问题,今天删除的时候又看见了,正好一起记录一下: 图形化方法: 命令行方法...
1224 0
+关注
jeanron100
Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
1180
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载