Chinaunix首页 | 论坛 | 博客
  • 博客访问: 701695
  • 博文数量: 178
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1507
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-27 23:20
文章分类

全部博文(178)

文章存档

2015年(58)

2014年(121)

我的朋友

分类: Oracle

2014-05-23 17:13:04

(我遇到问题的情况简述:
    在vmware虚拟机中把内存调小了就出现此错误。

今天启动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


至此问题得到解决。


阅读(324) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~