半瓶内容

 results 1 - 1 of about 1 for ORA-27102错误的解决办法. (0.302 seconds) 

ORA-27102错误的解决办法

给Oracle增加SGA后,或者安装时SGA设置过大,可能出现ORA-27102错误。
以下是在64位RedHat Linux AS4 Update7下增大SGA后启动显示的结果:

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

该问题是Linux的内核参数设置造成的,解决办法是增加kernel.shmall参数的大小,可以从2097152增加到4194304:

[root@erpdevdb kernel]# vi /etc/sysctl.conf
......
kernel.shmall = 4194304
......

[root@erpdevdb kernel]# sysctl -p

[root@erpdevdb kernel]# sysctl -a | grep shm
vm.hugetlb_shm_group = 0
kernel.shmmni = 4096
kernel.shmall = 4194304
kernel.shmmax = 4294967296

[oracle@erpdevdb ~]$ sqlplus " / as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 4 17:22:32 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 4294967296 bytes
Fixed Size 2026296 bytes
Variable Size 805307592 bytes
Database Buffers 3472883712 bytes
Redo Buffers 14749696 bytes
Database mounted.
Database opened.

可以查看官方文档的说明:

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.

The page size can be determined using the following command:

$ getconf PAGE_SIZE
4096

For example, if the sum of all the SGAs on the system is 16Gb and the result of '$ getconf PAGE_SIZE' is 4096 (4Kb) then set shmall to 4194304 (4Mb)

说明:
16G*1024*1024/4K = 4194304
一般Linux系统的共享内存页大小都为4KB。


Leave a Comment