接上篇: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
.xx.xx. * 255.255.255.0 U eth1
.xx.xx. * 255.255.255.0 U virbr0
.xx.xx. * 255.255.255.0 U eth0
link-local * 255.255.0.0 U eth0
link-local * 255.255.0.0 U eth1
default .xx.xx.x 0.0.0.0 UG 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./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.)
(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. - Production on -SEP- :: Copyright (c) , , 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. - Production on -SEP- :: Copyright (c) , , Oracle. All rights reserved. TNS-: Listener using listener name LISTENER has already been started
[oracle@venn01 admin]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.1. - Production on -SEP- :: Copyright (c) , , 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. - Production on -SEP- :: Copyright (c) , , Oracle. All rights reserved. Starting /opt/oracle/db01/app/oracle/product/11.2./bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1. - 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=.xx.xx.xx)(PORT=)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=.xx.xx.xx)(PORT=))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1. - Production
Start Date -SEP- ::
Uptime days hr. min. sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/db01/app/oracle/product/11.2./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 instance(s).
Instance "PLSExtProc", status UNKNOWN, has handler(s) for this service...
The command completed successfully
可见,Oracle的两个监听分别在两个IP地址:10和192 都起来了
在办公网可以正常访问
在机房内网也可以正常访问了
搞定