评论

收藏

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

数据库 数据库 发布于:2021-06-30 17:43 | 阅读数:448 | 评论:0

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

  一直以来,我在做方案的时候,都不推荐在云服务器上安装oracle。可随着宣传的深入,偏偏就有人要这样干,前天,就有要求我在某度云安装oracle rac集群;我确实不知道怎么解决共享存储及多网卡。
  一个很久不理我的家伙,突然给我电话,说安装在阿里云服务器上的oracle,执行netca失效,需要我帮忙。很佩服那些程序员,居然能在云服务器成功安装oracle。好奇心驱使我去要了系统权限,爬上去看看究竟。
  先看看oracle实例是否正常,按一下步骤进行:
1、 检查进程: ps auxww|grep ora ,还好进程都有;
2、 检查实例是否正常,也没问题,截图如下:
DSC0000.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瞧瞧,一眼就看出问题所在。
DSC0001.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,故障排除。
DSC0002.jpg

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

  
关注下面的标签,发现更多相似文章