热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle启动报错:ORA-00845:MEMORY_TARGETnotsupportedonthissy

Oracle启动报错:ORA-00845:MEMORY_TARGETnotsupportedonthissystem,

Oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system,

今天启动Oracle的时候,报错

[root@localhost ~]#su - oracle

[oracle@localhost ~]$lsnrctl start

lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

解决办法:在root用户下执行以下命令

[root@localhost ~]# setenforce 0

[root@localhost ~]#su - oracle

[oracle@localhost ~]$lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 20-SEP-2012 19:03:03

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

Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 20-SEP-2012 19:03:04
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
The listener supports no services
The command completed successfully

问题解决。

[oracle@localhost ~]$ sqlplus / as sysdba

SQL> startup

报错:ORA-00845: MEMORY_TARGET not supported on this system


问题定位:安装数据库时或者修改了参数MEMORY_TARGET或者SGA_TARGET的大小。
SGA参数的大小超过了操作系统/dev/shm的大小。
linux安装完后默认/dev/shm为物理内存的一半。

技术背景:linux大内存支持(Very Large Memory)中,使用了shmfs/tmpfs选项,ramfs也可以。
/dev/shm目录挂载类型为tmpfs,此共享内存用于交换,尤其对于大文件优势明显。
相对于ramfs,tmpfs的优势在于动态调整物理内存的占用,而ramfs不能调整。
/dev/shm与swap的区别:shm基于内存的文件系统,swap基于硬盘的文件系统。

解决方法:

1、调整MEMORY_TARGET(11G)或者SGA_TARGET(9i,10G)大小(不建议)。

2、调整/dev/shm的大小。
修改/etc/fstab,,重新mount /dev/shm,然后就可以启动数据库了。

(1)查看/dev/shm 大小
df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 4089416 0 4089416 0% /dev/shm
(2)调整/dev/shm大小
vi /etc/fstab
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=10240M 0 0
(3)重新加载
umount /dev/shm
mount /dev/shm
df -k /dev/shm
(4)登陆测试
sqlplus / as sysdba

至此问题得到解决。

linux

推荐阅读
author-avatar
手机用户2502922415_737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有