您的位置:首页 > 其它

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

2015-01-21 17:01 323 查看
今天打开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件损坏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐