1.情况描述
oracle用户sqlplus登陆数据库(11gr2 单机asm),进去查询一些基本的视图发现报错
ora-01034: oracle not available,详细如下
[oracle@oomcserver db_1]$ sqlplus / as sysdba
sql*plus: release 11.2.0.4.0 production on mon sep 25 14:05:31 2023
d88尊龙官网手机app copyright (c) 1982, 2013, oracle. all rights reserved.
connected to an idle instance.
sql> select * from v_database; --查询不了基本视图
select * from v_database
*
error at line 1:
ora-01034: oracle not availableprocess id: 0
session id: 0 serial number: 0
sql> shutdown immediate --想要关闭也不行
ora-01034: oracle not availableora-27101: shared memory realm does not existlinux-x86_64 error: 2: no such file or directory
2.查看数据库状态
我登陆grid用户查看资源当前状态,发现数据库omccdb.db 服务是open状态的
也就是我的数据库没有问题,真是靠贝了
3.查看监听状态
lsnrctl status
grid用户查看当前监听服务,看看是不是监听问题
发现omccdb 这个监听状态也是 ready 的,目前没啥问题啊
4.查看环境变量
我在这儿用windows下的客户端plsql登陆,发现是能登陆进去并且查看视图的
这样的话看下oracle环境变量
env | grep -i oracle 或者直击查看 ~/.bash_profile
我靠贝了,原来是oracle_sid和监听服务对不上啊,oracle_sid是oomcdb,监听服务是omccdb(我们数据库全局数据库名字是omccdb,实例名对单实例来说是一样的,所以这里环境变量的sid也应改是omccdb)
5.找到解决方法
修改环境变量 oracle_sid=omccdb
#修改oracle_sid vim ~/.bash_profile #生效环境变量 source ~/.bash_profile #登陆数据库再次查看驶视图 sqlplus / as sysdba
原来就是环境变量写快了, 有点模糊,改一下就好了