雲服務器綁定主機名的正確姿勢
一直以來,我在做方案的時候,都不推薦在雲服務器上安裝oracle。可隨著宣傳的深入,偏偏就有人要這樣幹,前天,就有要求我在某度雲安裝oracle rac集群;我確實不知道怎麽解決共享存儲及多網卡。
一個很久不理我的家夥,突然給我電話,說安裝在阿裏雲服務器上的oracle,執行netca失效,需要我幫忙。很佩服那些程序員,居然能在雲服務器成功安裝oracle。好奇心驅使我去要了系統權限,爬上去看看究竟。
先看看oracle實例是否正常,按一下步驟進行:
1、 檢查進程: ps auxww|grep ora ,還好進程都有;
2、 檢查實例是否正常,也沒問題,截圖如下:
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瞧瞧,一眼就看出問題所在。
哥,阿裏雲的服務器,使用的可是內網地址喲,不信你瞧:
[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,故障排除。
不過,直接把oracle數據庫暴露在公網上,也是一個隱患。
雲服務器綁定主機名的正確姿勢