侦听服务出现blocked状态

今天在用rman做standby数据库时,连接auxiliary数据库报错以下信息:

去查了一下备机的侦听,由于是采用动态注册,先启动了侦听,再启动instance,当时pmon还没实现动态注册,需要等待1分钟左右的时间,发现oralocal的服务已经出现,就再次用rman连接,发现出现了另外一个报错:

仔细检查了一下侦听的状态,发现其service是blocked的状态:

奇怪,如果在listener.ora中如果没有出现sid_desc的话,应该也可以实现动态注册的呀,问题现在确实实现的动态注册,但是状态却是blocked,客户端是无法连接的。尝试修改listener.ora为静态注册后,恢复正常。

为了测试这个猜想,再次oradim了一个oratest的服务:

我们发现oratest是blocked状态,故障重现。

是否是因为在win下使用oradim新建service引起的呢?我们在unix环境下测试看看情况如何:

发现也是出现同样的问题。

因此可以推断,在instance没有建立的情况下,用pfile启动到nomount状态,实现数据库动态注册,虽然可以实现动态注册,在service中能看到service name,但是其状态为blocked,客户端此时无法连接。要解决此问题:
1.改用静态注册
2.建完database后才用动态注册

相关文章

一条评论

  1. Service “PROD_XPT.oracle.com” has 1 instance(s).
    Instance “PROD”, status READY, has 1 handler(s) for this service…
    Handler(s):
    “DEDICATED” established:0 refused:0 state:blocked
    LOCAL SERVER

    有遇到过这种状态吗?我在某个库中见过这样的状况,感觉好奇。。当然实例名那些我是已经改了的。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据