oracle 监听blocked导致数据库无法连接

今天负责一项目运维人员告诉我数据库连接不上,经查看是监听出现问题,lsnrctl status查看状态出现实例blocked。
首先想到重建监听,但重建后依然没有效果。查看数据库实例状态为started,处于nomount状态。
alter database mount报错如下:
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address ‘LISTENER_ORCL’
解决方法如下:
SQL>STARTUP NOMOUNT
SQL>CREATE PFILE FROM SPFILE;
编辑pfile文件:
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=IP)(Port=1521)))'
SQL>CREATE SPFILE FROM PFILE='D:\...\INITORCL.ORA';
SQL>ALTERE DATABASE MOUNT;
到此步,又有新的错误:
ORA-00214: controlfile 'D:\...\control01.ctl' version 10232896 inconsistent with file 'D:\...\control02.ctl' version 9190433

解决方法:
编辑PFILE文件,去掉其中一个控制文件
SQL>CREATE SPFILE FROM PFILE;
【oracle 监听blocked导致数据库无法连接】SQL>ALTER DATABASE MOUNT;
DATABASE ALTERED.
SQL>ALTER DATABASE OPEN;
此步又报错:
ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []
解决方法:
SQL>RECOVER DATABASE
SQL>ALTER DATABASE OPEN;

    推荐阅读