云服务器绑定主机名的正确姿势
一直以来,我在做方案的时候,都不推荐在云服务器上安装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数据库暴露在公网上,也是一个隐患。
©著作权归作者所有:来自51CTO博客作者sery的原创作品,如需转载,请注明出处,否则将追究法律责任
每一份赞赏源于懂得
赞赏
0人进行了赞赏支持
共同学习,写下你的评论
评论加载中...
作者其他优质文章