现象:
Oracle Database servers encounter errors due to network address changes.
These can be see in the database instance alert log, for example:
alert_oradb.log
------------------------------------------------------------
Mon Jun 10 22:31:57 2013
Errors in file /u01/app/oracle/diag/rdbms/oradb/oradb/trace/oradb_ora_28394.trc (incident=128001):
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:if_not_found failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgxpvaddr9
ORA-27303: additional information: requested interface <IP1> not found. Check output from ifconfig command
Incident details in: /u01/app/oracle/diag/rdbms/oradb/oradb/incident/incdir_128001/oradb_ora_28394_i128001.trc
Process trace files show additional information, for example:
oradb_ora_28379.trc
------------------------------------------------------------
SKGXP:[2b2ecf834ef8.0]{0}: skgxpcini: Invalid IP address [<IP1>] provided
struct ksxpp * ksxppg_ [0xb2d4f30, 0x2b2ecfbc67b0) = 0x2b2ecfbc67a8
..
*** 2013-06-10 22:31:57.769
Incident 128002 created, dump file: /u01/app/oracle/diag/rdbms/oradb/oradb/incident/incdir_128002/oradb_ora_28379_i128002.trc
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:if_not_found failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgxpvad
kgefec: fatal error 0
skgxpcini: Invalid IP address
原因:
In the above example, the IP address of the server had been momentarily changed into <IP1> by the "avahi-daemon", which performs automated network configuration tasks that override manual network configuration.
The example below illustrates the behavior of avahi-daemon when the IP address of eth0 is being changed from <IP4> to <IP7>. After all the IP addresses are removed and before new IP address (<IP7>) is set, avahi-daemon assigns the ipv4 link-local <IP1> for a moment, which was picked by oracle process to cause ORA-27303 error.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP2> on eth0.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP3> on eth0.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP4> on eth0.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Leaving mDNS multicast group on interface eth0.IPv4 with address <IP4>.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: iface.c: interface_mdns_mcast_join() called but no local address available.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Interface eth0.IPv4 no longer relevant for mDNS.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP5> on eth1.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Leaving mDNS multicast group on interface eth1.IPv4 with address <IP5>.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: iface.c: interface_mdns_mcast_join() called but no local address available.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Interface eth1.IPv4 no longer relevant for mDNS.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP6> on eth2.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Leaving mDNS multicast group on interface eth2.IPv4 with address <IP6>.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Joining mDNS multicast group on interface eth2.IPv4 with address <IP1>.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: IP_ADD_MEMBERSHIP failed: No such device
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Withdrawing address record for <IP1> on eth2.
Jun 10 22:31:44 <HOST> avahi-daemon[2753]: Interface eth2.IPv4 no longer relevant for mDNS.
Jun 10 22:31:47 <HOST> avahi-daemon[2753]: New relevant interface eth0.IPv4 for mDNS.
Jun 10 22:31:47 <HOST> avahi-daemon[2753]: Joining mDNS multicast group on interface eth0.IPv4 with address <IP7>.
Jun 10 22:31:47 <HOST> avahi-daemon[2753]: Registering new address record for <IP7> on eth0.
处理方法:
There are two solutions, either of which will resolve the problem:
stop avahi-daemon on the server.
configure your mDNS on the avahi-server appropriately (beyond the scope of this document)
To stop the avahi-daemon, for OL5/OL6:
# service avahi-dnsconfd stop # ignore any errors
# service avahi-daemon stop
# chkconfig avahi-dnsconfd off
# chkconfig avahi-daemon off
for OL7:
# systemctl stop avahi-daemon.socket avahi-daemon.service
# systemctl disable avahi-daemon.socket avahi-daemon.service
|