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
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 available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> shutdown immediate --想要关闭也不行
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-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
原来就是环境变量写快了, 有点模糊,改一下就好了