接上篇:Oracle服務器修改IP后
Oracle服務器更換IP后,辦公網絡里面可以正常訪問了,外地的同事,連了vpn 也可以訪問,以為可以收工回家,突然又有同事過來說,機房的服務器ping不通新的ip了。
換了幾台機器,都ping不通,ping其他新ip一個段的服務器又正常,也可以ssh,又試了下以前的ip地址,可以ping通。
總結起來,ping不通的服務器都是Oracle服務器在同一個網段的服務器,以前都是10段的,Oracle服務器換了ip后,外部訪問的地址就不是10段了,但是同一個段的服務器,又不能去另一個路由器繞一圈回來訪問192段,所有不能訪問。(猜測)
Oracle服務器路由如下,默認訪問地址為192段
[oracle@venn01 admin]$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.xx.xx.0 * 255.255.255.0 U 0 0 0 eth1 192.xx.xx.0 * 255.255.255.0 U 0 0 0 virbr0 10.xx.xx.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 default 192.xx.xx.x 0.0.0.0 UG 0 0 0 eth1
網卡 eth0 ip :10.xx.xx.xx
網卡 eth1 ip :192.xx.xx.xx
服務器的默認路由地址是192段的
不想去配路由,因為不會
所以解決辦法就是,給Oracle啟動兩個監聽,分別監聽服務器的兩個IP地址,端口保持不變
修改 listener.ora
[oracle@ut25 admin]$ pwd /opt/oracle/db01/app/oracle/product/11.2.0/network/admin [oracle@venn01 admin]$ more listener.ora # listener.ora Network Configuration File: /opt/oracle/db01/app/oracle/product/11.2.0/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/oracle/db01/app/oracle/product/11.2.0) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) (ADDRESS = (PROTOCOL = TCP)(HOST = 10.xx.xx.xx)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.xx.xx.xx)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /opt/oracle/db01/app/oracle 重啟監聽: [oracle@venn01 ~]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-SEP-2018 13:11:05 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) The command completed successfully [oracle@venn01 admin]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-SEP-2018 13:25:51 Copyright (c) 1991, 2009, Oracle. All rights reserved. TNS-01106: Listener using listener name LISTENER has already been started [oracle@venn01 admin]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-SEP-2018 13:25:55 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) The command completed successfully [oracle@venn01 admin]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-SEP-2018 13:26:00 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /opt/oracle/db01/app/oracle/product/11.2.0/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /opt/oracle/db01/app/oracle/product/11.2.0/network/admin/listener.ora Log messages written to /opt/oracle/db01/app/oracle/diag/tnslsnr/venn01/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.xx.xx.xx)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.xx.xx.xx)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 11-SEP-2018 13:26:00 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/db01/app/oracle/product/11.2.0/network/admin/listener.ora Listener Log File /opt/oracle/db01/app/oracle/diag/tnslsnr/venn01/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.xx.xx.xx)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.xx.xx.xx)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
可見,Oracle的兩個監聽分別在兩個IP地址:10和192 都起來了
在辦公網可以正常訪問
在機房內網也可以正常訪問了
搞定