Oracle: SQLPLUS失败,ORA-07320: smsget: 连接sga时smat错误问题描述
我重新启动机器,Oracle及一切都正常,但一个用户无法运行SQLPLUS。我以该用户的身份登录,当尝试执行SQLPLUS时,显示下面的信息:
Error ORA-01034: Oracle not available
ORA-07320: smsget: shmat Error when trying to attach sga.
HPUX Error: 13: Permission denied
内核没有修改,所有的内核参数似乎都已正确设置。如何解决这个问题?
配置信息
操作系统 - HPUX
版本 -
硬件系统 - HP 9000
系列 - D330
解决方法
检查ORACLE可执行程序的许可,它应当是6755或6751。进一步研究之后发现,你的SQLPLUS实用程序为模式755。改为6755(setuid/setgid)即可解决你的问题。
Oracle利用共享内存段进行进程间通讯,除非oracle进程作为setuid oracle运行,否则将无法与Oracle的共享内存段连接。
.........following with all English text ....
Problem Description
I rebooted my machine, and Oracle and everything came back up, but one user cannot run SQLPLUS. I logged in as the user. When I try to do a
SQLPLUS, I receive:
Error ORA-01034: Oracle not available ORA-07320: smsget: shmat Error when trying to attach sga.
HPUX Error: 13: Permission denied
The kernel has not been modified and all the kernel parameters seem
to be set properly. How do I fix this problem?
Configuration Info
Operating System - HPUX
Version -
Hardware System - HP 9000
Series - D330
Solution
Check the permissions of the ORACLE executable. It should be 6755 or 6751. Upon further investigation, your SQLPLUS utility is mode 755.
Change this to 6755 (setuid/setgid), and that will resolve your problem.
Oracle utilizes shared memory segments to perform its interprocess communication, and unless the oracle processes run as setuid oracle,they will be unable to attach to Oracle's shared memory segments.