note the ORA-27102: out of memory error

qqmengxue發表於2010-12-16

oracle10.2.0.4

REDHAT 5.1 64BIT

MEM:16G

STOR:700G

ERROR:

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

[@more@]

今天在新資料庫上配置進行一些基礎性的配置,由於忽略了linux的訊號量的修改,導致了在啟動資料庫的時候報了:

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

後來經檢查是因為kernel.shmall配置的過小,預設情況下kernel.shmall 的大小隻為8G,由於我的環境中需要配置9G的大小,所以最終導致資料庫報了OUT OF MEMORY錯誤,

經過修改後的引數為;
# Oracle
#kernel.shmall = 2097152
kernel.shmall = 2621440
kernel.shmmax = 10737418240
#kernel.shmmax = 4294967295
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 = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# End

重新啟動 資料庫:

SQL> startup
ORACLE instance started.

Total System Global Area 9663676416 bytes
Fixed Size 2099752 bytes
Variable Size 1459619288 bytes
Database Buffers 8187281408 bytes
Redo Buffers 14675968 bytes
Database mounted.
Database opened.
SQL> !ipcs

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0xbbd5609c 1343489 oracle 640 9663696896 21

------ Semaphore Arrays --------
key semid owner perms nsems
0xa2b8f6e8 753664 oracle 640 154

------ Message Queues --------
key msqid owner perms used-bytes messages


SQL> !ipcs -u

------ Shared Memory Status --------
segments allocated 2
pages allocated 2359397
pages resident 120062
pages swapped 0
Swap performance: 0 attempts 0 successes

------ Semaphore Status --------
used arrays = 1
allocated semaphores = 154

------ Messages: Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes


SQL> !ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 10485760
max total shared memory (kbytes) = 10485760
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536

在實際的工作中DBA的工作需要極其的嚴謹與認真,由於小的引數就很有可能導致不可預知的後果。

以下為對此引數的說明:

shmall = kernel.shmmax/pagesize(getconf PAGESIZE)

shmall 是全部允許使用的共享記憶體大小,shmmax 是單個段允許使用的大小。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1043168/,如需轉載,請註明出處,否則將追究法律責任。

相關文章