ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 合肥ORA-27102(原创)

合肥ORA-27102(原创)

原创 Linux操作系统 作者:wangsir_918 时间:2011-07-21 13:20:51 0 删除 编辑

      最近和内存结下了梁子,合肥xx项目,新装的系统,采用32G的大内存,64bit的操作系统,64位的oracle,为了充分利用它的物理内存,我们将SGA设置为18G,尽量将业务交易在内存中进行,减少IO。你懂的

      安装完oracle之后数据库却起不来,错误如下:

SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

       这个一看就明了了,肯定是oracle在nomount读取参数文件,划分内存区域的时候out of memory,物理内存是足够的,那究竟是什么影响内存划分呢。很自然的想到了操作系统是否做了内存限制。

      查看

# sysctl -p
net.ipv4.icmp_echo_ignore_broadcasts = 1    
net.ipv4.conf.all.rp_filter = 1
kernel.shmall = 6553600                           --可以使用的共享内存的总量
kernel.shmmax = 17179869184                --最大共享内存段大小。
kernel.shmmni = 4096                           -- 整个系统共享内存段的最大数目
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

$ getconf PAGE_SIZE
4096

oracle要求kernel.shmall 参数至少等于SGA大小,公式我总结为:

kernel.shmall *AGE_SIZE >=SGA  (注意两边的单位一致)

发现这个配置是没问题的

那么会不会是linux做了用户进程限制呢,使用ulimit命令:

oracle@ahdxismpdb-1:~> ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256700
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) 33002480
file locks                      (-x) unlimited

将其改成:

#ulimit -a
core file size        (blocks, -c) unlimited
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 8192
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) unlimited
cpu time             (seconds, -t) unlimited
max user processes            (-u) 73728
virtual memory        (kbytes, -v) unlimited

 

问题解决,perfect

总结:随着64bitoracle的推广,oracle只能使用1.7G内存的限制被打破,大内存成了主流,DB配置升级之后不能忘记了操作系统的相应调整

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25801738/viewspace-702736/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-18

  • 博文量
    40
  • 访问量
    77650