这篇文章主要介绍“怎么解决Oracle数据库shutdown报错ORA-01031”,在日常操作中,相信很多人在怎么解决Oracle数据库shutdown报错ORA-01031问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决Oracle数据库shutdown报错ORA-01031”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
报错如下图:
要来ip和实例名登到服务器上看pmon进程还在
ps -ef |grep pmon
查看监听情况也是正常的
lsnrctl status
这两项都没问题,尝试登录数据库,如下图:
熟悉Oracle的同学一看这个提示信息应该就能感觉到不对,不是正常库连接的提示信息
查询数据库状态,语句执行报错如下
语句无法执行,然后转站去看alert日志
一直在报类似此种的信息,没有找到有效的信息,顺着日志往前找到一个关键点,16:01:45曾尝试shutdown数据库
继续跟压测同事沟通,他们尝试下午重启数据库但报权限不足。
感觉很奇怪,shutdown库怎么会没有权限。
我也进行尝试,shutdown immediate无法执行,shutdown abort也报权限不足
这个问题确定很奇怪,我是用sqlplus / as sysdba登录的数据库,怎么会没有权限,继续往下查
查看用户权限
这台服务器上装的是单实例,却有grid用户,感觉还是挺怪的。
从上面的输出来看oracle用户的权限和所属组是没有问题的
查看oracle文件的权限也没有问题
至此找不到什么问题了,于是转站MOS,去查是否有相关文档
找到一篇ORA-1031 While Starting An Instance As SYSDBA immediately After Applying A Patch (文档 ID 1475357.1)但与这边遇到的问题不太一致,文档的最后有一篇参考文档ORA-01031 DOING DATABASE STARTUP OR SHUTDOWN (文档 ID 1008507.6)
里面提到了TWO_TASK这个环境变量,以前数据库出问题也跟这个变量有关,于是查看环境变量没有配置这个变量
顺着这个思路我查看了整个oracle用户的环境变量找到了问题所在
原来oracle用户中的PATH路径配置了/u01/app/11.2.0/grid/bin这个路径,权限不对
于是把.bash_profile中的PATH进行修改
重新登录oracle用户
再次sqlplus / as sysdba登录数据库,重启,问题解决
到此,关于“怎么解决Oracle数据库shutdown报错ORA-01031”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!