11g 报错 ORA-27102: out of memory Linux Error: 22: Invalid argument

来源:互联网 发布:vb.net 多线程 编辑:程序博客网 时间:2024/04/29 03:34

昨天没事装了个11g玩,安装软件dbca建库使用一切正常。今天启动发现报错

[oracle@OEL54db11gR2 dbs]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.1.0 Production on Thu Nov 22 20:07:45 2012


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


Connected to an idle instance.


SQL> startup
ORA-27102: out of memory
Linux Error: 22: Invalid argument


处理流程如下:

1、查看数据库内存大小

[oracle@OEL54db11gR2 ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/
[oracle@OEL54db11gR2 dbs]$ ls
hc_DBUA0.dat  init.ora  orapworcl      peshm_orcl_0

hc_orcl.dat   lkORCL    peshm_DBUA0_0  spfileorcl.ora

[oracle@OEL54db11gR2 dbs]$ cat spfileorcl.ora 

C"挌m盈/CC"6Porcl.__db_cache_size=205520896
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=218103808
orcl.__sga_target=322961408
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=100663296
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oCC"/racle/oradata/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.memory_target=541065216
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

 

2、切换到root用户,查看内核内存大小

[oracle@OEL54db11gR2 ~]$ su -
Password: 

[root@OEL54db11gR2 ~]# vi /etc/sysctl.conf

# Kernel sysctl configuration file for Oracle Enterprise Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.


# Controls IP packet forwarding
net.ipv4.ip_forward = 0


# Controls source route verification
net.ipv4.conf.default.rp_filter = 2


# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0


# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0


# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1


# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1


# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536


# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536


# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736


# Controls the maximum number of shared memory segments, in pages
kernel.shmall =322961408                       
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
"/etc/sysctl.conf" 44L, 1265C written


3、修改shmmax参数为数据库内存的2倍

# Kernel sysctl configuration file for Oracle Enterprise Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.


# Controls IP packet forwarding
net.ipv4.ip_forward = 0


# Controls source route verification
net.ipv4.conf.default.rp_filter = 2


# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0


# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0


# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1


# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1


# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536


# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536


# Controls the maximum shared segment size, in bytes
kernel.shmmax =645922816


# Controls the maximum number of shared memory segments, in pages
kernel.shmall =322961408
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
"/etc/sysctl.conf" 44L, 1263C written
[root@OEL54db11gR2 ~]# /sbin/sysctl -e -p /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 645922816
kernel.shmall = 322961408
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

3、生效设置

[root@OEL54db11gR2 ~]# /sbin/sysctl -e -p /etc/sysctl.conf

4、启动数据库

SQL> startup
ORACLE instance started.


Total System Global Area  539848704 bytes
Fixed Size                  1337748 bytes
Variable Size             327157356 bytes
Database Buffers          205520896 bytes
Redo Buffers                5832704 bytes
Database mounted.
Database opened.