接上篇: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 都起来了
在办公网可以正常访问
在机房内网也可以正常访问了
搞定