由db_domain引起的数据库连接异常

起因


      一个同事万分着急地找到我,说数据库突然登录不上了,但是sqlplus能够正常登录的,报了以下的错误,我一看截图,这个错误一般是数据库未启动导致的,登录服务器发现数据库确实是open的,觉得有些诡异,于是决定研究一下。



解决过程


     首先我确定了数据库正常启动的,接下来查看监听状态:

可以看到监听也是正常的,但是看到“kfhzbdc.yfybfwq”这个时,我突然认识到可能是数据库设置了db_domain,导致直接通过db_name无法访问数据库,于是查看参数:

果然发现数据库设置了db_domain,于是我把db_domain置空后重启数据库,然后同事直接通过db_name能够访问数据库了。


疑惑


    对于以上问题的原因及解决,有经验的DBA应该都能找到原因并最终解决,但是让我疑惑的是,我明明把db_domain置为空了,并重启了数据库,理论上来说数据库此时的global_name应该变成了"KFHZBDC",而不是“KFHZBDC.YFYBFWQ”,但是当我查询时发现仍是“KFHZBDC.YFYBFWQ”,但是此时数据库已经可以直接通过db_name访问了,这让我很困惑,貌似这里违反了平日的理论常识。

       直到看到了杨廷琨老师的博客,我才直到这个是oracle一直未解决的问题,那就是db_domain一旦设置了之后,就无法去掉了,那么怎么去掉db_domain呢,那就是直接修改数据字典,但这是不被推荐的:


SQL> CONN / AS SYSDBA已连接。

SQL> UPDATE SYS.PROPS$ SET VALUE$ = 'KFHZBDC' WHERE NAME = 'GLOBAL_DB_NAME';






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69902769/viewspace-2375416/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69902769/viewspace-2375416/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值