plsql以前能正常连ORACLE数据库,但突然断电重启后就报错ORA-12514,不是listener.ora配置文件的问题

昨天通过plsql能正常连接oracle数据库,但电脑突然关机之后,再连接就报错:
ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务。

1、首先排除了服务是否启动的问题,因为实例和监听都已启动。
2、然后百度上都说是listener.ora配置文件的问题,但是想想应该不是,因为以前都可以用的。

3、然后去看看能不能通过cmd连接oracle数据库,
在cmd中输入: sqlplus sys/这里输入密码 as sysdba
在这里插入图片描述
如果报错:
ORA-12560: TNS: 协议适配器错误.
可以先看看是不是环境变量path顺序的问题:把D:\app\24457\product\11.2.0\dbhome_1\bin 上移到D:\app\24457\product\11.2.0\client_1\bin 上面来,如下图
在这里插入图片描述
如果还没解决,看看是不是服务器没启动的原因

4、解决了cmd连接oracle数据库的问题,那就去看一下oracle的日志(alert_orcl.log)
日志路径通过下面语法查询:
select * from v$diag_info where name =‘Diag Trace’;
在这里插入图片描述
一般日志名称是: alter_xxxx.log (xxxx就是实例名称,本地是orcl)

5、查看日志后发现不是监听的问题,也不是listener.ora配置文件的问题。而是
ORA-00322,
ORA-00312:online log 2 thread 1: ‘/opt/oracle/orcl/redo02.log

按步骤执行下面的语法,3里面的路径要与ORA-00312错误里面的一样
1、 shutdown immediate;
2、 startup mount;
3、 alter database clear logfile ‘opt\oracle\orcl\REDO02.LOG’; 4、 alter database open;