前几天通过VMWare建立了11g的DATA GUARD环境,这两天由于调整了VMWare的网络设置,发现standby数据库的LISTENER无法启动。
利用VMWare建立11R1的物理DATA GUARD:http://yangtingkun.itpub.net/post/468/388465
错误信息为:
$ lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 19-SEP-2007 20:36:51
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /data/oracle/product/11.1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /data/oracle/product/11.1/network/admin/listener.ora
Log messages written to /data/oracle/diag/tnslsnr/yangtk/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk.ytk-thinkpad)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk.ytk-thinkpad)(PORT=1521)))
TNS-12532: TNS:invalid argument
TNS-12560: TNS:protocol adapter error
TNS-00502: Invalid argument
Linux Error: 113: No route to host
将$ORACLE_HOME/network/admin/listener.ora中配置的主机名称改为ip地址后,错误依旧。
查询了一下Oracle的metalink,找到了错误原因:Incorrect IP Address specified for host in the /etc/hosts file.
这个虚机是利用另一个虚机备份建立的,因此在建立后没有修改hosts文件,导致Oracle的listener.ora无法正常启动。
$ su -
Password:
# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
172.25.4.127 yangtk.ytk-thinkpad
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
172.25.4.70 yangtk.ytk-thinkpad
~
~
~
~
"/etc/hosts" 3L, 137C written
[root@yangtk ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
172.25.4.70 yangtk.ytk-thinkpad
下面重启listener,错误信息变为:
$ lsnrctl start
IXDBA.NET社区论坛LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 19-SEP-2007 21:02:30
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /data/oracle/product/11.1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /data/oracle/product/11.1/network/admin/listener.ora
Log messages written to /data/oracle/diag/tnslsnr/yangtk2/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.4.70)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.4.70)(PORT=1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer
看来光修改IP还不能解决问题。于是修改了/etc/sysconfig/network文件和/etc/hosts中的主机名,并将系统重新启动,listener终于启动:
$ lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 19-SEP-2007 22:56:53
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /data/oracle/product/11.1/bin/tnslsnr: please wait...