云服务器绑定主机名的正确姿势

 

一直以来,我在做方案的时候,都不推荐在云服务器上安装oracle。可随着宣传的深入,偏偏就有人要这样干,前天,就有要求我在某度云安装oracle rac集群;我确实不知道怎么解决共享存储及多网卡。

 

一个很久不理我的家伙,突然给我电话,说安装在阿里云服务器上的oracle,执行netca失效,需要我帮忙。很佩服那些程序员,居然能在云服务器成功安装oracle。好奇心驱使我去要了系统权限,爬上去看看究竟。

 

先看看oracle实例是否正常,按一下步骤进行:

1、 检查进程: ps auxww|grep ora ,还好进程都有;

2、 检查实例是否正常,也没问题,截图如下:

oracle0000.jpg

3、 分别检查oracle实例日志和监听器日志,也没什么收获;

4、 检查系统日志,未见明显异常;

5、 检查系统资源,发现交换分区太小,不过既然能正常安装oracle,应该也影响不大;另外同一个系统上还运行了java和memcached,担心占用资源过多,一概给停止了(反正是未上线的系统,随便杀);

6、 以oracle用户执行 lsnrctl stat,输出一半就卡住了,耐着性子等了一会而,结果如下:

[oracle@qhwy ~]$ lsnrctl stat

LSNRCTL   for Linux: Version 11.2.0.1.0 - Production on 09-MAR-2018 22:33:50

 

Copyright   (c) 1991, 2009, Oracle.  All rights   reserved.

 

Connecting   to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12535:   TNS:operation timed out

 TNS-12560: TNS:protocol adapter error

  TNS-00505: Operation timed out

提示超时,手动启动监听器,也是一样的输出。

 

按照也有的经验,查了好一通,还是没解决,那就网上搜一搜吧。运气还算不错,搜到一篇文章,正好瞧到有一行写着netca启动不了的问题,云启动不了可能与主机名有关。那好,就打开文件/etc/sysconfig/network及/etc/hosts瞧瞧,一眼就看出问题所在。

oracle0001.jpg

哥,阿里云的服务器,使用的可是内网地址哟,不信你瞧:

[root@qhwy ~]# ifconfig

eth0:   flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

          inet 172.17.144.28  netmask   255.255.240.0  broadcast 172.17.159.255

          ether 00:16:3e:10:5c:61    txqueuelen 1000  (Ethernet)

          RX packets 5322360  bytes   6866094153 (6.3 GiB)

          RX errors 0  dropped 0  overruns 0    frame 0

          TX packets 2929473  bytes   386359858 (368.4 MiB)

          TX errors 0  dropped 0 overruns   0  carrier 0  collisions 0

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

          inet 127.0.0.1  netmask   255.0.0.0

          loop  txqueuelen 1  (Local Loopback)

          RX packets 381760  bytes   25954689 (24.7 MiB)

          RX errors 0  dropped 0  overruns 0    frame 0

          TX packets 381760  bytes   25954689 (24.7 MiB)

          TX errors 0  dropped 0 overruns   0  carrier 0  collisions 0

 

把/etc/hosts文件的公网地址,改成实际网络监听地址:

172.17.144.28 qhwy

切换到oracle账户,再执行 lsnrctl start,故障排除。

oracle0002.jpg

 

不过,直接把oracle数据库暴露在公网上,也是一个隐患。