配置好listener.ora與tnsnames.ora後,執行啟動監聽命令後,報如下錯誤:
[Oracle@gc1 admin]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-APR-2014 23:27:57
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
TNS-12560: TNS:protocol adapter error
TNS-00530: Protocol adapter error
Linux Error: 113: No route to host
listener.ora與tnsnames.ora中配置內容如下:
[oracle@gc1 admin]$ more listener.ora
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PROD)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME=PROD)
)
(SID_DESC=
(SID_NAME=EMREP)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME=EMREP)
)
)
LSNR2=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1526))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))
)
)
SID_LIST_LSNR2=
(SID_LIST=
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(PROGRAM=extproc)
)
)
[oracle@gc1 admin]$ more tnsnames.ora
prod=
(DESCRIPTION=
(ADDRESS= (PROTOCOL=tcp)(HOST=gc1)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=PROD)
(SERVER=dedicated)
)
)
prod_s=
(DESCRIPTION=
(ADDRESS= (PROTOCOL=tcp)(HOST=gc1)(PORT=1526))
(CONNECT_DATA=
(SERVICE_NAME=PROD)
(SERVER=shared)
)
)
lsnr2=
(DESCRIPTION=
(ADDRESS= (PROTOCOL=tcp)(HOST=gc1)(PORT=1526))
(CONNECT_DATA=
(SERVICE_NAME=PROD)
(SERVER=dedicated)
)
)
emrep=
(DESCRIPTION=
(ADDRESS= (PROTOCOL=tcp)(HOST=gc2)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=emrep)
(SERVER=dedicated)
)
)
racdb=
(DESCRIPTION=
(LOAD_BALANCE=on)
(FAILOVER=on)
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.10)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.11)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=RACDB))
)
仔細檢查這二設定檔,無語法錯誤。且tns檔案都是使用主機名稱進行串連,懷疑可能/etc/hosts中ip配置有問題。
--查看/etc/hosts內容
[oracle@gc1 admin]$ vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
# Do not remove the following line, or various programs
# that require network functionality will fail.
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 node1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.188.116 gc1
192.168.8.115 gc2
--查看當前系統ip
[root@gc1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F2:07:49
inet addr:10.1.55.129 Bcast:10.1.55.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef2:749/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15906 errors:0 dropped:0 overruns:0 frame:0
TX packets:2524 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1438926 (1.3 MiB) TX bytes:305470 (298.3 KiB)
Interrupt:67 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:414 errors:0 dropped:0 overruns:0 frame:0
TX packets:414 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:21738 (21.2 KiB) TX bytes:21738 (21.2 KiB)
這二ip不同,於是root使用者修改/etc/hosts中ip地址資訊,如下:
[oracle@gc1 oradata]$ su - root
Password:
[root@gc1 ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 node1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
# 192.168.188.116
10.1.55.129 gc1
192.168.8.115 gc2
修改儲存後,再啟動監聽,成功
[oracle@gc1 ~]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-APR-2014 23:38:00
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 25-APR-2014 23:38:00
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
Services Summary...
Service "EMREP" has 1 instance(s).
Instance "EMREP", status UNKNOWN, has 1 handler(s) for this service...
Service "PROD" has 1 instance(s).
Instance "PROD", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully