现在的位置: 首页 > 综合 > 正文

ORA-12528: TNS:listener: 和error in reading(block 3,# blocks 8) of control file

2017年12月27日 ⁄ 综合 ⁄ 共 1429字 ⁄ 字号 评论关闭

今天打开plsql的时候,发现本地提示:ORA-12528: TNS:listener: all appropriate instances are blocking new connections

网上搜了一把,关于ora-12528的解决办法铺天盖地,最终采用美舞映煌 的方法:

启动到nomount状态,通过修改tnsnames.ora的参数
# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SYK =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SYK)
      (UR=A)
    )
  )

【===============补充=============】

我的文件在D:\app\Administrator\product\instantclient_11_2\NETWORK\ADMIN

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
      (UR=A)
    )
  )

    然后连接上数据库,以sysdba的身份登录
    SQL>alter database mount;
    SQL>alter database open;

改成静态服务后,又出现个新问题:error in reading(block 3,# blocks 8) of control file,一波未平一波又起啊~

接着找解决办法,问题的关键是oracle的控制文件被损坏,只要将备份的控制文件拿来恢复就好了;

这是找到的答案:liuya1985liuya

但是我的文件夹中没有control02,control03(注:全称是CONTROL01.CTL;路径在D:\app\Administrator\oradata\orcl,orcl是你的实例名称)

然后在flash_recovery_area(D:\app\Administrator\flash_recovery_area\orcl)中找到了,删掉oradata中的CONTROL01.CTL,然后把flash_recovery_area中的

CONTROL02.CTL拷贝过去,重命名成CONTROL01.CTL,再次执行alter database open;

我们看到已经好了:

总结:

问题ORA-12528: TNS:listener: all appropriate instances are blocking new connections是因为:

ORA-12528问题是因为监听中的服务使用了动态服务,实例虽然启动,但没有注册到监听。实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动。所以造成了上面的错误。


问题error in reading(block 3,# blocks 8) of control file是因为:

控制文CONTROL01.CTL件损坏

抱歉!评论已关闭.