记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3986字,纯文字阅读大概需要6分钟。
内容图文
![记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创)](/upload/InfoBanner/zyjiaocheng/493/343125a1b62449f88741abad26f360f2.jpg)
由于笔记本经常在公司和家之间奔波,连接内网的网关不一样,所以使用虚拟机设置 NAT模式使centos7供外部访问.这样centos7有自己的网关和ip,不用随宿主机内网网关改变.
2. 现象:
有天恢复快照后, ssh登陆centos7 , 用oracle用户正常启用oracle监听和DB.发现能ssh使用,windows端连接则显示错误,ORA-12541:TNS:无监听程序.
这时发现终端变为[root@bogon ~]# , 遂觉得是centos主机名导致的oracle监听出了问题.所以无法远程连接
3.此时环境的各个数据:
[root@bogon ~]# hostname bogon [root@bogon ~]# cat /etc/sysconfig/network # Created by anaconda [root@bogon ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@bogon ~]# ipcalc -h 192.168.44.55 HOSTNAME=bogon [root@bogon ~]# nslookup 192.168.44.55 Server: 8.8.8.8 Address: 8.8.8.8#53 55.44.168.192.in-addr.arpa name = bogon. [root@bogon ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8 nameserver 114.114.114.114 [root@bogon ~]#
[oracle@bogon admin]$ cat listener.ora # listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /data/oracle [oracle@bogon admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORACLE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = oracle) ) ) [oracle@bogon admin]$
4.原因分析(参考非原创):
还有:
即:
1)主机初始化,主机名为localhost或 localhost.localdomain会导致操作系统执行DNS反向解析导致 hostname为bogon.
2)如果resolv.conf中配置了search localdomain或其他不会过滤bogon的DNS服务器,那么此处得到的主机名则优先于hosts和network文件中的配置,使主机名为bogon.
5.总结:
1)解决办法1(推荐):更改DNS域名服务器.
由nslookup 192.168.44.55的返回信息,我认为是8.8.8.8这个dns服务器导致.这个域名服务器不会过滤bogon.
遂删除了8.8.8.8 ,并重启网卡 service network restart .
重启终端,发现变为[root@localhost ~]#. 执行hostname命令发现主机名变为localhost.localdomain.
此时启动oracle监听和DB.windows端远程访问正常.
(PS:由参考文献2发现域名服务器如果设置成NAT网关有时也会导致主机名被解析为bogon ,我家里的另外一台电脑域名服务器设置为NAT网关+114.114.114.114暂时centos未出现此问题. )
2)解决办法2:更改主机名
我修改文件/etc/hosts,添加了当前服务器的ip和期望的主机名.即添加了一行 192.168.44.55 localhost.localdomain.
重启服务器后,发现主机名变为 localhost.localdomain.,此时oracle监听和DB远程正常访问.
(PS:此时并没有更改/etc/sysconfig/network.实验发现 单独修改/etc/sysconfig/network文件添加HOSTNAME=localhost.localdomain 重启机器后发现主机名仍未bogon.)
3)试错:
开始时,我采用解决办法2 ,即/etc/hosts添加了 一行192.168.44.55 locahost .因为我此时不知道主机名变为bogo之前是什么.只记得原终端名显示root@localhost.添加后,重启机器,
发现终端为 root@localhost ,执行hostname 发现主机名为localhost. 这时,主机名与oracle listener.ora中的HOST保持一致,启用oracle监听,如下报错:
TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek查询参考资料3发现,是主机名与监听名字不一致,导致oracle启用监听失败.然后,采用解决办法2时,主机名与oracle的tnsname.ora保持一致,oracle监听和DB正常启动,远程访问正常.
6.############参考文献如下 ,感谢作者#############
1) http://blog.csdn.net/weiwan721/article/details/48463371
2) http://www.cnblogs.com/armo/p/6739472.html
3) http://www.cnblogs.com/xing901022/p/3895719.html
记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创)
标签:data wan dom names apt htm cat src 1.0
本文系统来源:http://www.cnblogs.com/jingmingjiayuan/p/7760677.html
内容总结
以上是互联网集市为您收集整理的记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创)全部内容,希望文章能够帮你解决记一次centos7主机名变bogon导致ORACLE无法远程访问的经历(原创)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。