设为首页 加入收藏

TOP

Oracle启动报错ORA-27102解决(一)
2015-11-10 12:17:12 来源: 作者: 【 】 浏览:3
Tags:Oracle 启动 ORA-27102 解决

1.当前现象:Oracle启动报错ORA-27102


2.检查各参数的配置情况


3.定位解决问题


4.延伸总结


1.当前现象:Oracle启动报错ORA-27102
[oracle@JYDB1 ~]$ sqlplus / as sysdba


SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 7月 30 19:55:10 2015


Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.


已连接到空闲例程。


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


2.检查各参数的配置情况


2.1 根据当前的spfile文件创建pfile文件
SQL> create pfile='/tmp/pfile0730.bak' from spfile;


文件已创建。


查看当前的初始化参数配置信息:
[oracle@JYDB1 dbs]$ more /tmp/pfile0730.bak
JYZHAO.__db_cache_size=10938744832
JYZHAO.__java_pool_size=117440512
JYZHAO.__large_pool_size=16777216
JYZHAO.__shared_pool_size=1442840576
JYZHAO.__streams_pool_size=33554432
*.audit_file_dest='/opt/app/oracle//admin/JYZHAO/adump'
*.background_dump_dest='/opt/app/oracle//admin/JYZHAO/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/usr3/oradata1/sysdata/control_file/control01.ctl','/usr3/oradata1/sysdata/control_file/control02.ctl','
/usr3/oradata1/sysdata/control_file/control03.ctl'
*.core_dump_dest='/opt/app/oracle//admin/JYZHAO/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_files=2048
*.db_name='JYZHAO'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=JYZHAOXDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=1572864000
*.processes=600
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_limit=TRUE
*.sessions=665
*.sga_target=12582912000
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/opt/app/oracle//admin/JYZHAO/udump'


可以看到,sga=12G,pga=1.5G,


2.2 用pfile文件启动得到相同报错


startup pfile='/tmp/pfile0730.bak'
SQL> startup pfile='/tmp/pfile0730.bak'
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SQL> !


2.3 检查主机的内存,/dev/shm,ipcs


2.3.1 内存空闲充足
[oracle@JYDB1 10.2.0]$ free -g
? ? ? ? ? ? total? ? ? used? ? ? free? ? shared? ? buffers? ? cached
Mem:? ? ? ? ? ? 31? ? ? ? ? 0? ? ? ? 30? ? ? ? ? 0? ? ? ? ? 0? ? ? ? ? 0
-/+ buffers/cache:? ? ? ? ? 0? ? ? ? 31
Swap:? ? ? ? ? 31? ? ? ? ? 0? ? ? ? 31


2.3.2 /dev/shm设置为16G,符合当前需求
[oracle@JYDB1 10.2.0]$ df -h /dev/shm
文件系统? ? ? ? ? ? ? 容量? 已用 可用 已用% 挂载点
tmpfs? ? ? ? ? ? ? ? ? 16G? ? 0? 16G? 0% /dev/shm


2.3.3 ipcs -a也没有未释放的共享内存
[oracle@JYDB1 10.2.0]$ ipcs -a


------ Shared Memory Segments --------
key? ? ? ? shmid? ? ? owner? ? ? perms? ? ? bytes? ? ? nattch? ? status? ? ? ? ? ? ? ? ? ?


------ Semaphore Arrays --------
key? ? ? ? semid? ? ? owner? ? ? perms? ? ? nsems? ? ? ? ?


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


查到这里我们发现系统的硬件完全可以支持sga=12G,pga=1.5G的配置。
但此时实验了下,大概是只能以sga=6.5G的大小启动数据库。sga再大都会报错:ORA-27102。


2.4 检查系统配置文件/etc/sysctl.conf


more /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 25769803776
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586


可以看到是按照11g 安装文档建议配置项配置的,其中kernel.shmmax是根据主机内存的75%计算来的。其他参数没有改变。
因为这里的环境是Oracle 10g,所以我们还是按照10g官档的建议,修改为10g版本的安装文档配置项:
kernel.shmall = 2097152
kernel.shmmax = 25769803776
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

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇如何删除回滚段状态为NEEDS RECOV.. 下一篇Oracle RAC客户端tnsnames.ora相..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: